package bistro
A library to build and run distributed scientific workflows
Install
Dune Dependency
Authors
Maintainers
Sources
bistro-0.6.0.tbz
sha256=146177faaaa9117a8e2bf0fd60cb658662c0aa992f35beb246e6fd0766050e66
sha512=553fe0c20f236316449b077a47e6e12626d193ba1916e9da233e5526dd39090e8677277e1c79baace3bdc940cb009f25431730a8efc00ae4ed9cc42a0add9609
doc/src/bistro.utils/report.ml.html
Source file report.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
open Core open Bistro module Md = struct let picture_elt format file = [%workflow let format = match format with | `svg -> "svg+xml" | `png -> "png" in let contents = In_channel.read_all [%path file] |> Base64.encode_exn in sprintf {|<img src="data:image/%s;base64,%s"/>|} format contents] let svg x = Template_dsl.string_dep (picture_elt `svg x) let png x = Template_dsl.string_dep (picture_elt `png x) let html_template = Template_dsl.string {|<!DOCTYPE html> <html $if(lang)$ lang="$lang$" $endif$ dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>$if(title)$$title$$endif$</title> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"> <link rel="apple-touch-icon-precomposed" href="images/apple-touch-icon.png"> $if(template_css)$ <link rel="stylesheet" href="$template_css$"> $else$ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/2.26.4/css/uikit.gradient.css"> $endif$ <!-- <link rel="stylesheet" href="style.css"> --> <link rel="stylesheet" href="https://cdn.rawgit.com/diversen/pandoc-uikit/master/style.css"> <link href="https://vjs.zencdn.net/5.4.4/video-js.css" rel="stylesheet" /> <script src="https://code.jquery.com/jquery-2.2.1.min.js"></script> <!-- <script src="uikit.js"></script> --> <script src="https://cdn.rawgit.com/diversen/pandoc-uikit/master/uikit.js"></script> <!-- <script src="scripts.js"></script> --> <script src="https://cdn.rawgit.com/diversen/pandoc-uikit/master/scripts.js"></script> <!-- <script src="jquery.sticky-kit.js "></script> --> <script src="https://cdn.rawgit.com/diversen/pandoc-uikit/master/jquery.sticky-kit.js"></script> <meta name="generator" content="pandoc-uikit" /> $for(author-meta)$ <meta name="author" content="$author-meta$" /> $endfor$ $if(date-meta)$ <meta name="date" content="$date-meta$" /> $endif$ <title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title> <style type="text/css">code{white-space: pre;}</style> $if(quotes)$ <style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style> $endif$ $if(highlighting-css)$ <style type="text/css"> $highlighting-css$ </style> $endif$ $for(css)$ <link rel="stylesheet" href="$css$" $if(html5)$$else$type="text/css" $endif$/> $endfor$ $if(math)$ $math$ $endif$ $for(header-includes)$ $header-includes$ $endfor$ </head> <body> <div class="uk-container uk-container-center uk-margin-top uk-margin-large-bottom"> $if(title)$ <div class="uk-grid" data-uk-grid-margin> <div class="uk-width-1-1"> <h1 class="uk-heading-large">$title$</h1> $if(date)$ <h3 class="uk-heading-large">$date$</p></h3> $endif$ $for(author)$ <p class="uk-text-large">$author$</p> $endfor$ </div> </div> $endif$ <div class="uk-grid" data-uk-grid-margin > <div class="uk-width-medium-1-4"> <div class="uk-overflow-container" data-uk-sticky="{top:25,media: 768}"> <div class="uk-panel uk-panel-box menu-begin" > $if(toc)$ $toc$ $endif$ </div> </div> </div> <div class="uk-width-medium-3-4"> $body$ </div> </div> $if(analytics)$ <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', '$analytics$', 'auto'); ga('send', 'pageview'); $endif$ <script src="https://vjs.zencdn.net/5.4.4/video.js"></script> </div> </body> </html> |} let to_html doc = Workflow.shell ~descr:"bistro_utils.report.to_html" Bistro.Shell_dsl.[ cmd "ln" [ string "-s" ; file_dump html_template ; tmp // "template.html5" ] ; cmd "pandoc" [ opt' "--from" string "markdown+tex_math_single_backslash+tex_math_dollars" ; opt' "--to" string "html5" ; string "--katex" ; opt' "--template" Fn.id (tmp // "template.html5") ; opt' "--output" Fn.id dest ; string "--toc" ; file_dump doc ; ] ] end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>