Browse Source

build based on c29e373

gh-pages
autodocs 7 years ago
parent
commit
ffa797e1f9
  1. 63
      release-1.0/assets/arrow.svg
  2. 573
      release-1.0/assets/documenter.css
  3. 129
      release-1.0/assets/documenter.js
  4. BIN
      release-1.0/assets/logo.png
  5. 250
      release-1.0/assets/search.js
  6. 8
      release-1.0/customprocessing.html
  7. 12
      release-1.0/documenter.html
  8. 17
      release-1.0/fileformat.html
  9. 352
      release-1.0/generated/example.html
  10. 952
      release-1.0/generated/example.ipynb
  11. 24
      release-1.0/generated/example.jl
  12. 100
      release-1.0/generated/notebook.ipynb
  13. 6
      release-1.0/generated/outputformats.jl
  14. 2
      release-1.0/index.html
  15. 38
      release-1.0/outputformats.html
  16. 12
      release-1.0/outputformats.jl
  17. 29
      release-1.0/pipeline.html
  18. 2
      release-1.0/search.html
  19. 307
      release-1.0/search_index.js
  20. 1
      release-1.0/siteinfo.js
  21. 86
      stable/generated/example.html
  22. 168
      stable/generated/example.ipynb
  23. 4
      stable/outputformats.html
  24. 6
      stable/search_index.js
  25. 63
      v1.0.1/assets/arrow.svg
  26. 573
      v1.0.1/assets/documenter.css
  27. 129
      v1.0.1/assets/documenter.js
  28. BIN
      v1.0.1/assets/logo.png
  29. 250
      v1.0.1/assets/search.js
  30. 8
      v1.0.1/customprocessing.html
  31. 12
      v1.0.1/documenter.html
  32. 17
      v1.0.1/fileformat.html
  33. 352
      v1.0.1/generated/example.html
  34. 952
      v1.0.1/generated/example.ipynb
  35. 24
      v1.0.1/generated/example.jl
  36. 100
      v1.0.1/generated/notebook.ipynb
  37. 6
      v1.0.1/generated/outputformats.jl
  38. 2
      v1.0.1/index.html
  39. 38
      v1.0.1/outputformats.html
  40. 12
      v1.0.1/outputformats.jl
  41. 29
      v1.0.1/pipeline.html
  42. 2
      v1.0.1/search.html
  43. 307
      v1.0.1/search_index.js
  44. 1
      v1.0.1/siteinfo.js
  45. 2
      versions.js

63
release-1.0/assets/arrow.svg

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16.5mm"
height="8.6603003mm"
viewBox="0 0 58.464567 30.686103"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="arrow.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="14.209234"
inkscape:cy="29.780479"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1053"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1021.6761)">
<path
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0,1021.6761 35.433071,0 -17.716536,30.6861 z"
id="path4140"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

573
release-1.0/assets/documenter.css

@ -0,0 +1,573 @@ @@ -0,0 +1,573 @@
/*
* The default CSS style for Documenter.jl generated sites
*
* Heavily inspired by the Julia Sphinx theme
* https://github.com/JuliaLang/JuliaDoc
* which extends the sphinx_rtd_theme
* https://github.com/snide/sphinx_rtd_theme
*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
/* fonts */
body, input {
font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif;
font-size: 16px;
color: #222;
text-rendering: optimizeLegibility;
}
pre, code, kbd {
font-family: 'Roboto Mono', Monaco, courier, monospace;
font-size: 0.90em;
}
pre code {
font-size: 1em;
}
a {
color: #2980b9;
text-decoration: none;
}
a:hover {
color: #3091d1;
}
a:visited {
color: #9b59b6;
}
body {
line-height: 1.5;
}
h1 {
font-size: 1.75em;
}
/* Unless the <h1> the is very first thing on the page (i.e. the second element
* in the <article>, * after the <header>, we add some additional styling to it
* to make it stand out a bit more. This way we get a reasonable fallback if CSS3
* selectors are not supported in the browser.
*/
article > h1:not(:nth-child(2)) {
margin: 2.5em 0 0;
padding-bottom: 0.30em;
border-bottom: 1px solid #e5e5e5;
}
h2 {
font-size: 1.50em;
margin: 2.3em 0 0;
padding-bottom: 0.25em;
border-bottom: 1px solid #e5e5e5;
}
h3 {
font-size: 1.25em;
margin: 2.0em 0 0;
}
h4 { font-size: 1.15em; }
h5 { font-size: 1.10em; }
h6 { font-size: 1em; }
h4, h5, h6 {
margin-top: 1.5em;
margin-bottom: 1em;
}
img {
max-width: 100%;
}
table {
border-collapse: collapse;
margin: 1em 0;
}
th, td {
border: 1px solid #e1e4e5;
padding: 0.5em 1em;
}
th {
border-bottom-width: 2px;
}
tr:nth-child(even) {
background-color: #f3f6f6;
}
hr {
border: 0;
border-top: 1px solid #e5e5e5;
}
/* Inline code and code blocks */
code {
padding: 0.1em;
background-color: rgba(0,0,0,.04);
border-radius: 3px;
}
pre {
background-color: #f5f5f5;
border: 1px solid #dddddd;
border-radius: 3px;
padding: 0.5em;
overflow: auto;
}
pre code {
padding: 0;
background-color: initial;
}
kbd {
font-size: 0.70em;
display: inline-block;
padding: 0.1em 0.5em 0.4em 0.5em;
line-height: 1.0em;
color: #444d56;
vertical-align: middle;
background-color: #fafbfc;
border: solid 1px #c6cbd1;
border-bottom-color: #959da5;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #959da5;
}
/* Headers in admonitions and docstrings */
.admonition h1,
article section.docstring h1 {
font-size: 1.25em;
}
.admonition h2,
article section.docstring h2 {
font-size: 1.10em;
}
.admonition h3,
.admonition h4,
.admonition h5,
.admonition h6,
article section.docstring h3,
article section.docstring h4,
article section.docstring h5,
article section.docstring h6 {
font-size: 1em;
}
/* Navigation */
nav.toc {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 20em;
overflow-y: auto;
padding: 1em 0;
background-color: #fcfcfc;
box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);
}
nav.toc .logo {
margin: 0 auto;
display: block;
max-height: 6em;
max-width: 18em;
}
nav.toc h1 {
text-align: center;
margin-top: .57em;
margin-bottom: 0;
}
nav.toc select {
display: block;
height: 2em;
padding: 0 1.6em 0 1em;
min-width: 7em;
max-width: 90%;
max-width: calc(100% - 5em);
margin: 0 auto;
font-size: .83em;
border: 1px solid #c9c9c9;
border-radius: 1em;
/* TODO: doesn't seem to be centered on Safari */
text-align: center;
text-align-last: center;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: white url("arrow.svg");
background-size: 1.155em;
background-repeat: no-repeat;
background-position: right;
}
nav.toc select:hover {
border: 1px solid #a0a0a0;
}
nav.toc select option {
text-align: center;
}
nav.toc input {
display: block;
height: 2em;
width: 90%;
width: calc(100% - 5em);
margin: 1.2em auto;
padding: 0 1em;
border: 1px solid #c9c9c9;
border-radius: 1em;
font-size: .83em;
}
nav.toc > ul * {
margin: 0;
}
nav.toc ul {
color: #404040;
padding: 0;
list-style: none;
}
nav.toc ul .toctext {
color: inherit;
display: block;
}
nav.toc ul a:hover {
color: #fcfcfc;
background-color: #4e4a4a;
}
nav.toc ul.internal a {
color: inherit;
display: block;
}
nav.toc ul.internal a:hover {
background-color: #d6d6d6;
}
nav.toc ul.internal {
background-color: #e3e3e3;
box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);
list-style: none;
}
nav.toc ul.internal li.toplevel {
border-top: 1px solid #909090;
font-weight: bold;
}
nav.toc ul.internal li.toplevel:first-child {
border-top: none;
}
nav.toc .toctext {
padding-top: 0.3em;
padding-bottom: 0.3em;
padding-right: 1em;
}
nav.toc ul .toctext {
padding-left: 1em;
}
nav.toc ul ul .toctext {
padding-left: 2em;
}
nav.toc ul ul ul .toctext {
padding-left: 3em;
}
nav.toc li.current > .toctext {
border-top: 1px solid #c9c9c9;
border-bottom: 1px solid #c9c9c9;
color: #404040;
font-weight: bold;
background-color: white;
}
article {
margin-left: 20em;
min-width: 20em;
max-width: 48em;
padding: 2em;
}
article > header {}
article > header div#topbar {
display: none;
}
article > header nav ul {
display: inline-block;
list-style: none;
margin: 0;
padding: 0;
}
article > header nav li {
display: inline-block;
padding-right: 0.2em;
}
article > header nav li:before {
content: "»";
padding-right: 0.2em;
}
article > header .edit-page {
float: right;
}
article > footer {}
article > footer a.prev {
float: left;
}
article > footer a.next {
float: right;
}
article > footer a .direction:after {
content: ": ";
}
article hr {
margin: 1em 0;
}
article section.docstring {
border: 1px solid #ddd;
margin: 0.5em 0;
padding: 0.5em;
border-radius: 3px;
}
article section.docstring .docstring-header {
margin-bottom: 1em;
}
article section.docstring .docstring-binding {
color: #333;
font-weight: bold;
}
article section.docstring .docstring-category {
font-style: italic;
}
article section.docstring a.source-link {
display: block;
font-weight: bold;
}
.nav-anchor,
.nav-anchor:hover,
.nav-anchor:visited {
color: #333;
}
/*
* Admonitions
*
* Colors (title, body)
* warning: #f0b37e #ffedcc (orange)
* note: #6ab0de #e7f2fa (blue)
* tip: #1abc9c #dbfaf4 (green)
*/
.admonition {
border-radius: 3px;
background-color: #eeeeee;
}
.admonition-title {
border-radius: 3px 3px 0 0;
background-color: #9b9b9b;
padding: 0.15em 0.5em;
}
.admonition-text {
padding: 0.5em;
}
.admonition-text > :first-child {
margin-top: 0;
}
.admonition-text > :last-child {
margin-bottom: 0;
}
.admonition > .admonition-title:before {
font-family: "FontAwesome";
margin-right: 5px;
content: "\f06a";
}
.admonition.warning > .admonition-title {
background-color: #f0b37e;
}
.admonition.warning {
background-color: #ffedcc;
}
.admonition.note > .admonition-title {
background-color: #6ab0de;
}
.admonition.note {
background-color: #e7f2fa;
}
.admonition.tip > .admonition-title {
background-color: #1abc9c;
}
.admonition.tip {
background-color: #dbfaf4;
}
/* footnotes */
.footnote {
padding-left: 0.8em;
border-left: 2px solid #ccc;
}
/* Search page */
#search-results .category {
font-size: smaller;
}
/* Overriding the <code> block style of highligh.js.
* We have to override the padding and the background-color, since we style this
* part ourselves. Specifically, we style the <pre> surrounding the <code>, while
* highlight.js applies the .hljs style directly to the <code> tag.
*/
.hljs {
background-color: transparent;
padding: 0;
}
@media only screen and (max-width: 768px) {
nav.toc {
position: fixed;
overflow-y: scroll;
width: 16em;
left: -16em;
-webkit-overflow-scrolling: touch;
-webkit-transition-property: left; /* Safari */
-webkit-transition-duration: 0.3s; /* Safari */
transition-property: left;
transition-duration: 0.3s;
-webkit-transition-timing-function: ease-out; /* Safari */
transition-timing-function: ease-out;
z-index: 2;
}
nav.toc.show {
left: 0;
}
article {
margin-left: 0;
padding: 3em 0.9em 0 0.9em; /* top right bottom left */
overflow-wrap: break-word;
}
article > header {
position: fixed;
left: 0;
z-index: 1;
}
article > header nav, hr {
display: none;
}
article > header div#topbar {
display: block; /* is mobile */
position: fixed;
width: 100%;
height: 1.5em;
padding-top: 1em;
padding-bottom: 1em;
background-color: #fcfcfc;
box-shadow: 0 1px 3px rgba(0,0,0,.26);
top: 0;
-webkit-transition-property: top; /* Safari */
-webkit-transition-duration: 0.3s; /* Safari */
transition-property: top;
transition-duration: 0.3s;
}
article > header div#topbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
top: -4em;
-webkit-transition-property: top; /* Safari */
-webkit-transition-duration: 0.7s; /* Safari */
transition-property: top;
transition-duration: 0.7s;
}
article > header div#topbar span {
position: fixed;
width: 80%;
height: 1.5em;
margin-top: -0.1em;
margin-left: 0.9em;
font-size: 1.2em;
overflow: hidden;
}
article > header div#topbar a.fa-bars {
float: right;
padding: 0.6em;
margin-top: -0.6em;
margin-right: 0.3em;
font-size: 1.5em;
}
article > header div#topbar a.fa-bars:visited {
color: #3091d1;
}
article table {
overflow-x: auto;
display: block;
}
article div.MathJax_Display {
overflow: scroll;
}
article span.MathJax {
overflow: hidden;
}
}
@media only screen and (max-width: 320px) {
body {
font-size: 15px;
}
}

129
release-1.0/assets/documenter.js

@ -0,0 +1,129 @@ @@ -0,0 +1,129 @@
/*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
requirejs.config({
paths: {
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min',
'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min',
'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.3/headroom.min',
'mathjax': 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML',
'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min',
'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia.min',
'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia-repl.min',
},
shim: {
'mathjax' : {
exports: "MathJax"
},
'highlight-julia': ['highlight'],
'highlight-julia-repl': ['highlight'],
}
});
// Load MathJax
require(['mathjax'], function(MathJax) {
MathJax.Hub.Config({
"tex2jax": {
inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true
}
});
MathJax.Hub.Config({
config: ["MMLorHTML.js"],
jax: [
"input/TeX",
"output/HTML-CSS",
"output/NativeMML"
],
extensions: [
"MathMenu.js",
"MathZoom.js",
"TeX/AMSmath.js",
"TeX/AMSsymbols.js",
"TeX/autobold.js",
"TeX/autoload-all.js"
]
});
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
})
require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) {
$(document).ready(function() {
hljs.initHighlighting();
})
})
// update the version selector with info from the siteinfo.js and ../versions.js files
require(['jquery'], function($) {
$(document).ready(function() {
var version_selector = $("#version-selector");
// add the current version to the selector based on siteinfo.js, but only if the selector is empty
if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
var option = $("<option value='#' selected='selected'>" + DOCUMENTER_CURRENT_VERSION + "</option>");
version_selector.append(option);
}
if (typeof DOC_VERSIONS !== 'undefined') {
var existing_versions = $('#version-selector > option');
var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
DOC_VERSIONS.forEach(function(each) {
var version_url = documenterBaseURL + "/../" + each;
var existing_id = $.inArray(each, existing_versions_texts);
// if not already in the version selector, add it as a new option,
// otherwise update the old option with the URL and enable it
if (existing_id == -1) {
var option = $("<option value='" + version_url + "'>" + each + "</option>");
version_selector.append(option);
} else {
var option = existing_versions[existing_id];
option.value = version_url;
option.disabled = false;
}
});
}
// only show the version selector if the selector has been populated
if ($('#version-selector > option').length > 0) {
version_selector.css("visibility", "visible");
}
})
})
// mobile
require(['jquery', 'headroom'], function($, Headroom) {
$(document).ready(function() {
var navtoc = $("nav.toc");
$("nav.toc li.current a.toctext").click(function() {
navtoc.toggleClass('show');
});
$("article > header div#topbar a.fa-bars").click(function(ev) {
ev.preventDefault();
navtoc.toggleClass('show');
if (navtoc.hasClass('show')) {
var title = $("article > header div#topbar span").text();
$("nav.toc ul li a:contains('" + title + "')").focus();
}
});
$("article#docs").bind('click', function(ev) {
if ($(ev.target).is('div#topbar a.fa-bars')) {
return;
}
if (navtoc.hasClass('show')) {
navtoc.removeClass('show');
}
});
if ($("article > header div#topbar").css('display') == 'block') {
var headroom = new Headroom(document.querySelector("article > header div#topbar"), {"tolerance": {"up": 10, "down": 10}});
headroom.init();
}
})
})

BIN
release-1.0/assets/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

250
release-1.0/assets/search.js

@ -0,0 +1,250 @@ @@ -0,0 +1,250 @@
/*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License
function parseUri (str) {
var o = parseUri.options,
m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
uri = {},
i = 14;
while (i--) uri[o.key[i]] = m[i] || "";
uri[o.q.name] = {};
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
if ($1) uri[o.q.name][$1] = $2;
});
return uri;
};
parseUri.options = {
strictMode: false,
key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
q: {
name: "queryKey",
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}
};
requirejs.config({
paths: {
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min',
'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.1/lunr.min',
'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min',
}
});
var currentScript = document.currentScript;
require(["jquery", "lunr", "lodash"], function($, lunr, _) {
$("#search-form").submit(function(e) {
e.preventDefault()
})
// list below is the lunr 2.1.3 list minus the intersect with names(Base)
// (all, any, get, in, is, which) and (do, else, for, let, where, while, with)
// ideally we'd just filter the original list but it's not available as a variable
lunr.stopWordFilter = lunr.generateStopWordFilter([
'a',
'able',
'about',
'across',
'after',
'almost',
'also',
'am',
'among',
'an',
'and',
'are',
'as',
'at',
'be',
'because',
'been',
'but',
'by',
'can',
'cannot',
'could',
'dear',
'did',
'does',
'either',
'ever',
'every',
'from',
'got',
'had',
'has',
'have',
'he',
'her',
'hers',
'him',
'his',
'how',
'however',
'i',
'if',
'into',
'it',
'its',
'just',
'least',
'like',
'likely',
'may',
'me',
'might',
'most',
'must',
'my',
'neither',
'no',
'nor',
'not',
'of',
'off',
'often',
'on',
'only',
'or',
'other',
'our',
'own',
'rather',
'said',
'say',
'says',
'she',
'should',
'since',
'so',
'some',
'than',
'that',
'the',
'their',
'them',
'then',
'there',
'these',
'they',
'this',
'tis',
'to',
'too',
'twas',
'us',
'wants',
'was',
'we',
'were',
'what',
'when',
'who',
'whom',
'why',
'will',
'would',
'yet',
'you',
'your'
])
// add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
// would not find anything if searching for "add!", only for the entire qualification
lunr.tokenizer.separator = /[\s\-\.]+/
// custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
lunr.trimmer = function (token) {
return token.update(function (s) {
return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
})
}
lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
var index = lunr(function () {
this.ref('location')
this.field('title')
this.field('text')
documenterSearchIndex['docs'].forEach(function(e) {
this.add(e)
}, this)
})
var store = {}
documenterSearchIndex['docs'].forEach(function(e) {
store[e.location] = {title: e.title, category: e.category}
})
$(function(){
function update_search(querystring) {
tokens = lunr.tokenizer(querystring)
results = index.query(function (q) {
tokens.forEach(function (t) {
q.term(t.toString(), {
fields: ["title"],
boost: 100,
usePipeline: false,
editDistance: 0,
wildcard: lunr.Query.wildcard.NONE
})
q.term(t.toString(), {
fields: ["title"],
boost: 10,
usePipeline: false,
editDistance: 2,
wildcard: lunr.Query.wildcard.NONE
})
q.term(t.toString(), {
fields: ["text"],
boost: 1,
usePipeline: true,
editDistance: 0,
wildcard: lunr.Query.wildcard.NONE
})
})
})
$('#search-info').text("Number of results: " + results.length)
$('#search-results').empty()
results.forEach(function(result) {
data = store[result.ref]
link = $('<a>')
link.text(data.title)
link.attr('href', documenterBaseURL+'/'+result.ref)
cat = $('<span class="category">('+data.category+')</span>')
li = $('<li>').append(link).append(" ").append(cat)
$('#search-results').append(li)
})
}
function update_search_box() {
querystring = $('#search-query').val()
update_search(querystring)
}
$('#search-query').keyup(_.debounce(update_search_box, 250))
$('#search-query').change(update_search_box)
search_query_uri = parseUri(window.location).queryKey["q"]
if(search_query_uri !== undefined) {
search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
$("#search-query").val(search_query)
}
update_search_box();
})
})

8
release-1.0/customprocessing.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>5. Custom pre- and post-processing · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li class="current"><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a><ul class="internal"></ul></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/customprocessing.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>5. Custom pre- and post-processing</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Custom-pre-and-post-processing-1" href="#Custom-pre-and-post-processing-1"><strong>5.</strong> Custom pre- and post-processing</a></h1><p>Since all packages are different, and may have different demands on how to create a nice example for the documentation it is important that the package maintainer does not feel limited by the by default provided syntax that this package offers. While you can generally come a long way by utilizing <a href="fileformat.html#Filtering-Lines-1">line filtering</a> there might be situations where you need to manually hook into the generation and change things. In Literate this is done by letting the user supply custom pre- and post-processing functions that may do transformation of the content.</p><p>All of the generators (<a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a>) accepts <code>preprocess</code> and <code>postprocess</code> keyword arguments. The default &quot;transformation&quot; is the <code>identity</code> function. The input to the transformation functions is a <code>String</code>, and the output should be the transformed <code>String</code>.</p><p><code>preprocess</code> is sent the raw input that is read from the source file (<a href="pipeline.html#Pre-processing-1">modulo the default line ending transformation</a>). <code>postprocess</code> is given different things depending on the output: For markdown and script output <code>postprocess</code> is given the content <code>String</code> just before writing it to the output file, but for notebook output <code>postprocess</code> is given the dictionary representing the notebook, since, in general, this is more useful.</p><p>As an example, lets say we want to splice the date of generation into the output. We could of course update our source file before generating the docs, but we could instead use a <code>preprocess</code> function that splices the date into the source for us. Consider the following source file:</p><pre><code class="language-julia"># # Example
# This example was generated DATEOFTODAY
x = 1 // 3</code></pre><p>where <code>DATEOFTODAY</code> is a placeholder, to make it easier for our <code>preprocess</code> function to find the location. Now, lets define the <code>preprocess</code> function, for example</p><pre><code class="language-julia">function update_date(content)
content = replace(content, &quot;DATEOFTODAY&quot; =&gt; Date(now()))
return content
end</code></pre><p>which would replace every occurrence of <code>&quot;DATEOFTODAY&quot;</code> with the current date. We would now simply give this function to the generator, for example:</p><pre><code class="language-julia">Literate.markdown(&quot;input.jl&quot;, &quot;outputdir&quot;; preprocess = update_date)</code></pre><footer><hr/><a class="previous" href="outputformats.html"><span class="direction">Previous</span><span class="title"><strong>4.</strong> Output Formats</span></a><a class="next" href="documenter.html"><span class="direction">Next</span><span class="title"><strong>6.</strong> Interaction with Documenter.jl</span></a></footer></article></body></html>

12
release-1.0/documenter.html

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>6. Interaction with Documenter.jl · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li class="current"><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a><ul class="internal"></ul></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/documenter.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>6. Interaction with Documenter.jl</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Interaction-with-Documenter-1" href="#Interaction-with-Documenter-1"><strong>6.</strong> Interaction with Documenter.jl</a></h1><p>Literate can be used for any purpose, it spits out regular markdown files, and notebooks. Typically, though, these files will be used to render documentation for your package. The generators (<a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a>) supports a keyword argument <code>documenter</code> that lets the generator perform some extra things, keeping in mind that the source code have been written with Documenter.jl in mind. So lets take a look at what will happen if we set <code>documenter = true</code>:</p><h3><a class="nav-anchor" id="[Literate.markdown](@ref):-1" href="#[Literate.markdown](@ref):-1"><a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>:</a></h3><ul><li>The default code fence will change from<pre><code class="language-none">```julia
# code
```</code></pre>to Documenters <code>@example</code> blocks:<pre><code class="language-none">```@examples $(name)
# code
```</code></pre></li><li>The following <code>@meta</code> block will be added to the top of the markdown page, which redirects the &quot;Edit on GitHub&quot; link on the top of the page to the <em>source file</em> rather than the generated <code>.md</code> file:<pre><code class="language-none">```@meta
EditURL = &quot;$(relpath(inputfile, outputdir))&quot;
```</code></pre></li></ul><h3><a class="nav-anchor" id="[Literate.notebook](@ref):-1" href="#[Literate.notebook](@ref):-1"><a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a>:</a></h3><ul><li>Documenter style <code>@ref</code>s and <code>@id</code> will be removed. This means that you can use <code>@ref</code> and <code>@id</code> in the source file without them leaking to the notebook.</li><li>Documenter style markdown math<pre><code class="language-none">```math
\int f dx
```</code></pre>is replaced with notebook compatible<pre><code class="language-none">\begin{equation}
\int f dx
\end{equation}</code></pre></li></ul><h3><a class="nav-anchor" id="[Literate.script](@ref):-1" href="#[Literate.script](@ref):-1"><a href="outputformats.html#Literate.script"><code>Literate.script</code></a>:</a></h3><ul><li>Documenter style <code>@ref</code>s and <code>@id</code> will be removed. This means that you can use <code>@ref</code> and <code>@id</code> in the source file without them leaking to the script.</li></ul><footer><hr/><a class="previous" href="customprocessing.html"><span class="direction">Previous</span><span class="title"><strong>5.</strong> Custom pre- and post-processing</span></a><a class="next" href="generated/example.html"><span class="direction">Next</span><span class="title"><strong>7.</strong> Example</span></a></footer></article></body></html>

17
release-1.0/fileformat.html

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>2. File Format · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li class="current"><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a><ul class="internal"><li><a class="toctext" href="#Syntax-1"><strong>2.1.</strong> Syntax</a></li><li><a class="toctext" href="#Filtering-Lines-1"><strong>2.2.</strong> Filtering Lines</a></li><li><a class="toctext" href="#Default-Replacements-1"><strong>2.3.</strong> Default Replacements</a></li></ul></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="fileformat.html"><strong>2.</strong> File Format</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/fileformat.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>2. File Format</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**2.**-File-Format-1" href="#**2.**-File-Format-1"><strong>2.</strong> File Format</a></h1><p>The source file format for Literate is a regular, commented, julia (<code>.jl</code>) scripts. The idea is that the scripts also serve as documentation on their own and it is also simple to include them in the test-suite, with e.g. <code>include</code>, to make sure the examples stay up do date with other changes in your package.</p><h2><a class="nav-anchor" id="Syntax-1" href="#Syntax-1"><strong>2.1.</strong> Syntax</a></h2><p>The basic syntax is simple:</p><ul><li>lines starting with <code>#</code> are treated as markdown,</li><li>all other lines are treated as julia code.</li></ul><p>Leading whitespace is allowed before <code>#</code>, but it will be removed when generating the output. Since <code>#</code>-lines is treated as markdown we can not use that for regular julia comments, for this you can instead use <code>##</code>, which will render as <code>#</code> in the output.</p><p>Lets look at a simple example:</p><pre><code class="language-julia"># # Rational numbers
#
# In julia rational numbers can be constructed with the `//` operator.
# Lets define two rational numbers, `x` and `y`:
x = 1//3
y = 2//5
# When adding `x` and `y` together we obtain a new rational number:
z = x + y</code></pre><p>In the lines starting with <code>#</code> we can use regular markdown syntax, for example the <code>#</code> used for the heading and the backticks for formatting code. The other lines are regular julia code. We note a couple of things:</p><ul><li>The script is valid julia, which means that we can <code>include</code> it and the example will run (for example in the <code>test/runtests.jl</code> script, to include the example in the test suite).</li><li>The script is &quot;self-explanatory&quot;, i.e. the markdown lines works as comments and thus serve as good documentation on its own.</li></ul><p>For simple use this is all you need to know. The following additional special syntax can also be used:</p><ul><li><code>#md</code>, <code>#nb</code>, <code>#jl</code>, <code>#src</code>: tags to filter lines, see <a href="fileformat.html#Filtering-Lines-1">Filtering Lines</a>,</li><li><code>#-</code>: tag to manually control chunk-splits, see <a href="pipeline.html#Custom-control-over-chunk-splits-1">Custom control over chunk splits</a>.</li></ul><p>There is also some default convenience replacements that will always be performed, see <a href="fileformat.html#Default-Replacements-1">Default Replacements</a>.</p><h2><a class="nav-anchor" id="Filtering-Lines-1" href="#Filtering-Lines-1"><strong>2.2.</strong> Filtering Lines</a></h2><p>It is often useful to filter out lines in the source depending on the output format. For this purpose there are a number of &quot;tokens&quot; that can be used to mark the purpose of certain lines:</p><ul><li><code>#md</code>: line exclusive to markdown output,</li><li><code>#nb</code>: line exclusive to notebook output,</li><li><code>#jl</code>: line exclusive to script output,</li><li><code>#src</code>: line exclusive to the source code and thus filtered out unconditionally.</li></ul><p>Lines <em>starting</em> with one of these tokens are filtered out in the <a href="pipeline.html#Pre-processing-1">preprocessing step</a>.</p><p>Suppose, for example, that we want to include a docstring within a <code>@docs</code> block using Documenter. Obviously we don&#39;t want to include this in the notebook, since <code>@docs</code> is Documenter syntax that the notebook will not understand. This is a case where we can prepend <code>#md</code> to those lines:</p><pre><code class="language-julia">#md # ```@docs
#md # Literate.markdown
#md # Literate.notebook
#md # Literate.markdown
#md # ```</code></pre><p>The lines in the example above would be filtered out in the preprocessing step, unless we are generating a markdown file. When generating a markdown file we would simple remove the leading <code>#md</code> from the lines. Beware that the space after the tag is also removed.</p><p>The <code>#src</code> token can also be placed at the <em>end</em> of a line. This is to make it possible to have code lines exclusive to the source code, and not just comment lines. For example, if the source file is included in the test suite we might want to add a <code>@test</code> at the end without this showing up in the outputs:</p><pre><code class="language-julia">using Test #src
@test result == expected_result #src</code></pre><h2><a class="nav-anchor" id="Default-Replacements-1" href="#Default-Replacements-1"><strong>2.3.</strong> Default Replacements</a></h2><p>The following convenience &quot;macros&quot; are always expanded:</p><ul><li><p><code>@__NAME__</code></p><p>expands to the <code>name</code> keyword argument to <a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a> (defaults to the filename of the input file).</p></li><li><p><code>@__REPO__ROOT_URL__</code></p><p>expands to <code>https://github.com/$(ENV[&quot;TRAVIS_REPO_SLUG&quot;])/blob/master/</code> and is a convenient way to use when you want to link to files outside the doc-build directory. For example <code>@__REPO__ROOT_URL__src/Literate.jl</code> would link to the source of the Literate module.</p></li><li><p><code>@__NBVIEWER_ROOT_URL__</code></p><p>expands to <code>https://nbviewer.jupyter.org/github/$(ENV[&quot;TRAVIS_REPO_SLUG&quot;])/blob/gh-pages/$(folder)/</code> where <code>folder</code> is the folder that <code>Documenter.deploydocs</code> deploys too. This can be used if you want a link that opens the generated notebook in <a href="http://nbviewer.jupyter.org/">http://nbviewer.jupyter.org/</a>.</p></li></ul><footer><hr/><a class="previous" href="index.html"><span class="direction">Previous</span><span class="title"><strong>1.</strong> Introduction</span></a><a class="next" href="pipeline.html"><span class="direction">Next</span><span class="title"><strong>3.</strong> Processing pipeline</span></a></footer></article></body></html>

352
release-1.0/generated/example.html

@ -0,0 +1,352 @@ @@ -0,0 +1,352 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>7. Example · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link href="../assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="../index.html"><img class="logo" src="../assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="../fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="../pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="../outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="../customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="../documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li class="current"><a class="toctext" href="example.html"><strong>7.</strong> Example</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="example.html"><strong>7.</strong> Example</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>7. Example</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**7.**-Example-1" href="#**7.**-Example-1"><strong>7.</strong> Example</a></h1><p>This is an example generated with Literate based on this source file: <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><code>example.jl</code></a>. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: <a href="https://nbviewer.jupyter.org/github/fredrikekre/Literate.jl/blob/gh-pages/v1.0.1/generated/example.ipynb"><code>example.ipynb</code></a>, and the plain script output can be found here: <a href="example.jl"><code>example.jl</code></a>.</p><p>It is recommended to have the <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl">source file</a> available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing.</p><h3><a class="nav-anchor" id="Basic-syntax-1" href="#Basic-syntax-1">Basic syntax</a></h3><p>The basic syntax for Literate is simple, lines starting with <code>#</code> is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:</p><div><pre><code class="language-julia">x = 1//3
y = 2//5</code></pre><pre><code class="language-none">2//5</code></pre></div><p>In markdown sections we can use markdown syntax. For example, we can write <em>text in italic font</em>, <strong>text in bold font</strong> and use <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">links</a>.</p><p>It is possible to filter out lines depending on the output using the <code>#md</code>, <code>#nb</code>, <code>#jl</code> and <code>#src</code> tags (see <a href="../fileformat.html#Filtering-Lines-1">Filtering Lines</a>):</p><ul><li>This line starts with <code>#md</code> and is thus only visible in the markdown output.</li></ul><p>The source file is parsed in chunks of markdown and code. Starting a line with <code>#-</code> manually inserts a chunk break. For example, if we want to display the output of the following operations we may insert <code>#-</code> in between. These two code blocks will now end up in different <code>@example</code>-blocks in the markdown output, and two different notebook cells in the notebook output.</p><div><pre><code class="language-julia">x + y</code></pre><pre><code class="language-none">11//15</code></pre></div><div><pre><code class="language-julia">x * y</code></pre><pre><code class="language-none">2//15</code></pre></div><h3><a class="nav-anchor" id="Output-Capturing-1" href="#Output-Capturing-1">Output Capturing</a></h3><p>Code chunks are by default placed in Documenter <code>@example</code> blocks in the generated markdown. This means that the output will be captured in a block when Documenter is building the docs. In notebooks the output is captured in output cells, if the <code>execute</code> keyword argument is set to true. Output to <code>stdout</code>/<code>stderr</code> is also captured.</p><div><pre><code class="language-julia">function foo()
println(&quot;This string is printed to stdout.&quot;)
return [1, 2, 3, 4]
end
foo()</code></pre><pre><code class="language-none">This string is printed to stdout.
4-element Array{Int64,1}:
1
2
3
4</code></pre></div><p>Both Documenter&#39;s <code>@example</code> block and notebooks can display images. Here is an example where we generate a simple plot using the <a href="https://github.com/JuliaPlots/Plots.jl">Plots.jl</a> package</p><div><pre><code class="language-julia">using Plots
x = range(0, stop=6π, length=1000)
y1 = sin.(x)
y2 = cos.(x)
plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="400" viewBox="0 0 600 400">
<defs>
<clipPath id="clip4100">
<rect x="0" y="0" width="600" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip4100)" points="
0,400 600,400 600,0 0,0
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip4101">
<rect x="120" y="0" width="421" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip4100)" points="
23.622,384.252 580.315,384.252 580.315,11.811 23.622,11.811
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip4102">
<rect x="23" y="11" width="558" height="373"/>
</clipPath>
</defs>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
39.3775,384.252 39.3775,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
178.686,384.252 178.686,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
317.995,384.252 317.995,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
457.304,384.252 457.304,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,373.713 580.315,373.713
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,285.873 580.315,285.873
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,198.032 580.315,198.032
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,110.192 580.315,110.192
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,22.3518 580.315,22.3518
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 580.315,384.252
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 23.622,11.811
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,384.252 39.3775,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
178.686,384.252 178.686,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
317.995,384.252 317.995,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
457.304,384.252 457.304,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,373.713 31.9724,373.713
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,285.873 31.9724,285.873
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,198.032 31.9724,198.032
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,110.192 31.9724,110.192
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,22.3518 31.9724,22.3518
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 39.3775, 398.052)" x="39.3775" y="398.052">0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 178.686, 398.052)" x="178.686" y="398.052">5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 317.995, 398.052)" x="317.995" y="398.052">10</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 457.304, 398.052)" x="457.304" y="398.052">15</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 378.213)" x="17.622" y="378.213">-1.0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 290.373)" x="17.622" y="290.373">-0.5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 202.532)" x="17.622" y="202.532">0.0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 114.692)" x="17.622" y="114.692">0.5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 26.8518)" x="17.622" y="26.8518">1.0</text>
</g>
<polyline clip-path="url(#clip4102)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,198.032 39.9032,194.718 40.4289,191.404 40.9546,188.093 41.4803,184.786 42.006,181.483 42.5318,178.186 43.0575,174.896 43.5832,171.615 44.1089,168.342
44.6346,165.081 45.1603,161.831 45.686,158.594 46.2117,155.371 46.7374,152.163 47.2631,148.971 47.7888,145.797 48.3145,142.642 48.8402,139.506 49.366,136.391
49.8917,133.298 50.4174,130.229 50.9431,127.183 51.4688,124.162 51.9945,121.168 52.5202,118.201 53.0459,115.263 53.5716,112.354 54.0973,109.475 54.623,106.629
55.1487,103.814 55.6744,101.033 56.2002,98.2869 56.7259,95.5761 57.2516,92.9018 57.7773,90.2649 58.303,87.6664 58.8287,85.1071 59.3544,82.5881 59.8801,80.1101
60.4058,77.6742 60.9315,75.281 61.4572,72.9316 61.9829,70.6267 62.5086,68.3672 63.0344,66.1539 63.5601,63.9874 64.0858,61.8688 64.6115,59.7985 65.1372,57.7775
65.6629,55.8065 66.1886,53.886 66.7143,52.0169 67.24,50.1998 67.7657,48.4353 68.2914,46.724 68.8171,45.0666 69.3428,43.4637 69.8686,41.9158 70.3943,40.4235
70.92,38.9873 71.4457,37.6077 71.9714,36.2852 72.4971,35.0203 73.0228,33.8134 73.5485,32.665 74.0742,31.5755 74.5999,30.5453 75.1256,29.5746 75.6513,28.664
76.177,27.8136 76.7028,27.0238 77.2285,26.2949 77.7542,25.6272 78.2799,25.0208 78.8056,24.476 79.3313,23.993 79.857,23.572 80.3827,23.2131 80.9084,22.9164
81.4341,22.682 81.9598,22.5101 82.4855,22.4007 83.0112,22.3538 83.537,22.3694 84.0627,22.4476 84.5884,22.5883 85.1141,22.7914 85.6398,23.0569 86.1655,23.3847
86.6912,23.7747 87.2169,24.2268 87.7426,24.7407 88.2683,25.3163 88.794,25.9534 89.3197,26.6517 89.8454,27.4111 90.3712,28.2312 90.8969,29.1118 91.4226,30.0525
91.9483,31.053 92.474,32.1129 92.9997,33.2319 93.5254,34.4096 94.0511,35.6455 94.5768,36.9393 95.1025,38.2904 95.6282,39.6983 96.1539,41.1627 96.6796,42.6828
97.2054,44.2583 97.7311,45.8886 98.2568,47.5729 98.7825,49.3109 99.3082,51.1018 99.8339,52.945 100.36,54.8399 100.885,56.7857 101.411,58.7818 101.937,60.8275
102.462,62.9221 102.988,65.0647 103.514,67.2547 104.04,69.4913 104.565,71.7736 105.091,74.1008 105.617,76.4722 106.142,78.8868 106.668,81.3439 107.194,83.8425
107.72,86.3818 108.245,88.9608 108.771,91.5786 109.297,94.2344 109.822,96.927 110.348,99.6557 110.874,102.419 111.399,105.217 111.925,108.048 112.451,110.911
112.977,113.805 113.502,116.728 114.028,119.681 114.554,122.662 115.079,125.669 115.605,128.703 116.131,131.761 116.657,134.842 117.182,137.946 117.708,141.072
118.234,144.217 118.759,147.382 119.285,150.565 119.811,153.765 120.336,156.98 120.862,160.211 121.388,163.454 121.914,166.71 122.439,169.977 122.965,173.254
123.491,176.54 124.016,179.834 124.542,183.134 125.068,186.439 125.594,189.749 126.119,193.061 126.645,196.375 127.171,199.69 127.696,203.004 128.222,206.316
128.748,209.626 129.274,212.931 129.799,216.231 130.325,219.525 130.851,222.811 131.376,226.088 131.902,229.355 132.428,232.611 132.953,235.854 133.479,239.085
134.005,242.3 134.531,245.5 135.056,248.683 135.582,251.848 136.108,254.993 136.633,258.119 137.159,261.223 137.685,264.304 138.211,267.362 138.736,270.396
139.262,273.403 139.788,276.384 140.313,279.336 140.839,282.26 141.365,285.154 141.891,288.017 142.416,290.848 142.942,293.646 143.468,296.409 143.993,299.138
144.519,301.831 145.045,304.486 145.57,307.104 146.096,309.683 146.622,312.222 147.148,314.721 147.673,317.178 148.199,319.593 148.725,321.964 149.25,324.291
149.776,326.574 150.302,328.81 150.828,331 151.353,333.143 151.879,335.237 152.405,337.283 152.93,339.279 153.456,341.225 153.982,343.12 154.507,344.963
155.033,346.754 155.559,348.492 156.085,350.176 156.61,351.807 157.136,353.382 157.662,354.902 158.187,356.367 158.713,357.775 159.239,359.126 159.765,360.419
160.29,361.655 160.816,362.833 161.342,363.952 161.867,365.012 162.393,366.012 162.919,366.953 163.445,367.834 163.97,368.654 164.496,369.413 165.022,370.112
165.547,370.749 166.073,371.324 166.599,371.838 167.124,372.29 167.65,372.68 168.176,373.008 168.702,373.274 169.227,373.477 169.753,373.617 170.279,373.696
170.804,373.711 171.33,373.664 171.856,373.555 172.382,373.383 172.907,373.149 173.433,372.852 173.959,372.493 174.484,372.072 175.01,371.589 175.536,371.044
176.062,370.438 176.587,369.77 177.113,369.041 177.639,368.251 178.164,367.401 178.69,366.49 179.216,365.52 179.741,364.489 180.267,363.4 180.793,362.251
181.319,361.045 181.844,359.78 182.37,358.457 182.896,357.078 183.421,355.641 183.947,354.149 184.473,352.601 184.999,350.998 185.524,349.341 186.05,347.63
186.576,345.865 187.101,344.048 187.627,342.179 188.153,340.258 188.678,338.287 189.204,336.266 189.73,334.196 190.256,332.077 190.781,329.911 191.307,327.698
191.833,325.438 192.358,323.133 192.884,320.784 193.41,318.391 193.936,315.955 194.461,313.477 194.987,310.958 195.513,308.399 196.038,305.8 196.564,303.163
197.09,300.489 197.616,297.778 198.141,295.032 198.667,292.251 199.193,289.436 199.718,286.59 200.244,283.711 200.77,280.802 201.295,277.864 201.821,274.897
202.347,271.903 202.873,268.882 203.398,265.836 203.924,262.766 204.45,259.674 204.975,256.559 205.501,253.423 206.027,250.268 206.553,247.094 207.078,243.902
207.604,240.694 208.13,237.471 208.655,234.234 209.181,230.984 209.707,227.723 210.233,224.45 210.758,221.169 211.284,217.879 211.81,214.582 212.335,211.279
212.861,207.972 213.387,204.661 213.912,201.347 214.438,198.032 214.964,194.718 215.49,191.404 216.015,188.093 216.541,184.786 217.067,181.483 217.592,178.186
218.118,174.896 218.644,171.615 219.17,168.342 219.695,165.081 220.221,161.831 220.747,158.594 221.272,155.371 221.798,152.163 222.324,148.971 222.849,145.797
223.375,142.642 223.901,139.506 224.427,136.391 224.952,133.298 225.478,130.229 226.004,127.183 226.529,124.162 227.055,121.168 227.581,118.201 228.107,115.263
228.632,112.354 229.158,109.475 229.684,106.629 230.209,103.814 230.735,101.033 231.261,98.2869 231.787,95.5761 232.312,92.9018 232.838,90.2649 233.364,87.6664
233.889,85.1071 234.415,82.5881 234.941,80.1101 235.466,77.6742 235.992,75.281 236.518,72.9316 237.044,70.6267 237.569,68.3672 238.095,66.1539 238.621,63.9874
239.146,61.8688 239.672,59.7985 240.198,57.7775 240.724,55.8065 241.249,53.886 241.775,52.0169 242.301,50.1998 242.826,48.4353 243.352,46.724 243.878,45.0666
244.404,43.4637 244.929,41.9158 245.455,40.4235 245.981,38.9873 246.506,37.6077 247.032,36.2852 247.558,35.0203 248.083,33.8134 248.609,32.665 249.135,31.5755
249.661,30.5453 250.186,29.5746 250.712,28.664 251.238,27.8136 251.763,27.0238 252.289,26.2949 252.815,25.6272 253.341,25.0208 253.866,24.476 254.392,23.993
254.918,23.572 255.443,23.2131 255.969,22.9164 256.495,22.682 257.02,22.5101 257.546,22.4007 258.072,22.3538 258.598,22.3694 259.123,22.4476 259.649,22.5883
260.175,22.7914 260.7,23.0569 261.226,23.3847 261.752,23.7747 262.278,24.2268 262.803,24.7407 263.329,25.3163 263.855,25.9534 264.38,26.6517 264.906,27.4111
265.432,28.2312 265.958,29.1118 266.483,30.0525 267.009,31.053 267.535,32.1129 268.06,33.2319 268.586,34.4096 269.112,35.6455 269.637,36.9393 270.163,38.2904
270.689,39.6983 271.215,41.1627 271.74,42.6828 272.266,44.2583 272.792,45.8886 273.317,47.5729 273.843,49.3109 274.369,51.1018 274.895,52.945 275.42,54.8399
275.946,56.7857 276.472,58.7818 276.997,60.8275 277.523,62.9221 278.049,65.0647 278.575,67.2547 279.1,69.4913 279.626,71.7736 280.152,74.1008 280.677,76.4722
281.203,78.8868 281.729,81.3439 282.254,83.8425 282.78,86.3818 283.306,88.9608 283.832,91.5786 284.357,94.2344 284.883,96.927 285.409,99.6557 285.934,102.419
286.46,105.217 286.986,108.048 287.512,110.911 288.037,113.805 288.563,116.728 289.089,119.681 289.614,122.662 290.14,125.669 290.666,128.703 291.191,131.761
291.717,134.842 292.243,137.946 292.769,141.072 293.294,144.217 293.82,147.382 294.346,150.565 294.871,153.765 295.397,156.98 295.923,160.211 296.449,163.454
296.974,166.71 297.5,169.977 298.026,173.254 298.551,176.54 299.077,179.834 299.603,183.134 300.129,186.439 300.654,189.749 301.18,193.061 301.706,196.375
302.231,199.69 302.757,203.004 303.283,206.316 303.808,209.626 304.334,212.931 304.86,216.231 305.386,219.525 305.911,222.811 306.437,226.088 306.963,229.355
307.488,232.611 308.014,235.854 308.54,239.085 309.066,242.3 309.591,245.5 310.117,248.683 310.643,251.848 311.168,254.993 311.694,258.119 312.22,261.223
312.746,264.304 313.271,267.362 313.797,270.396 314.323,273.403 314.848,276.384 315.374,279.336 315.9,282.26 316.425,285.154 316.951,288.017 317.477,290.848
318.003,293.646 318.528,296.409 319.054,299.138 319.58,301.831 320.105,304.486 320.631,307.104 321.157,309.683 321.683,312.222 322.208,314.721 322.734,317.178
323.26,319.593 323.785,321.964 324.311,324.291 324.837,326.574 325.362,328.81 325.888,331 326.414,333.143 326.94,335.237 327.465,337.283 327.991,339.279
328.517,341.225 329.042,343.12 329.568,344.963 330.094,346.754 330.62,348.492 331.145,350.176 331.671,351.807 332.197,353.382 332.722,354.902 333.248,356.367
333.774,357.775 334.3,359.126 334.825,360.419 335.351,361.655 335.877,362.833 336.402,363.952 336.928,365.012 337.454,366.012 337.979,366.953 338.505,367.834
339.031,368.654 339.557,369.413 340.082,370.112 340.608,370.749 341.134,371.324 341.659,371.838 342.185,372.29 342.711,372.68 343.237,373.008 343.762,373.274
344.288,373.477 344.814,373.617 345.339,373.696 345.865,373.711 346.391,373.664 346.917,373.555 347.442,373.383 347.968,373.149 348.494,372.852 349.019,372.493
349.545,372.072 350.071,371.589 350.596,371.044 351.122,370.438 351.648,369.77 352.174,369.041 352.699,368.251 353.225,367.401 353.751,366.49 354.276,365.52
354.802,364.489 355.328,363.4 355.854,362.251 356.379,361.045 356.905,359.78 357.431,358.457 357.956,357.078 358.482,355.641 359.008,354.149 359.533,352.601
360.059,350.998 360.585,349.341 361.111,347.63 361.636,345.865 362.162,344.048 362.688,342.179 363.213,340.258 363.739,338.287 364.265,336.266 364.791,334.196
365.316,332.077 365.842,329.911 366.368,327.698 366.893,325.438 367.419,323.133 367.945,320.784 368.471,318.391 368.996,315.955 369.522,313.477 370.048,310.958
370.573,308.399 371.099,305.8 371.625,303.163 372.15,300.489 372.676,297.778 373.202,295.032 373.728,292.251 374.253,289.436 374.779,286.59 375.305,283.711
375.83,280.802 376.356,277.864 376.882,274.897 377.408,271.903 377.933,268.882 378.459,265.836 378.985,262.766 379.51,259.674 380.036,256.559 380.562,253.423
381.088,250.268 381.613,247.094 382.139,243.902 382.665,240.694 383.19,237.471 383.716,234.234 384.242,230.984 384.767,227.723 385.293,224.45 385.819,221.169
386.345,217.879 386.87,214.582 387.396,211.279 387.922,207.972 388.447,204.661 388.973,201.347 389.499,198.032 390.025,194.718 390.55,191.404 391.076,188.093
391.602,184.786 392.127,181.483 392.653,178.186 393.179,174.896 393.704,171.615 394.23,168.342 394.756,165.081 395.282,161.831 395.807,158.594 396.333,155.371
396.859,152.163 397.384,148.971 397.91,145.797 398.436,142.642 398.962,139.506 399.487,136.391 400.013,133.298 400.539,130.229 401.064,127.183 401.59,124.162
402.116,121.168 402.642,118.201 403.167,115.263 403.693,112.354 404.219,109.475 404.744,106.629 405.27,103.814 405.796,101.033 406.321,98.2869 406.847,95.5761
407.373,92.9018 407.899,90.2649 408.424,87.6664 408.95,85.1071 409.476,82.5881 410.001,80.1101 410.527,77.6742 411.053,75.281 411.579,72.9316 412.104,70.6267
412.63,68.3672 413.156,66.1539 413.681,63.9874 414.207,61.8688 414.733,59.7985 415.259,57.7775 415.784,55.8065 416.31,53.886 416.836,52.0169 417.361,50.1998
417.887,48.4353 418.413,46.724 418.938,45.0666 419.464,43.4637 419.99,41.9158 420.516,40.4235 421.041,38.9873 421.567,37.6077 422.093,36.2852 422.618,35.0203
423.144,33.8134 423.67,32.665 424.196,31.5755 424.721,30.5453 425.247,29.5746 425.773,28.664 426.298,27.8136 426.824,27.0238 427.35,26.2949 427.875,25.6272
428.401,25.0208 428.927,24.476 429.453,23.993 429.978,23.572 430.504,23.2131 431.03,22.9164 431.555,22.682 432.081,22.5101 432.607,22.4007 433.133,22.3538
433.658,22.3694 434.184,22.4476 434.71,22.5883 435.235,22.7914 435.761,23.0569 436.287,23.3847 436.813,23.7747 437.338,24.2268 437.864,24.7407 438.39,25.3163
438.915,25.9534 439.441,26.6517 439.967,27.4111 440.492,28.2312 441.018,29.1118 441.544,30.0525 442.07,31.053 442.595,32.1129 443.121,33.2319 443.647,34.4096
444.172,35.6455 444.698,36.9393 445.224,38.2904 445.75,39.6983 446.275,41.1627 446.801,42.6828 447.327,44.2583 447.852,45.8886 448.378,47.5729 448.904,49.3109
449.43,51.1018 449.955,52.945 450.481,54.8399 451.007,56.7857 451.532,58.7818 452.058,60.8275 452.584,62.9221 453.109,65.0647 453.635,67.2547 454.161,69.4913
454.687,71.7736 455.212,74.1008 455.738,76.4722 456.264,78.8868 456.789,81.3439 457.315,83.8425 457.841,86.3818 458.367,88.9608 458.892,91.5786 459.418,94.2344
459.944,96.927 460.469,99.6557 460.995,102.419 461.521,105.217 462.046,108.048 462.572,110.911 463.098,113.805 463.624,116.728 464.149,119.681 464.675,122.662
465.201,125.669 465.726,128.703 466.252,131.761 466.778,134.842 467.304,137.946 467.829,141.072 468.355,144.217 468.881,147.382 469.406,150.565 469.932,153.765
470.458,156.98 470.984,160.211 471.509,163.454 472.035,166.71 472.561,169.977 473.086,173.254 473.612,176.54 474.138,179.834 474.663,183.134 475.189,186.439
475.715,189.749 476.241,193.061 476.766,196.375 477.292,199.69 477.818,203.004 478.343,206.316 478.869,209.626 479.395,212.931 479.921,216.231 480.446,219.525
480.972,222.811 481.498,226.088 482.023,229.355 482.549,232.611 483.075,235.854 483.601,239.085 484.126,242.3 484.652,245.5 485.178,248.683 485.703,251.848
486.229,254.993 486.755,258.119 487.28,261.223 487.806,264.304 488.332,267.362 488.858,270.396 489.383,273.403 489.909,276.384 490.435,279.336 490.96,282.26
491.486,285.154 492.012,288.017 492.538,290.848 493.063,293.646 493.589,296.409 494.115,299.138 494.64,301.831 495.166,304.486 495.692,307.104 496.217,309.683
496.743,312.222 497.269,314.721 497.795,317.178 498.32,319.593 498.846,321.964 499.372,324.291 499.897,326.574 500.423,328.81 500.949,331 501.475,333.143
502,335.237 502.526,337.283 503.052,339.279 503.577,341.225 504.103,343.12 504.629,344.963 505.155,346.754 505.68,348.492 506.206,350.176 506.732,351.807
507.257,353.382 507.783,354.902 508.309,356.367 508.834,357.775 509.36,359.126 509.886,360.419 510.412,361.655 510.937,362.833 511.463,363.952 511.989,365.012
512.514,366.012 513.04,366.953 513.566,367.834 514.092,368.654 514.617,369.413 515.143,370.112 515.669,370.749 516.194,371.324 516.72,371.838 517.246,372.29
517.772,372.68 518.297,373.008 518.823,373.274 519.349,373.477 519.874,373.617 520.4,373.696 520.926,373.711 521.451,373.664 521.977,373.555 522.503,373.383
523.029,373.149 523.554,372.852 524.08,372.493 524.606,372.072 525.131,371.589 525.657,371.044 526.183,370.438 526.709,369.77 527.234,369.041 527.76,368.251
528.286,367.401 528.811,366.49 529.337,365.52 529.863,364.489 530.389,363.4 530.914,362.251 531.44,361.045 531.966,359.78 532.491,358.457 533.017,357.078
533.543,355.641 534.068,354.149 534.594,352.601 535.12,350.998 535.646,349.341 536.171,347.63 536.697,345.865 537.223,344.048 537.748,342.179 538.274,340.258
538.8,338.287 539.326,336.266 539.851,334.196 540.377,332.077 540.903,329.911 541.428,327.698 541.954,325.438 542.48,323.133 543.005,320.784 543.531,318.391
544.057,315.955 544.583,313.477 545.108,310.958 545.634,308.399 546.16,305.8 546.685,303.163 547.211,300.489 547.737,297.778 548.263,295.032 548.788,292.251
549.314,289.436 549.84,286.59 550.365,283.711 550.891,280.802 551.417,277.864 551.943,274.897 552.468,271.903 552.994,268.882 553.52,265.836 554.045,262.766
554.571,259.674 555.097,256.559 555.622,253.423 556.148,250.268 556.674,247.094 557.2,243.902 557.725,240.694 558.251,237.471 558.777,234.234 559.302,230.984
559.828,227.723 560.354,224.45 560.88,221.169 561.405,217.879 561.931,214.582 562.457,211.279 562.982,207.972 563.508,204.661 564.034,201.347 564.56,198.032
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,22.3518 39.9032,22.3831 40.4289,22.4769 40.9546,22.6332 41.4803,22.8519 42.006,23.133 42.5318,23.4764 43.0575,23.8819 43.5832,24.3495 44.1089,24.8788
44.6346,25.4698 45.1603,26.1222 45.686,26.8359 46.2117,27.6104 46.7374,28.4457 47.2631,29.3413 47.7888,30.297 48.3145,31.3124 48.8402,32.3871 49.366,33.5209
49.8917,34.7131 50.4174,35.9636 50.9431,37.2717 51.4688,38.637 51.9945,40.0591 52.5202,41.5375 53.0459,43.0715 53.5716,44.6608 54.0973,46.3046 54.623,48.0024
55.1487,49.7537 55.6744,51.5577 56.2002,53.4139 56.7259,55.3216 57.2516,57.2801 57.7773,59.2887 58.303,61.3466 58.8287,63.4533 59.3544,65.6078 59.8801,67.8095
60.4058,70.0576 60.9315,72.3512 61.4572,74.6896 61.9829,77.0718 62.5086,79.4972 63.0344,81.9647 63.5601,84.4736 64.0858,87.0228 64.6115,89.6116 65.1372,92.239
65.6629,94.9041 66.1886,97.6059 66.7143,100.343 67.24,103.116 67.7657,105.922 68.2914,108.761 68.8171,111.631 69.3428,114.533 69.8686,117.464 70.3943,120.424
70.92,123.411 71.4457,126.425 71.9714,129.465 72.4971,132.529 73.0228,135.616 73.5485,138.726 74.0742,141.856 74.5999,145.007 75.1256,148.176 75.6513,151.363
76.177,154.567 76.7028,157.787 77.2285,161.02 77.7542,164.267 78.2799,167.526 78.8056,170.796 79.3313,174.075 79.857,177.363 80.3827,180.658 80.9084,183.96
81.4341,187.266 81.9598,190.576 82.4855,193.889 83.0112,197.204 83.537,200.519 84.0627,203.832 84.5884,207.144 85.1141,210.453 85.6398,213.757 86.1655,217.055
86.6912,220.347 87.2169,223.631 87.7426,226.906 88.2683,230.17 88.794,233.423 89.3197,236.663 89.8454,239.89 90.3712,243.102 90.8969,246.297 91.4226,249.476
91.9483,252.636 92.474,255.777 92.9997,258.897 93.5254,261.995 94.0511,265.071 94.5768,268.123 95.1025,271.15 95.6282,274.151 96.1539,277.125 96.6796,280.07
97.2054,282.987 97.7311,285.873 98.2568,288.728 98.7825,291.55 99.3082,294.34 99.8339,297.095 100.36,299.814 100.885,302.498 101.411,305.144 101.937,307.753
102.462,310.322 102.988,312.851 103.514,315.339 104.04,317.786 104.565,320.19 105.091,322.55 105.617,324.866 106.142,327.137 106.668,329.362 107.194,331.54
107.72,333.671 108.245,335.753 108.771,337.787 109.297,339.77 109.822,341.704 110.348,343.586 110.874,345.416 111.399,347.194 111.925,348.918 112.451,350.589
112.977,352.206 113.502,353.767 114.028,355.274 114.554,356.724 115.079,358.118 115.605,359.455 116.131,360.734 116.657,361.955 117.182,363.118 117.708,364.223
118.234,365.268 118.759,366.253 119.285,367.179 119.811,368.044 120.336,368.849 120.862,369.594 121.388,370.277 121.914,370.898 122.439,371.459 122.965,371.957
123.491,372.394 124.016,372.768 124.542,373.08 125.068,373.33 125.594,373.518 126.119,373.643 126.645,373.705 127.171,373.705 127.696,373.643 128.222,373.518
128.748,373.33 129.274,373.08 129.799,372.768 130.325,372.394 130.851,371.957 131.376,371.459 131.902,370.898 132.428,370.277 132.953,369.594 133.479,368.849
134.005,368.044 134.531,367.179 135.056,366.253 135.582,365.268 136.108,364.223 136.633,363.118 137.159,361.955 137.685,360.734 138.211,359.455 138.736,358.118
139.262,356.724 139.788,355.274 140.313,353.767 140.839,352.206 141.365,350.589 141.891,348.918 142.416,347.194 142.942,345.416 143.468,343.586 143.993,341.704
144.519,339.77 145.045,337.787 145.57,335.753 146.096,333.671 146.622,331.54 147.148,329.362 147.673,327.137 148.199,324.866 148.725,322.55 149.25,320.19
149.776,317.786 150.302,315.339 150.828,312.851 151.353,310.322 151.879,307.753 152.405,305.144 152.93,302.498 153.456,299.814 153.982,297.095 154.507,294.34
155.033,291.55 155.559,288.728 156.085,285.873 156.61,282.987 157.136,280.07 157.662,277.125 158.187,274.151 158.713,271.15 159.239,268.123 159.765,265.071
160.29,261.995 160.816,258.897 161.342,255.777 161.867,252.636 162.393,249.476 162.919,246.297 163.445,243.102 163.97,239.89 164.496,236.663 165.022,233.423
165.547,230.17 166.073,226.906 166.599,223.631 167.124,220.347 167.65,217.055 168.176,213.757 168.702,210.453 169.227,207.144 169.753,203.832 170.279,200.519
170.804,197.204 171.33,193.889 171.856,190.576 172.382,187.266 172.907,183.96 173.433,180.658 173.959,177.363 174.484,174.075 175.01,170.796 175.536,167.526
176.062,164.267 176.587,161.02 177.113,157.787 177.639,154.567 178.164,151.363 178.69,148.176 179.216,145.007 179.741,141.856 180.267,138.726 180.793,135.616
181.319,132.529 181.844,129.465 182.37,126.425 182.896,123.411 183.421,120.424 183.947,117.464 184.473,114.533 184.999,111.631 185.524,108.761 186.05,105.922
186.576,103.116 187.101,100.343 187.627,97.6059 188.153,94.9041 188.678,92.239 189.204,89.6116 189.73,87.0228 190.256,84.4736 190.781,81.9647 191.307,79.4972
191.833,77.0718 192.358,74.6896 192.884,72.3512 193.41,70.0576 193.936,67.8095 194.461,65.6078 194.987,63.4533 195.513,61.3466 196.038,59.2887 196.564,57.2801
197.09,55.3216 197.616,53.4139 198.141,51.5577 198.667,49.7537 199.193,48.0024 199.718,46.3046 200.244,44.6608 200.77,43.0715 201.295,41.5375 201.821,40.0591
202.347,38.637 202.873,37.2717 203.398,35.9636 203.924,34.7131 204.45,33.5209 204.975,32.3871 205.501,31.3124 206.027,30.297 206.553,29.3413 207.078,28.4457
207.604,27.6104 208.13,26.8359 208.655,26.1222 209.181,25.4698 209.707,24.8788 210.233,24.3495 210.758,23.8819 211.284,23.4764 211.81,23.133 212.335,22.8519
212.861,22.6332 213.387,22.4769 213.912,22.3831 214.438,22.3518 214.964,22.3831 215.49,22.4769 216.015,22.6332 216.541,22.8519 217.067,23.133 217.592,23.4764
218.118,23.8819 218.644,24.3495 219.17,24.8788 219.695,25.4698 220.221,26.1222 220.747,26.8359 221.272,27.6104 221.798,28.4457 222.324,29.3413 222.849,30.297
223.375,31.3124 223.901,32.3871 224.427,33.5209 224.952,34.7131 225.478,35.9636 226.004,37.2717 226.529,38.637 227.055,40.0591 227.581,41.5375 228.107,43.0715
228.632,44.6608 229.158,46.3046 229.684,48.0024 230.209,49.7537 230.735,51.5577 231.261,53.4139 231.787,55.3216 232.312,57.2801 232.838,59.2887 233.364,61.3466
233.889,63.4533 234.415,65.6078 234.941,67.8095 235.466,70.0576 235.992,72.3512 236.518,74.6896 237.044,77.0718 237.569,79.4972 238.095,81.9647 238.621,84.4736
239.146,87.0228 239.672,89.6116 240.198,92.239 240.724,94.9041 241.249,97.6059 241.775,100.343 242.301,103.116 242.826,105.922 243.352,108.761 243.878,111.631
244.404,114.533 244.929,117.464 245.455,120.424 245.981,123.411 246.506,126.425 247.032,129.465 247.558,132.529 248.083,135.616 248.609,138.726 249.135,141.856
249.661,145.007 250.186,148.176 250.712,151.363 251.238,154.567 251.763,157.787 252.289,161.02 252.815,164.267 253.341,167.526 253.866,170.796 254.392,174.075
254.918,177.363 255.443,180.658 255.969,183.96 256.495,187.266 257.02,190.576 257.546,193.889 258.072,197.204 258.598,200.519 259.123,203.832 259.649,207.144
260.175,210.453 260.7,213.757 261.226,217.055 261.752,220.347 262.278,223.631 262.803,226.906 263.329,230.17 263.855,233.423 264.38,236.663 264.906,239.89
265.432,243.102 265.958,246.297 266.483,249.476 267.009,252.636 267.535,255.777 268.06,258.897 268.586,261.995 269.112,265.071 269.637,268.123 270.163,271.15
270.689,274.151 271.215,277.125 271.74,280.07 272.266,282.987 272.792,285.873 273.317,288.728 273.843,291.55 274.369,294.34 274.895,297.095 275.42,299.814
275.946,302.498 276.472,305.144 276.997,307.753 277.523,310.322 278.049,312.851 278.575,315.339 279.1,317.786 279.626,320.19 280.152,322.55 280.677,324.866
281.203,327.137 281.729,329.362 282.254,331.54 282.78,333.671 283.306,335.753 283.832,337.787 284.357,339.77 284.883,341.704 285.409,343.586 285.934,345.416
286.46,347.194 286.986,348.918 287.512,350.589 288.037,352.206 288.563,353.767 289.089,355.274 289.614,356.724 290.14,358.118 290.666,359.455 291.191,360.734
291.717,361.955 292.243,363.118 292.769,364.223 293.294,365.268 293.82,366.253 294.346,367.179 294.871,368.044 295.397,368.849 295.923,369.594 296.449,370.277
296.974,370.898 297.5,371.459 298.026,371.957 298.551,372.394 299.077,372.768 299.603,373.08 300.129,373.33 300.654,373.518 301.18,373.643 301.706,373.705
302.231,373.705 302.757,373.643 303.283,373.518 303.808,373.33 304.334,373.08 304.86,372.768 305.386,372.394 305.911,371.957 306.437,371.459 306.963,370.898
307.488,370.277 308.014,369.594 308.54,368.849 309.066,368.044 309.591,367.179 310.117,366.253 310.643,365.268 311.168,364.223 311.694,363.118 312.22,361.955
312.746,360.734 313.271,359.455 313.797,358.118 314.323,356.724 314.848,355.274 315.374,353.767 315.9,352.206 316.425,350.589 316.951,348.918 317.477,347.194
318.003,345.416 318.528,343.586 319.054,341.704 319.58,339.77 320.105,337.787 320.631,335.753 321.157,333.671 321.683,331.54 322.208,329.362 322.734,327.137
323.26,324.866 323.785,322.55 324.311,320.19 324.837,317.786 325.362,315.339 325.888,312.851 326.414,310.322 326.94,307.753 327.465,305.144 327.991,302.498
328.517,299.814 329.042,297.095 329.568,294.34 330.094,291.55 330.62,288.728 331.145,285.873 331.671,282.987 332.197,280.07 332.722,277.125 333.248,274.151
333.774,271.15 334.3,268.123 334.825,265.071 335.351,261.995 335.877,258.897 336.402,255.777 336.928,252.636 337.454,249.476 337.979,246.297 338.505,243.102
339.031,239.89 339.557,236.663 340.082,233.423 340.608,230.17 341.134,226.906 341.659,223.631 342.185,220.347 342.711,217.055 343.237,213.757 343.762,210.453
344.288,207.144 344.814,203.832 345.339,200.519 345.865,197.204 346.391,193.889 346.917,190.576 347.442,187.266 347.968,183.96 348.494,180.658 349.019,177.363
349.545,174.075 350.071,170.796 350.596,167.526 351.122,164.267 351.648,161.02 352.174,157.787 352.699,154.567 353.225,151.363 353.751,148.176 354.276,145.007
354.802,141.856 355.328,138.726 355.854,135.616 356.379,132.529 356.905,129.465 357.431,126.425 357.956,123.411 358.482,120.424 359.008,117.464 359.533,114.533
360.059,111.631 360.585,108.761 361.111,105.922 361.636,103.116 362.162,100.343 362.688,97.6059 363.213,94.9041 363.739,92.239 364.265,89.6116 364.791,87.0228
365.316,84.4736 365.842,81.9647 366.368,79.4972 366.893,77.0718 367.419,74.6896 367.945,72.3512 368.471,70.0576 368.996,67.8095 369.522,65.6078 370.048,63.4533
370.573,61.3466 371.099,59.2887 371.625,57.2801 372.15,55.3216 372.676,53.4139 373.202,51.5577 373.728,49.7537 374.253,48.0024 374.779,46.3046 375.305,44.6608
375.83,43.0715 376.356,41.5375 376.882,40.0591 377.408,38.637 377.933,37.2717 378.459,35.9636 378.985,34.7131 379.51,33.5209 380.036,32.3871 380.562,31.3124
381.088,30.297 381.613,29.3413 382.139,28.4457 382.665,27.6104 383.19,26.8359 383.716,26.1222 384.242,25.4698 384.767,24.8788 385.293,24.3495 385.819,23.8819
386.345,23.4764 386.87,23.133 387.396,22.8519 387.922,22.6332 388.447,22.4769 388.973,22.3831 389.499,22.3518 390.025,22.3831 390.55,22.4769 391.076,22.6332
391.602,22.8519 392.127,23.133 392.653,23.4764 393.179,23.8819 393.704,24.3495 394.23,24.8788 394.756,25.4698 395.282,26.1222 395.807,26.8359 396.333,27.6104
396.859,28.4457 397.384,29.3413 397.91,30.297 398.436,31.3124 398.962,32.3871 399.487,33.5209 400.013,34.7131 400.539,35.9636 401.064,37.2717 401.59,38.637
402.116,40.0591 402.642,41.5375 403.167,43.0715 403.693,44.6608 404.219,46.3046 404.744,48.0024 405.27,49.7537 405.796,51.5577 406.321,53.4139 406.847,55.3216
407.373,57.2801 407.899,59.2887 408.424,61.3466 408.95,63.4533 409.476,65.6078 410.001,67.8095 410.527,70.0576 411.053,72.3512 411.579,74.6896 412.104,77.0718
412.63,79.4972 413.156,81.9647 413.681,84.4736 414.207,87.0228 414.733,89.6116 415.259,92.239 415.784,94.9041 416.31,97.6059 416.836,100.343 417.361,103.116
417.887,105.922 418.413,108.761 418.938,111.631 419.464,114.533 419.99,117.464 420.516,120.424 421.041,123.411 421.567,126.425 422.093,129.465 422.618,132.529
423.144,135.616 423.67,138.726 424.196,141.856 424.721,145.007 425.247,148.176 425.773,151.363 426.298,154.567 426.824,157.787 427.35,161.02 427.875,164.267
428.401,167.526 428.927,170.796 429.453,174.075 429.978,177.363 430.504,180.658 431.03,183.96 431.555,187.266 432.081,190.576 432.607,193.889 433.133,197.204
433.658,200.519 434.184,203.832 434.71,207.144 435.235,210.453 435.761,213.757 436.287,217.055 436.813,220.347 437.338,223.631 437.864,226.906 438.39,230.17
438.915,233.423 439.441,236.663 439.967,239.89 440.492,243.102 441.018,246.297 441.544,249.476 442.07,252.636 442.595,255.777 443.121,258.897 443.647,261.995
444.172,265.071 444.698,268.123 445.224,271.15 445.75,274.151 446.275,277.125 446.801,280.07 447.327,282.987 447.852,285.873 448.378,288.728 448.904,291.55
449.43,294.34 449.955,297.095 450.481,299.814 451.007,302.498 451.532,305.144 452.058,307.753 452.584,310.322 453.109,312.851 453.635,315.339 454.161,317.786
454.687,320.19 455.212,322.55 455.738,324.866 456.264,327.137 456.789,329.362 457.315,331.54 457.841,333.671 458.367,335.753 458.892,337.787 459.418,339.77
459.944,341.704 460.469,343.586 460.995,345.416 461.521,347.194 462.046,348.918 462.572,350.589 463.098,352.206 463.624,353.767 464.149,355.274 464.675,356.724
465.201,358.118 465.726,359.455 466.252,360.734 466.778,361.955 467.304,363.118 467.829,364.223 468.355,365.268 468.881,366.253 469.406,367.179 469.932,368.044
470.458,368.849 470.984,369.594 471.509,370.277 472.035,370.898 472.561,371.459 473.086,371.957 473.612,372.394 474.138,372.768 474.663,373.08 475.189,373.33
475.715,373.518 476.241,373.643 476.766,373.705 477.292,373.705 477.818,373.643 478.343,373.518 478.869,373.33 479.395,373.08 479.921,372.768 480.446,372.394
480.972,371.957 481.498,371.459 482.023,370.898 482.549,370.277 483.075,369.594 483.601,368.849 484.126,368.044 484.652,367.179 485.178,366.253 485.703,365.268
486.229,364.223 486.755,363.118 487.28,361.955 487.806,360.734 488.332,359.455 488.858,358.118 489.383,356.724 489.909,355.274 490.435,353.767 490.96,352.206
491.486,350.589 492.012,348.918 492.538,347.194 493.063,345.416 493.589,343.586 494.115,341.704 494.64,339.77 495.166,337.787 495.692,335.753 496.217,333.671
496.743,331.54 497.269,329.362 497.795,327.137 498.32,324.866 498.846,322.55 499.372,320.19 499.897,317.786 500.423,315.339 500.949,312.851 501.475,310.322
502,307.753 502.526,305.144 503.052,302.498 503.577,299.814 504.103,297.095 504.629,294.34 505.155,291.55 505.68,288.728 506.206,285.873 506.732,282.987
507.257,280.07 507.783,277.125 508.309,274.151 508.834,271.15 509.36,268.123 509.886,265.071 510.412,261.995 510.937,258.897 511.463,255.777 511.989,252.636
512.514,249.476 513.04,246.297 513.566,243.102 514.092,239.89 514.617,236.663 515.143,233.423 515.669,230.17 516.194,226.906 516.72,223.631 517.246,220.347
517.772,217.055 518.297,213.757 518.823,210.453 519.349,207.144 519.874,203.832 520.4,200.519 520.926,197.204 521.451,193.889 521.977,190.576 522.503,187.266
523.029,183.96 523.554,180.658 524.08,177.363 524.606,174.075 525.131,170.796 525.657,167.526 526.183,164.267 526.709,161.02 527.234,157.787 527.76,154.567
528.286,151.363 528.811,148.176 529.337,145.007 529.863,141.856 530.389,138.726 530.914,135.616 531.44,132.529 531.966,129.465 532.491,126.425 533.017,123.411
533.543,120.424 534.068,117.464 534.594,114.533 535.12,111.631 535.646,108.761 536.171,105.922 536.697,103.116 537.223,100.343 537.748,97.6059 538.274,94.9041
538.8,92.239 539.326,89.6116 539.851,87.0228 540.377,84.4736 540.903,81.9647 541.428,79.4972 541.954,77.0718 542.48,74.6896 543.005,72.3512 543.531,70.0576
544.057,67.8095 544.583,65.6078 545.108,63.4533 545.634,61.3466 546.16,59.2887 546.685,57.2801 547.211,55.3216 547.737,53.4139 548.263,51.5577 548.788,49.7537
549.314,48.0024 549.84,46.3046 550.365,44.6608 550.891,43.0715 551.417,41.5375 551.943,40.0591 552.468,38.637 552.994,37.2717 553.52,35.9636 554.045,34.7131
554.571,33.5209 555.097,32.3871 555.622,31.3124 556.148,30.297 556.674,29.3413 557.2,28.4457 557.725,27.6104 558.251,26.8359 558.777,26.1222 559.302,25.4698
559.828,24.8788 560.354,24.3495 560.88,23.8819 561.405,23.4764 561.931,23.133 562.457,22.8519 562.982,22.6332 563.508,22.4769 564.034,22.3831 564.56,22.3518
"/>
<polygon clip-path="url(#clip4100)" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691
" fill="#ffffff" fill-opacity="1"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 489.608,78.051
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,47.811 531.608,47.811
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 52.311)" x="537.608" y="52.311">y1</text>
</g>
<polyline clip-path="url(#clip4100)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,62.931 531.608,62.931
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 67.431)" x="537.608" y="67.431">y2</text>
</g>
</svg>
</div><h3><a class="nav-anchor" id="Custom-processing-1" href="#Custom-processing-1">Custom processing</a></h3><p>It is possible to give Literate custom pre- and post-processing functions. For example, here we insert two placeholders, which we will replace with something else at time of generation. We have here replaced our placeholders with <code>z</code> and <code>1.0 + 2.0im</code>:</p><div><pre><code class="language-julia">z = 1.0 + 2.0im</code></pre><pre><code class="language-none">1.0 + 2.0im</code></pre></div><h3><a class="nav-anchor" id="documenter-interaction-1" href="#documenter-interaction-1">Documenter.jl interaction</a></h3><p>In the source file it is possible to use Documenter.jl style references, such as <code>@ref</code> and <code>@id</code>. These will be filtered out in the notebook output. For example, <a href="example.html#documenter-interaction-1">here is a link</a>, but it is only visible as a link if you are reading the markdown output. We can also use equations:</p><div>\[\int_\Omega \nabla v \cdot \nabla u\ \mathrm{d}\Omega = \int_\Omega v f\ \mathrm{d}\Omega\]</div><p>using Documenters math syntax. Documenters syntax is automatically changed to <code>\begin{equation} ... \end{equation}</code> in the notebook output to display correctly.</p><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p><footer><hr/><a class="previous" href="../documenter.html"><span class="direction">Previous</span><span class="title"><strong>6.</strong> Interaction with Documenter.jl</span></a></footer></article></body></html>

952
release-1.0/generated/example.ipynb

File diff suppressed because one or more lines are too long

24
release-1.0/generated/example.jl

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
x = 1//3
y = 2//5
x + y
x * y
function foo()
println("This string is printed to stdout.")
return [1, 2, 3, 4]
end
foo()
using Plots
x = range(0, stop=6π, length=1000)
y1 = sin.(x)
y2 = cos.(x)
plot(x, [y1, y2])
z = 1.0 + 2.0im
# This file was generated using Literate.jl, https://github.com/fredrikekre/Literate.jl

100
release-1.0/generated/notebook.ipynb

@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
{
"cells": [
{
"outputs": [],
"cell_type": "markdown",
"source": [
"# Rational numbers\n",
"\n",
"In julia rational numbers can be constructed with the `//` operator.\n",
"Lets define two rational numbers, `x` and `y`:"
],
"metadata": {}
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "1//3"
},
"metadata": {},
"execution_count": 1
}
],
"cell_type": "code",
"source": [
"x = 1//3"
],
"metadata": {},
"execution_count": 1
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "2//5"
},
"metadata": {},
"execution_count": 2
}
],
"cell_type": "code",
"source": [
"y = 2//5"
],
"metadata": {},
"execution_count": 2
},
{
"outputs": [],
"cell_type": "markdown",
"source": [
"When adding `x` and `y` together we obtain a new rational number:"
],
"metadata": {}
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "11//15"
},
"metadata": {},
"execution_count": 3
}
],
"cell_type": "code",
"source": [
"z = x + y"
],
"metadata": {},
"execution_count": 3
},
{
"outputs": [],
"cell_type": "markdown",
"source": [
"*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
],
"metadata": {}
}
],
"nbformat_minor": 3,
"metadata": {
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.0.0"
},
"kernelspec": {
"name": "julia-1.0",
"display_name": "Julia 1.0.0",
"language": "julia"
}
},
"nbformat": 4
}

6
release-1.0/generated/outputformats.jl

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
x = 1//3
y = 2//5
z = x + y

2
release-1.0/index.html

File diff suppressed because one or more lines are too long

38
release-1.0/outputformats.html

File diff suppressed because one or more lines are too long

12
release-1.0/outputformats.jl

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
# # Rational numbers
#
# In julia rational numbers can be constructed with the `//` operator.
# Lets define two rational numbers, `x` and `y`:
x = 1//3
#-
y = 2//5
# When adding `x` and `y` together we obtain a new rational number:
z = x + y

29
release-1.0/pipeline.html

File diff suppressed because one or more lines are too long

2
release-1.0/search.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Search · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article><header><nav><ul><li>Search</li></ul></nav><hr/><div id="topbar"><span>Search</span><a class="fa fa-bars" href="#"></a></div></header><h1>Search</h1><p id="search-info">Number of results: <span id="search-results-number">loading...</span></p><ul id="search-results"></ul></article></body><script src="search_index.js"></script><script src="assets/search.js"></script></html>

307
release-1.0/search_index.js

@ -0,0 +1,307 @@ @@ -0,0 +1,307 @@
var documenterSearchIndex = {"docs": [
{
"location": "index.html#",
"page": "1. Introduction",
"title": "1. Introduction",
"category": "page",
"text": ""
},
{
"location": "index.html#**1.**-Introduction-1",
"page": "1. Introduction",
"title": "1. Introduction",
"category": "section",
"text": "Welcome to the documentation for Literate – a simplistic package for Literate Programming."
},
{
"location": "index.html#What?-1",
"page": "1. Introduction",
"title": "What?",
"category": "section",
"text": "Literate is a package that generates markdown pages (for e.g. Documenter.jl), and Jupyter notebooks, from the same source file. There is also an option to \"clean\" the source from all metadata, and produce a pure Julia script.The main design goal is simplicity. It should be simple to use, and the syntax should be simple. In short, all you have to do is to write a commented julia script!The public interface consists mainly of three functions, all of which take the same script file as input, but generate different output:Literate.markdown: generates a markdown file\nLiterate.notebook: generates an (optionally executed) notebook\nLiterate.script: generates a plain script file, removing all metadata and special syntax."
},
{
"location": "index.html#Why?-1",
"page": "1. Introduction",
"title": "Why?",
"category": "section",
"text": "Examples are (probably) the best way to showcase your awesome package, and examples are often the best way for a new user to learn how to use it. It is therefore important that the documentation of your package contains examples for users to read and study. However, people are different, and we all prefer different ways of trying out a new package. Some people wants to RTFM, others want to explore the package interactively in, for example, a notebook, and some people wants to study the source code. The aim of Literate is to make it easy to give the user all of these options, while still keeping maintenance to a minimum.It is quite common that packages have \"example notebooks\" to showcase the package. Notebooks are great for showcasing a package, but they are not so great with version control, like git. The reason being that a notebook is a very \"rich\" format since it contains output and other metadata. Changes to the notebook thus result in large diffs, which makes it harder to review the actual changes.It is also common that packages include examples in the documentation, for example by using Documenter.jl @example-blocks. This is also great, but it is not quite as interactive as a notebook, for the users who prefer that.Literate tries to solve the problems above by creating the output as a part of the doc build. Literate generates the output based on a single source file which makes it easier to maintain, test, and keep the manual and your example notebooks in sync."
},
{
"location": "fileformat.html#",
"page": "2. File Format",
"title": "2. File Format",
"category": "page",
"text": ""
},
{
"location": "fileformat.html#**2.**-File-Format-1",
"page": "2. File Format",
"title": "2. File Format",
"category": "section",
"text": "The source file format for Literate is a regular, commented, julia (.jl) scripts. The idea is that the scripts also serve as documentation on their own and it is also simple to include them in the test-suite, with e.g. include, to make sure the examples stay up do date with other changes in your package."
},
{
"location": "fileformat.html#Syntax-1",
"page": "2. File Format",
"title": "2.1. Syntax",
"category": "section",
"text": "The basic syntax is simple:lines starting with # are treated as markdown,\nall other lines are treated as julia code.Leading whitespace is allowed before #, but it will be removed when generating the output. Since #-lines is treated as markdown we can not use that for regular julia comments, for this you can instead use ##, which will render as # in the output.Lets look at a simple example:# # Rational numbers\n#\n# In julia rational numbers can be constructed with the `//` operator.\n# Lets define two rational numbers, `x` and `y`:\n\nx = 1//3\ny = 2//5\n\n# When adding `x` and `y` together we obtain a new rational number:\n\nz = x + yIn the lines starting with # we can use regular markdown syntax, for example the # used for the heading and the backticks for formatting code. The other lines are regular julia code. We note a couple of things:The script is valid julia, which means that we can include it and the example will run (for example in the test/runtests.jl script, to include the example in the test suite).\nThe script is \"self-explanatory\", i.e. the markdown lines works as comments and thus serve as good documentation on its own.For simple use this is all you need to know. The following additional special syntax can also be used:#md, #nb, #jl, #src: tags to filter lines, see Filtering Lines,\n#-: tag to manually control chunk-splits, see Custom control over chunk splits.There is also some default convenience replacements that will always be performed, see Default Replacements."
},
{
"location": "fileformat.html#Filtering-Lines-1",
"page": "2. File Format",
"title": "2.2. Filtering Lines",
"category": "section",
"text": "It is often useful to filter out lines in the source depending on the output format. For this purpose there are a number of \"tokens\" that can be used to mark the purpose of certain lines:#md: line exclusive to markdown output,\n#nb: line exclusive to notebook output,\n#jl: line exclusive to script output,\n#src: line exclusive to the source code and thus filtered out unconditionally.Lines starting with one of these tokens are filtered out in the preprocessing step.Suppose, for example, that we want to include a docstring within a @docs block using Documenter. Obviously we don\'t want to include this in the notebook, since @docs is Documenter syntax that the notebook will not understand. This is a case where we can prepend #md to those lines:#md # ```@docs\n#md # Literate.markdown\n#md # Literate.notebook\n#md # Literate.markdown\n#md # ```The lines in the example above would be filtered out in the preprocessing step, unless we are generating a markdown file. When generating a markdown file we would simple remove the leading #md from the lines. Beware that the space after the tag is also removed.The #src token can also be placed at the end of a line. This is to make it possible to have code lines exclusive to the source code, and not just comment lines. For example, if the source file is included in the test suite we might want to add a @test at the end without this showing up in the outputs:using Test #src\n@test result == expected_result #src"
},
{
"location": "fileformat.html#Default-Replacements-1",
"page": "2. File Format",
"title": "2.3. Default Replacements",
"category": "section",
"text": "The following convenience \"macros\" are always expanded:@__NAME__\nexpands to the name keyword argument to Literate.markdown, Literate.notebook and Literate.script (defaults to the filename of the input file).\n@__REPO__ROOT_URL__\nexpands to https://github.com/$(ENV[\"TRAVIS_REPO_SLUG\"])/blob/master/ and is a convenient way to use when you want to link to files outside the doc-build directory. For example @__REPO__ROOT_URL__src/Literate.jl would link to the source of the Literate module.\n@__NBVIEWER_ROOT_URL__\nexpands to https://nbviewer.jupyter.org/github/$(ENV[\"TRAVIS_REPO_SLUG\"])/blob/gh-pages/$(folder)/ where folder is the folder that Documenter.deploydocs deploys too. This can be used if you want a link that opens the generated notebook in http://nbviewer.jupyter.org/."
},
{
"location": "pipeline.html#",
"page": "3. Processing pipeline",
"title": "3. Processing pipeline",
"category": "page",
"text": ""
},
{
"location": "pipeline.html#**3.**-Processing-pipeline-1",
"page": "3. Processing pipeline",
"title": "3. Processing pipeline",
"category": "section",
"text": "The generation of output follows the same pipeline for all output formats:Pre-processing\nParsing\nDocument generation\nPost-processing\nWriting to file"
},
{
"location": "pipeline.html#Pre-processing-1",
"page": "3. Processing pipeline",
"title": "3.1. Pre-processing",
"category": "section",
"text": "The first step is pre-processing of the input file. The file is read to a String. The first processing step is to apply the user specified pre-processing function, see Custom pre- and post-processing.The next step is to perform all of the built-in default replacements. CRLF style line endings (\"\\r\\n\") are replaced with LF line endings (\"\\n\") to simplify internal processing. Next, line filtering is performed, see Filtering Lines, meaning that lines starting with #md, #nb or #jl are handled (either just the token itself is removed, or the full line, depending on the output target). The last pre-processing step is to expand the convenience \"macros\" described in Default Replacements is expanded."
},
{
"location": "pipeline.html#Parsing-1",
"page": "3. Processing pipeline",
"title": "3.2. Parsing",
"category": "section",
"text": "After the preprocessing the file is parsed. The first step is to categorize each line and mark them as either markdown or code according to the rules described in the Syntax section. Lets consider the example from the previous section with each line categorized:# # Rational numbers <- markdown\n# <- markdown\n# In julia rational numbers can be constructed with the `//` operator. <- markdown\n# Lets define two rational numbers, `x` and `y`: <- markdown\n <- code\nx = 1 // 3 <- code\ny = 2 // 5 <- code\n <- code\n# When adding `x` and `y` together we obtain a new rational number: <- markdown\n <- code\nz = x + y <- codeIn the next step the lines are grouped into \"chunks\" of markdown and code. This is done by simply collecting adjacent lines of the same \"type\" into chunks:# # Rational numbers ┐\n# │\n# In julia rational numbers can be constructed with the `//` operator. │ markdown\n# Lets define two rational numbers, `x` and `y`: ┘\n ┐\nx = 1 // 3 │\ny = 2 // 5 │ code\n ┘\n# When adding `x` and `y` together we obtain a new rational number: ] markdown\n ┐\nz = x + y ┘ codeIn the last parsing step all empty leading and trailing lines for each chunk are removed, but empty lines within the same block are kept. The leading # tokens are also removed from the markdown chunks. Finally we would end up with the following 4 chunks:Chunks #1:# Rational numbers\n\nIn julia rational numbers can be constructed with the `//` operator.\nLets define two rational numbers, `x` and `y`:Chunk #2:x = 1 // 3\ny = 2 // 5Chunk #3:When adding `x` and `y` together we obtain a new rational number:Chunk #4:z = x + yIt is then up to the Document generation step to decide how these chunks should be treated."
},
{
"location": "pipeline.html#Custom-control-over-chunk-splits-1",
"page": "3. Processing pipeline",
"title": "Custom control over chunk splits",
"category": "section",
"text": "Sometimes it is convenient to be able to manually control how the chunks are split. For example, if you want to split a block of code into two, such that they end up in two different @example blocks or notebook cells. The #- token can be used for this purpose. All lines starting with #- are used as \"chunk-splitters\":x = 1 // 3\ny = 2 // 5\n#-\nz = x + yThe example above would result in two consecutive code-chunks.tip: Tip\nThe rest of the line, after #-, is discarded, so it is possible to use e.g. #------------- as a chunk splitter, which may make the source code more readable."
},
{
"location": "pipeline.html#Document-generation-1",
"page": "3. Processing pipeline",
"title": "3.3. Document generation",
"category": "section",
"text": "After the parsing it is time to generate the output. What is done in this step is very different depending on the output target, and it is describe in more detail in the Output format sections: Markdown Output, Notebook Output and Script Output. Using the default settings, the following is happening:Markdown output: markdown chunks are printed as-is, code chunks are put inside a code fence (defaults to @example-blocks),\nNotebook output: markdown chunks are printed in markdown cells, code chunks are put in code cells,\nScript output: markdown chunks are discarded, code chunks are printed as-is."
},
{
"location": "pipeline.html#Post-processing-1",
"page": "3. Processing pipeline",
"title": "3.4. Post-processing",
"category": "section",
"text": "When the document is generated the user, again, has the option to hook-into the generation with a custom post-processing function. The reason is that one might want to change things that are only visible in the rendered document. See Custom pre- and post-processing."
},
{
"location": "pipeline.html#Writing-to-file-1",
"page": "3. Processing pipeline",
"title": "3.5. Writing to file",
"category": "section",
"text": "The last step of the generation is writing to file. The result is written to $(outputdir)/$(name)(.md|.ipynb|.jl) where outputdir is the output directory supplied by the user (for example docs/generated), and name is a user supplied filename. It is recommended to add the output directory to .gitignore since the idea is that the generated documents will be generated as part of the build process rather than beeing files in the repo."
},
{
"location": "outputformats.html#",
"page": "4. Output Formats",
"title": "4. Output Formats",
"category": "page",
"text": ""
},
{
"location": "outputformats.html#Output-Formats-1",
"page": "4. Output Formats",
"title": "4. Output Formats",
"category": "section",
"text": "When the source is parsed, and have been processed it is time to render the output. We will consider the following source snippet:import Markdown\nMarkdown.parse(\"```julia\\n\" * rstrip(read(\"outputformats.jl\", String)) * \"\\n```\")and see how this is rendered in each of the output formats."
},
{
"location": "outputformats.html#Literate.markdown",
"page": "4. Output Formats",
"title": "Literate.markdown",
"category": "function",
"text": "Literate.markdown(inputfile, outputdir; kwargs...)\n\nGenerate a markdown file from inputfile and write the result to the directoryoutputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .md. name is also used to name all the @example blocks, and to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that tells if the output is intended to use with Documenter.jl. Defaults to true. See the the manual section on Interaction with Documenter.\ncodefence: A Pair of opening and closing code fence. Defaults to\n\"```@example $(name)\" => \"```\"\nif documenter = true and\n\"```julia\" => \"```\"\nif documenter = false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Markdown-Output-1",
"page": "4. Output Formats",
"title": "4.1. Markdown Output",
"category": "section",
"text": "The (default) markdown output of the source snippet above is as followsimport Markdown\nfile = joinpath(@__DIR__, \"../src/generated/name.md\")\nstr = \"````markdown\\n\" * rstrip(read(file, String)) * \"\\n````\"\nrm(file)\nMarkdown.parse(str)We note that lines starting with # are printed as regular markdown, and the code lines have been wrapped in @example blocks. We also note that an @meta block have been added, that sets the EditURL variable. This is used by Documenter to redirect the \"Edit on GitHub\" link for the page, see Interaction with Documenter.Some of the output rendering can be controlled with keyword arguments to Literate.markdown:Literate.markdown"
},
{
"location": "outputformats.html#Literate.notebook",
"page": "4. Output Formats",
"title": "Literate.notebook",
"category": "function",
"text": "Literate.notebook(inputfile, outputdir; kwargs...)\n\nGenerate a notebook from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .ipynb. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\nexecute: a boolean deciding if the generated notebook should also be executed or not. Defaults to true. The current working directory is set to outputdir when executing the notebook.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during notebook generation. Defaults to true. See the the manual section on Interaction with Documenter.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Notebook-Output-1",
"page": "4. Output Formats",
"title": "4.2. Notebook Output",
"category": "section",
"text": "The (default) notebook output of the source snippet can be seen here: notebook.ipynb.We note that lines starting with # are placed in markdown cells, and the code lines have been placed in code cells. By default the notebook is also executed and output cells populated. The current working directory is set to the specified output directory the notebook is executed. Some of the output rendering can be controlled with keyword arguments to Literate.notebook:Literate.notebook"
},
{
"location": "outputformats.html#Literate.script",
"page": "4. Output Formats",
"title": "Literate.script",
"category": "function",
"text": "Literate.script(inputfile, outputdir; kwargs...)\n\nGenerate a plain script file from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .jl. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during script generation. Defaults to true. See the the manual section on Interaction with Documenter.\nkeep_comments: boolean that, if set to true, keeps markdown lines as comments in the output script. Defaults to false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Script-Output-1",
"page": "4. Output Formats",
"title": "4.3. Script Output",
"category": "section",
"text": "The (default) script output of the source snippet above is as followsimport Markdown\nfile = joinpath(@__DIR__, \"../src/generated/outputformats.jl\")\nstr = \"```julia\\n\" * rstrip(read(file, String)) * \"\\n```\"\nrm(file)\nMarkdown.parse(str)We note that lines starting with # are removed and only the code lines have been kept. Some of the output rendering can be controlled with keyword arguments to Literate.script:Literate.script"
},
{
"location": "customprocessing.html#",
"page": "5. Custom pre- and post-processing",
"title": "5. Custom pre- and post-processing",
"category": "page",
"text": ""
},
{
"location": "customprocessing.html#Custom-pre-and-post-processing-1",
"page": "5. Custom pre- and post-processing",
"title": "5. Custom pre- and post-processing",
"category": "section",
"text": "Since all packages are different, and may have different demands on how to create a nice example for the documentation it is important that the package maintainer does not feel limited by the by default provided syntax that this package offers. While you can generally come a long way by utilizing line filtering there might be situations where you need to manually hook into the generation and change things. In Literate this is done by letting the user supply custom pre- and post-processing functions that may do transformation of the content.All of the generators (Literate.markdown, Literate.notebook and Literate.script) accepts preprocess and postprocess keyword arguments. The default \"transformation\" is the identity function. The input to the transformation functions is a String, and the output should be the transformed String.preprocess is sent the raw input that is read from the source file (modulo the default line ending transformation). postprocess is given different things depending on the output: For markdown and script output postprocess is given the content String just before writing it to the output file, but for notebook output postprocess is given the dictionary representing the notebook, since, in general, this is more useful.As an example, lets say we want to splice the date of generation into the output. We could of course update our source file before generating the docs, but we could instead use a preprocess function that splices the date into the source for us. Consider the following source file:# # Example\n# This example was generated DATEOFTODAY\n\nx = 1 // 3where DATEOFTODAY is a placeholder, to make it easier for our preprocess function to find the location. Now, lets define the preprocess function, for examplefunction update_date(content)\n content = replace(content, \"DATEOFTODAY\" => Date(now()))\n return content\nendwhich would replace every occurrence of \"DATEOFTODAY\" with the current date. We would now simply give this function to the generator, for example:Literate.markdown(\"input.jl\", \"outputdir\"; preprocess = update_date)"
},
{
"location": "documenter.html#",
"page": "6. Interaction with Documenter.jl",
"title": "6. Interaction with Documenter.jl",
"category": "page",
"text": ""
},
{
"location": "documenter.html#Interaction-with-Documenter-1",
"page": "6. Interaction with Documenter.jl",
"title": "6. Interaction with Documenter.jl",
"category": "section",
"text": "Literate can be used for any purpose, it spits out regular markdown files, and notebooks. Typically, though, these files will be used to render documentation for your package. The generators (Literate.markdown, Literate.notebook and Literate.script) supports a keyword argument documenter that lets the generator perform some extra things, keeping in mind that the source code have been written with Documenter.jl in mind. So lets take a look at what will happen if we set documenter = true:"
},
{
"location": "documenter.html#[Literate.markdown](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.markdown:",
"category": "section",
"text": "The default code fence will change from\n```julia\n# code\n```\nto Documenters @example blocks:\n```@examples $(name)\n# code\n```\nThe following @meta block will be added to the top of the markdown page, which redirects the \"Edit on GitHub\" link on the top of the page to the source file rather than the generated .md file:\n```@meta\nEditURL = \"$(relpath(inputfile, outputdir))\"\n```"
},
{
"location": "documenter.html#[Literate.notebook](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.notebook:",
"category": "section",
"text": "Documenter style @refs and @id will be removed. This means that you can use @ref and @id in the source file without them leaking to the notebook.\nDocumenter style markdown math\n```math\n\\int f dx\n```\nis replaced with notebook compatible\n\\begin{equation}\n\\int f dx\n\\end{equation}"
},
{
"location": "documenter.html#[Literate.script](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.script:",
"category": "section",
"text": "Documenter style @refs and @id will be removed. This means that you can use @ref and @id in the source file without them leaking to the script."
},
{
"location": "generated/example.html#",
"page": "7. Example",
"title": "7. Example",
"category": "page",
"text": "EditURL = \"https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl\""
},
{
"location": "generated/example.html#**7.**-Example-1",
"page": "7. Example",
"title": "7. Example",
"category": "section",
"text": "This is an example generated with Literate based on this source file: example.jl. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: example.ipynb, and the plain script output can be found here: example.jl.It is recommended to have the source file available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing."
},
{
"location": "generated/example.html#Basic-syntax-1",
"page": "7. Example",
"title": "Basic syntax",
"category": "section",
"text": "The basic syntax for Literate is simple, lines starting with # is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:x = 1//3\ny = 2//5In markdown sections we can use markdown syntax. For example, we can write text in italic font, text in bold font and use links.It is possible to filter out lines depending on the output using the #md, #nb, #jl and #src tags (see Filtering Lines):This line starts with #md and is thus only visible in the markdown output.The source file is parsed in chunks of markdown and code. Starting a line with #- manually inserts a chunk break. For example, if we want to display the output of the following operations we may insert #- in between. These two code blocks will now end up in different @example-blocks in the markdown output, and two different notebook cells in the notebook output.x + yx * y"
},
{
"location": "generated/example.html#Output-Capturing-1",
"page": "7. Example",
"title": "Output Capturing",
"category": "section",
"text": "Code chunks are by default placed in Documenter @example blocks in the generated markdown. This means that the output will be captured in a block when Documenter is building the docs. In notebooks the output is captured in output cells, if the execute keyword argument is set to true. Output to stdout/stderr is also captured.function foo()\n println(\"This string is printed to stdout.\")\n return [1, 2, 3, 4]\nend\n\nfoo()Both Documenter\'s @example block and notebooks can display images. Here is an example where we generate a simple plot using the Plots.jl packageusing Plots\nx = range(0, stop=6π, length=1000)\ny1 = sin.(x)\ny2 = cos.(x)\nplot(x, [y1, y2])"
},
{
"location": "generated/example.html#Custom-processing-1",
"page": "7. Example",
"title": "Custom processing",
"category": "section",
"text": "It is possible to give Literate custom pre- and post-processing functions. For example, here we insert two placeholders, which we will replace with something else at time of generation. We have here replaced our placeholders with z and 1.0 + 2.0im:z = 1.0 + 2.0im"
},
{
"location": "generated/example.html#documenter-interaction-1",
"page": "7. Example",
"title": "Documenter.jl interaction",
"category": "section",
"text": "In the source file it is possible to use Documenter.jl style references, such as @ref and @id. These will be filtered out in the notebook output. For example, here is a link, but it is only visible as a link if you are reading the markdown output. We can also use equations:int_Omega nabla v cdot nabla u mathrmdOmega = int_Omega v f mathrmdOmegausing Documenters math syntax. Documenters syntax is automatically changed to \\begin{equation} ... \\end{equation} in the notebook output to display correctly.This page was generated using Literate.jl."
},
]}

1
release-1.0/siteinfo.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
var DOCUMENTER_CURRENT_VERSION = "release-1.0";

86
stable/generated/example.html

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>7. Example · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link href="../assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="../index.html"><img class="logo" src="../assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="../fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="../pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="../outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="../customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="../documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li class="current"><a class="toctext" href="example.html"><strong>7.</strong> Example</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="example.html"><strong>7.</strong> Example</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>7. Example</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**7.**-Example-1" href="#**7.**-Example-1"><strong>7.</strong> Example</a></h1><p>This is an example generated with Literate based on this source file: <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><code>example.jl</code></a>. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: <a href="https://nbviewer.jupyter.org/github/fredrikekre/Literate.jl/blob/gh-pages/v1.0.0/generated/example.ipynb"><code>example.ipynb</code></a>, and the plain script output can be found here: <a href="example.jl"><code>example.jl</code></a>.</p><p>It is recommended to have the <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl">source file</a> available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing.</p><h3><a class="nav-anchor" id="Basic-syntax-1" href="#Basic-syntax-1">Basic syntax</a></h3><p>The basic syntax for Literate is simple, lines starting with <code>#</code> is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:</p><div><pre><code class="language-julia">x = 1//3
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>7. Example · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link href="../assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="../index.html"><img class="logo" src="../assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="../fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="../pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="../outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="../customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="../documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li class="current"><a class="toctext" href="example.html"><strong>7.</strong> Example</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="example.html"><strong>7.</strong> Example</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>7. Example</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**7.**-Example-1" href="#**7.**-Example-1"><strong>7.</strong> Example</a></h1><p>This is an example generated with Literate based on this source file: <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><code>example.jl</code></a>. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: <a href="https://nbviewer.jupyter.org/github/fredrikekre/Literate.jl/blob/gh-pages/v1.0.1/generated/example.ipynb"><code>example.ipynb</code></a>, and the plain script output can be found here: <a href="example.jl"><code>example.jl</code></a>.</p><p>It is recommended to have the <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl">source file</a> available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing.</p><h3><a class="nav-anchor" id="Basic-syntax-1" href="#Basic-syntax-1">Basic syntax</a></h3><p>The basic syntax for Literate is simple, lines starting with <code>#</code> is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:</p><div><pre><code class="language-julia">x = 1//3
y = 2//5</code></pre><pre><code class="language-none">2//5</code></pre></div><p>In markdown sections we can use markdown syntax. For example, we can write <em>text in italic font</em>, <strong>text in bold font</strong> and use <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">links</a>.</p><p>It is possible to filter out lines depending on the output using the <code>#md</code>, <code>#nb</code>, <code>#jl</code> and <code>#src</code> tags (see <a href="../fileformat.html#Filtering-Lines-1">Filtering Lines</a>):</p><ul><li>This line starts with <code>#md</code> and is thus only visible in the markdown output.</li></ul><p>The source file is parsed in chunks of markdown and code. Starting a line with <code>#-</code> manually inserts a chunk break. For example, if we want to display the output of the following operations we may insert <code>#-</code> in between. These two code blocks will now end up in different <code>@example</code>-blocks in the markdown output, and two different notebook cells in the notebook output.</p><div><pre><code class="language-julia">x + y</code></pre><pre><code class="language-none">11//15</code></pre></div><div><pre><code class="language-julia">x * y</code></pre><pre><code class="language-none">2//15</code></pre></div><h3><a class="nav-anchor" id="Output-Capturing-1" href="#Output-Capturing-1">Output Capturing</a></h3><p>Code chunks are by default placed in Documenter <code>@example</code> blocks in the generated markdown. This means that the output will be captured in a block when Documenter is building the docs. In notebooks the output is captured in output cells, if the <code>execute</code> keyword argument is set to true. Output to <code>stdout</code>/<code>stderr</code> is also captured.</p><div><pre><code class="language-julia">function foo()
println(&quot;This string is printed to stdout.&quot;)
return [1, 2, 3, 4]
@ -17,114 +17,114 @@ y2 = cos.(x) @@ -17,114 +17,114 @@ y2 = cos.(x)
plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="400" viewBox="0 0 600 400">
<defs>
<clipPath id="clip7300">
<clipPath id="clip4100">
<rect x="0" y="0" width="600" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip7300)" points="
<polygon clip-path="url(#clip4100)" points="
0,400 600,400 600,0 0,0
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip7301">
<clipPath id="clip4101">
<rect x="120" y="0" width="421" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip7300)" points="
<polygon clip-path="url(#clip4100)" points="
23.622,384.252 580.315,384.252 580.315,11.811 23.622,11.811
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip7302">
<clipPath id="clip4102">
<rect x="23" y="11" width="558" height="373"/>
</clipPath>
</defs>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
39.3775,384.252 39.3775,11.811
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
178.686,384.252 178.686,11.811
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
317.995,384.252 317.995,11.811
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
457.304,384.252 457.304,11.811
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,373.713 580.315,373.713
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,285.873 580.315,285.873
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,198.032 580.315,198.032
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,110.192 580.315,110.192
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,22.3518 580.315,22.3518
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 580.315,384.252
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 23.622,11.811
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,384.252 39.3775,378.665
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
178.686,384.252 178.686,378.665
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
317.995,384.252 317.995,378.665
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
457.304,384.252 457.304,378.665
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,373.713 31.9724,373.713
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,285.873 31.9724,285.873
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,198.032 31.9724,198.032
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,110.192 31.9724,110.192
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,22.3518 31.9724,22.3518
"/>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 39.3775, 398.052)" x="39.3775" y="398.052">0</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 178.686, 398.052)" x="178.686" y="398.052">5</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 317.995, 398.052)" x="317.995" y="398.052">10</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 457.304, 398.052)" x="457.304" y="398.052">15</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 378.213)" x="17.622" y="378.213">-1.0</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 290.373)" x="17.622" y="290.373">-0.5</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 202.532)" x="17.622" y="202.532">0.0</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 114.692)" x="17.622" y="114.692">0.5</text>
</g>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 26.8518)" x="17.622" y="26.8518">1.0</text>
</g>
<polyline clip-path="url(#clip7302)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,198.032 39.9032,194.718 40.4289,191.404 40.9546,188.093 41.4803,184.786 42.006,181.483 42.5318,178.186 43.0575,174.896 43.5832,171.615 44.1089,168.342
44.6346,165.081 45.1603,161.831 45.686,158.594 46.2117,155.371 46.7374,152.163 47.2631,148.971 47.7888,145.797 48.3145,142.642 48.8402,139.506 49.366,136.391
49.8917,133.298 50.4174,130.229 50.9431,127.183 51.4688,124.162 51.9945,121.168 52.5202,118.201 53.0459,115.263 53.5716,112.354 54.0973,109.475 54.623,106.629
@ -227,7 +227,7 @@ plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?> @@ -227,7 +227,7 @@ plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?>
559.828,227.723 560.354,224.45 560.88,221.169 561.405,217.879 561.931,214.582 562.457,211.279 562.982,207.972 563.508,204.661 564.034,201.347 564.56,198.032
"/>
<polyline clip-path="url(#clip7302)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4102)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,22.3518 39.9032,22.3831 40.4289,22.4769 40.9546,22.6332 41.4803,22.8519 42.006,23.133 42.5318,23.4764 43.0575,23.8819 43.5832,24.3495 44.1089,24.8788
44.6346,25.4698 45.1603,26.1222 45.686,26.8359 46.2117,27.6104 46.7374,28.4457 47.2631,29.3413 47.7888,30.297 48.3145,31.3124 48.8402,32.3871 49.366,33.5209
49.8917,34.7131 50.4174,35.9636 50.9431,37.2717 51.4688,38.637 51.9945,40.0591 52.5202,41.5375 53.0459,43.0715 53.5716,44.6608 54.0973,46.3046 54.623,48.0024
@ -330,22 +330,22 @@ plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?> @@ -330,22 +330,22 @@ plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?>
559.828,24.8788 560.354,24.3495 560.88,23.8819 561.405,23.4764 561.931,23.133 562.457,22.8519 562.982,22.6332 563.508,22.4769 564.034,22.3831 564.56,22.3518
"/>
<polygon clip-path="url(#clip7300)" points="
<polygon clip-path="url(#clip4100)" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691
" fill="#ffffff" fill-opacity="1"/>
<polyline clip-path="url(#clip7300)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 489.608,78.051
"/>
<polyline clip-path="url(#clip7300)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,47.811 531.608,47.811
"/>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 52.311)" x="537.608" y="52.311">y1</text>
</g>
<polyline clip-path="url(#clip7300)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
<polyline clip-path="url(#clip4100)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,62.931 531.608,62.931
"/>
<g clip-path="url(#clip7300)">
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 67.431)" x="537.608" y="67.431">y2</text>
</g>
</svg>

168
stable/generated/example.ipynb

@ -187,114 +187,114 @@ @@ -187,114 +187,114 @@
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 600 400\">\n",
"<defs>\n",
" <clipPath id=\"clip7200\">\n",
" <clipPath id=\"clip4000\">\n",
" <rect x=\"0\" y=\"0\" width=\"600\" height=\"400\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polygon clip-path=\"url(#clip7200)\" points=\"\n",
"<polygon clip-path=\"url(#clip4000)\" points=\"\n",
"0,400 600,400 600,0 0,0 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip7201\">\n",
" <clipPath id=\"clip4001\">\n",
" <rect x=\"120\" y=\"0\" width=\"421\" height=\"400\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polygon clip-path=\"url(#clip7200)\" points=\"\n",
"<polygon clip-path=\"url(#clip4000)\" points=\"\n",
"23.622,384.252 580.315,384.252 580.315,11.811 23.622,11.811 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip7202\">\n",
" <clipPath id=\"clip4002\">\n",
" <rect x=\"23\" y=\"11\" width=\"558\" height=\"373\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 39.3775,384.252 39.3775,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 178.686,384.252 178.686,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 317.995,384.252 317.995,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 457.304,384.252 457.304,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,373.713 580.315,373.713 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,285.873 580.315,285.873 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,198.032 580.315,198.032 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,110.192 580.315,110.192 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,22.3518 580.315,22.3518 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,384.252 580.315,384.252 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,384.252 23.622,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,384.252 39.3775,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 178.686,384.252 178.686,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 317.995,384.252 317.995,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 457.304,384.252 457.304,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,373.713 31.9724,373.713 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,285.873 31.9724,285.873 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,198.032 31.9724,198.032 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,110.192 31.9724,110.192 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,22.3518 31.9724,22.3518 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 39.3775, 398.052)\" x=\"39.3775\" y=\"398.052\">0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 178.686, 398.052)\" x=\"178.686\" y=\"398.052\">5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 317.995, 398.052)\" x=\"317.995\" y=\"398.052\">10</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 457.304, 398.052)\" x=\"457.304\" y=\"398.052\">15</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 378.213)\" x=\"17.622\" y=\"378.213\">-1.0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 290.373)\" x=\"17.622\" y=\"290.373\">-0.5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 202.532)\" x=\"17.622\" y=\"202.532\">0.0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 114.692)\" x=\"17.622\" y=\"114.692\">0.5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 26.8518)\" x=\"17.622\" y=\"26.8518\">1.0</text>\n",
"</g>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,198.032 39.9032,194.718 40.4289,191.404 40.9546,188.093 41.4803,184.786 42.006,181.483 42.5318,178.186 43.0575,174.896 43.5832,171.615 44.1089,168.342 \n",
" 44.6346,165.081 45.1603,161.831 45.686,158.594 46.2117,155.371 46.7374,152.163 47.2631,148.971 47.7888,145.797 48.3145,142.642 48.8402,139.506 49.366,136.391 \n",
" 49.8917,133.298 50.4174,130.229 50.9431,127.183 51.4688,124.162 51.9945,121.168 52.5202,118.201 53.0459,115.263 53.5716,112.354 54.0973,109.475 54.623,106.629 \n",
@ -397,7 +397,7 @@ @@ -397,7 +397,7 @@
" 559.828,227.723 560.354,224.45 560.88,221.169 561.405,217.879 561.931,214.582 562.457,211.279 562.982,207.972 563.508,204.661 564.034,201.347 564.56,198.032 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7202)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4002)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,22.3518 39.9032,22.3831 40.4289,22.4769 40.9546,22.6332 41.4803,22.8519 42.006,23.133 42.5318,23.4764 43.0575,23.8819 43.5832,24.3495 44.1089,24.8788 \n",
" 44.6346,25.4698 45.1603,26.1222 45.686,26.8359 46.2117,27.6104 46.7374,28.4457 47.2631,29.3413 47.7888,30.297 48.3145,31.3124 48.8402,32.3871 49.366,33.5209 \n",
" 49.8917,34.7131 50.4174,35.9636 50.9431,37.2717 51.4688,38.637 51.9945,40.0591 52.5202,41.5375 53.0459,43.0715 53.5716,44.6608 54.0973,46.3046 54.623,48.0024 \n",
@ -500,22 +500,22 @@ @@ -500,22 +500,22 @@
" 559.828,24.8788 560.354,24.3495 560.88,23.8819 561.405,23.4764 561.931,23.133 562.457,22.8519 562.982,22.6332 563.508,22.4769 564.034,22.3831 564.56,22.3518 \n",
" \n",
" \"/>\n",
"<polygon clip-path=\"url(#clip7200)\" points=\"\n",
"<polygon clip-path=\"url(#clip4000)\" points=\"\n",
"489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 489.608,78.051 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 495.608,47.811 531.608,47.811 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;\" transform=\"rotate(0, 537.608, 52.311)\" x=\"537.608\" y=\"52.311\">y1</text>\n",
"</g>\n",
"<polyline clip-path=\"url(#clip7200)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip4000)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 495.608,62.931 531.608,62.931 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7200)\">\n",
"<g clip-path=\"url(#clip4000)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;\" transform=\"rotate(0, 537.608, 67.431)\" x=\"537.608\" y=\"67.431\">y2</text>\n",
"</g>\n",
"</svg>\n"
@ -524,114 +524,114 @@ @@ -524,114 +524,114 @@
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 600 400\">\n",
"<defs>\n",
" <clipPath id=\"clip7100\">\n",
" <clipPath id=\"clip3900\">\n",
" <rect x=\"0\" y=\"0\" width=\"600\" height=\"400\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polygon clip-path=\"url(#clip7100)\" points=\"\n",
"<polygon clip-path=\"url(#clip3900)\" points=\"\n",
"0,400 600,400 600,0 0,0 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip7101\">\n",
" <clipPath id=\"clip3901\">\n",
" <rect x=\"120\" y=\"0\" width=\"421\" height=\"400\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polygon clip-path=\"url(#clip7100)\" points=\"\n",
"<polygon clip-path=\"url(#clip3900)\" points=\"\n",
"23.622,384.252 580.315,384.252 580.315,11.811 23.622,11.811 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip7102\">\n",
" <clipPath id=\"clip3902\">\n",
" <rect x=\"23\" y=\"11\" width=\"558\" height=\"373\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 39.3775,384.252 39.3775,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 178.686,384.252 178.686,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 317.995,384.252 317.995,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 457.304,384.252 457.304,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,373.713 580.315,373.713 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,285.873 580.315,285.873 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,198.032 580.315,198.032 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,110.192 580.315,110.192 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none\" points=\"\n",
" 23.622,22.3518 580.315,22.3518 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,384.252 580.315,384.252 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,384.252 23.622,11.811 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,384.252 39.3775,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 178.686,384.252 178.686,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 317.995,384.252 317.995,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 457.304,384.252 457.304,378.665 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,373.713 31.9724,373.713 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,285.873 31.9724,285.873 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,198.032 31.9724,198.032 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,110.192 31.9724,110.192 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 23.622,22.3518 31.9724,22.3518 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 39.3775, 398.052)\" x=\"39.3775\" y=\"398.052\">0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 178.686, 398.052)\" x=\"178.686\" y=\"398.052\">5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 317.995, 398.052)\" x=\"317.995\" y=\"398.052\">10</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;\" transform=\"rotate(0, 457.304, 398.052)\" x=\"457.304\" y=\"398.052\">15</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 378.213)\" x=\"17.622\" y=\"378.213\">-1.0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 290.373)\" x=\"17.622\" y=\"290.373\">-0.5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 202.532)\" x=\"17.622\" y=\"202.532\">0.0</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 114.692)\" x=\"17.622\" y=\"114.692\">0.5</text>\n",
"</g>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;\" transform=\"rotate(0, 17.622, 26.8518)\" x=\"17.622\" y=\"26.8518\">1.0</text>\n",
"</g>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,198.032 39.9032,194.718 40.4289,191.404 40.9546,188.093 41.4803,184.786 42.006,181.483 42.5318,178.186 43.0575,174.896 43.5832,171.615 44.1089,168.342 \n",
" 44.6346,165.081 45.1603,161.831 45.686,158.594 46.2117,155.371 46.7374,152.163 47.2631,148.971 47.7888,145.797 48.3145,142.642 48.8402,139.506 49.366,136.391 \n",
" 49.8917,133.298 50.4174,130.229 50.9431,127.183 51.4688,124.162 51.9945,121.168 52.5202,118.201 53.0459,115.263 53.5716,112.354 54.0973,109.475 54.623,106.629 \n",
@ -734,7 +734,7 @@ @@ -734,7 +734,7 @@
" 559.828,227.723 560.354,224.45 560.88,221.169 561.405,217.879 561.931,214.582 562.457,211.279 562.982,207.972 563.508,204.661 564.034,201.347 564.56,198.032 \n",
" \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7102)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3902)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 39.3775,22.3518 39.9032,22.3831 40.4289,22.4769 40.9546,22.6332 41.4803,22.8519 42.006,23.133 42.5318,23.4764 43.0575,23.8819 43.5832,24.3495 44.1089,24.8788 \n",
" 44.6346,25.4698 45.1603,26.1222 45.686,26.8359 46.2117,27.6104 46.7374,28.4457 47.2631,29.3413 47.7888,30.297 48.3145,31.3124 48.8402,32.3871 49.366,33.5209 \n",
" 49.8917,34.7131 50.4174,35.9636 50.9431,37.2717 51.4688,38.637 51.9945,40.0591 52.5202,41.5375 53.0459,43.0715 53.5716,44.6608 54.0973,46.3046 54.623,48.0024 \n",
@ -837,22 +837,22 @@ @@ -837,22 +837,22 @@
" 559.828,24.8788 560.354,24.3495 560.88,23.8819 561.405,23.4764 561.931,23.133 562.457,22.8519 562.982,22.6332 563.508,22.4769 564.034,22.3831 564.56,22.3518 \n",
" \n",
" \"/>\n",
"<polygon clip-path=\"url(#clip7100)\" points=\"\n",
"<polygon clip-path=\"url(#clip3900)\" points=\"\n",
"489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 \n",
" \" fill=\"#ffffff\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 489.608,78.051 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 495.608,47.811 531.608,47.811 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;\" transform=\"rotate(0, 537.608, 52.311)\" x=\"537.608\" y=\"52.311\">y1</text>\n",
"</g>\n",
"<polyline clip-path=\"url(#clip7100)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
"<polyline clip-path=\"url(#clip3900)\" style=\"stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none\" points=\"\n",
" 495.608,62.931 531.608,62.931 \n",
" \"/>\n",
"<g clip-path=\"url(#clip7100)\">\n",
"<g clip-path=\"url(#clip3900)\">\n",
"<text style=\"fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;\" transform=\"rotate(0, 537.608, 67.431)\" x=\"537.608\" y=\"67.431\">y2</text>\n",
"</g>\n",
"</svg>\n"

4
stable/outputformats.html

File diff suppressed because one or more lines are too long

6
stable/search_index.js

@ -157,7 +157,7 @@ var documenterSearchIndex = {"docs": [ @@ -157,7 +157,7 @@ var documenterSearchIndex = {"docs": [
"page": "4. Output Formats",
"title": "Literate.markdown",
"category": "function",
"text": "Literate.markdown(inputfile, outputdir; kwargs...)\n\nGenerate a markdown file from inputfile and write the result to the directoryoutputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .md. name is also used to name all the @example blocks, and to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that tells if the output is intended to use with Documenter.jl. Defaults to true. See the the manual section on Interaction with Documenter.\ncodefence: A Pair of opening and closing code fence. Defaults to\n\"```@example $(name)\" => \"```\"\nif documenter = true and\n\"```julia\" => \"```\"\nif documenter = false.\n\n\n\n\n\n"
"text": "Literate.markdown(inputfile, outputdir; kwargs...)\n\nGenerate a markdown file from inputfile and write the result to the directoryoutputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .md. name is also used to name all the @example blocks, and to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that tells if the output is intended to use with Documenter.jl. Defaults to true. See the the manual section on Interaction with Documenter.\ncodefence: A Pair of opening and closing code fence. Defaults to\n\"```@example $(name)\" => \"```\"\nif documenter = true and\n\"```julia\" => \"```\"\nif documenter = false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
@ -173,7 +173,7 @@ var documenterSearchIndex = {"docs": [ @@ -173,7 +173,7 @@ var documenterSearchIndex = {"docs": [
"page": "4. Output Formats",
"title": "Literate.notebook",
"category": "function",
"text": "Literate.notebook(inputfile, outputdir; kwargs...)\n\nGenerate a notebook from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .ipynb. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\nexecute: a boolean deciding if the generated notebook should also be executed or not. Defaults to true. The current working directory is set to outputdir when executing the notebook.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during notebook generation. Defaults to true. See the the manual section on Interaction with Documenter.\n\n\n\n\n\n"
"text": "Literate.notebook(inputfile, outputdir; kwargs...)\n\nGenerate a notebook from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .ipynb. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\nexecute: a boolean deciding if the generated notebook should also be executed or not. Defaults to true. The current working directory is set to outputdir when executing the notebook.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during notebook generation. Defaults to true. See the the manual section on Interaction with Documenter.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
@ -189,7 +189,7 @@ var documenterSearchIndex = {"docs": [ @@ -189,7 +189,7 @@ var documenterSearchIndex = {"docs": [
"page": "4. Output Formats",
"title": "Literate.script",
"category": "function",
"text": "Literate.script(inputfile, outputdir; kwargs...)\n\nGenerate a plain script file from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .jl. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during script generation. Defaults to true. See the the manual section on Interaction with Documenter.\nkeep_comments: boolean that, if set to true, keeps markdown lines as comments in the output script. Defaults to false.\n\n\n\n\n\n"
"text": "Literate.script(inputfile, outputdir; kwargs...)\n\nGenerate a plain script file from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .jl. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during script generation. Defaults to true. See the the manual section on Interaction with Documenter.\nkeep_comments: boolean that, if set to true, keeps markdown lines as comments in the output script. Defaults to false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{

63
v1.0.1/assets/arrow.svg

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16.5mm"
height="8.6603003mm"
viewBox="0 0 58.464567 30.686103"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="arrow.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.2"
inkscape:cx="14.209234"
inkscape:cy="29.780479"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1053"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1021.6761)">
<path
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0,1021.6761 35.433071,0 -17.716536,30.6861 z"
id="path4140"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

573
v1.0.1/assets/documenter.css

@ -0,0 +1,573 @@ @@ -0,0 +1,573 @@
/*
* The default CSS style for Documenter.jl generated sites
*
* Heavily inspired by the Julia Sphinx theme
* https://github.com/JuliaLang/JuliaDoc
* which extends the sphinx_rtd_theme
* https://github.com/snide/sphinx_rtd_theme
*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
/* fonts */
body, input {
font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif;
font-size: 16px;
color: #222;
text-rendering: optimizeLegibility;
}
pre, code, kbd {
font-family: 'Roboto Mono', Monaco, courier, monospace;
font-size: 0.90em;
}
pre code {
font-size: 1em;
}
a {
color: #2980b9;
text-decoration: none;
}
a:hover {
color: #3091d1;
}
a:visited {
color: #9b59b6;
}
body {
line-height: 1.5;
}
h1 {
font-size: 1.75em;
}
/* Unless the <h1> the is very first thing on the page (i.e. the second element
* in the <article>, * after the <header>, we add some additional styling to it
* to make it stand out a bit more. This way we get a reasonable fallback if CSS3
* selectors are not supported in the browser.
*/
article > h1:not(:nth-child(2)) {
margin: 2.5em 0 0;
padding-bottom: 0.30em;
border-bottom: 1px solid #e5e5e5;
}
h2 {
font-size: 1.50em;
margin: 2.3em 0 0;
padding-bottom: 0.25em;
border-bottom: 1px solid #e5e5e5;
}
h3 {
font-size: 1.25em;
margin: 2.0em 0 0;
}
h4 { font-size: 1.15em; }
h5 { font-size: 1.10em; }
h6 { font-size: 1em; }
h4, h5, h6 {
margin-top: 1.5em;
margin-bottom: 1em;
}
img {
max-width: 100%;
}
table {
border-collapse: collapse;
margin: 1em 0;
}
th, td {
border: 1px solid #e1e4e5;
padding: 0.5em 1em;
}
th {
border-bottom-width: 2px;
}
tr:nth-child(even) {
background-color: #f3f6f6;
}
hr {
border: 0;
border-top: 1px solid #e5e5e5;
}
/* Inline code and code blocks */
code {
padding: 0.1em;
background-color: rgba(0,0,0,.04);
border-radius: 3px;
}
pre {
background-color: #f5f5f5;
border: 1px solid #dddddd;
border-radius: 3px;
padding: 0.5em;
overflow: auto;
}
pre code {
padding: 0;
background-color: initial;
}
kbd {
font-size: 0.70em;
display: inline-block;
padding: 0.1em 0.5em 0.4em 0.5em;
line-height: 1.0em;
color: #444d56;
vertical-align: middle;
background-color: #fafbfc;
border: solid 1px #c6cbd1;
border-bottom-color: #959da5;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #959da5;
}
/* Headers in admonitions and docstrings */
.admonition h1,
article section.docstring h1 {
font-size: 1.25em;
}
.admonition h2,
article section.docstring h2 {
font-size: 1.10em;
}
.admonition h3,
.admonition h4,
.admonition h5,
.admonition h6,
article section.docstring h3,
article section.docstring h4,
article section.docstring h5,
article section.docstring h6 {
font-size: 1em;
}
/* Navigation */
nav.toc {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 20em;
overflow-y: auto;
padding: 1em 0;
background-color: #fcfcfc;
box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);
}
nav.toc .logo {
margin: 0 auto;
display: block;
max-height: 6em;
max-width: 18em;
}
nav.toc h1 {
text-align: center;
margin-top: .57em;
margin-bottom: 0;
}
nav.toc select {
display: block;
height: 2em;
padding: 0 1.6em 0 1em;
min-width: 7em;
max-width: 90%;
max-width: calc(100% - 5em);
margin: 0 auto;
font-size: .83em;
border: 1px solid #c9c9c9;
border-radius: 1em;
/* TODO: doesn't seem to be centered on Safari */
text-align: center;
text-align-last: center;
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: white url("arrow.svg");
background-size: 1.155em;
background-repeat: no-repeat;
background-position: right;
}
nav.toc select:hover {
border: 1px solid #a0a0a0;
}
nav.toc select option {
text-align: center;
}
nav.toc input {
display: block;
height: 2em;
width: 90%;
width: calc(100% - 5em);
margin: 1.2em auto;
padding: 0 1em;
border: 1px solid #c9c9c9;
border-radius: 1em;
font-size: .83em;
}
nav.toc > ul * {
margin: 0;
}
nav.toc ul {
color: #404040;
padding: 0;
list-style: none;
}
nav.toc ul .toctext {
color: inherit;
display: block;
}
nav.toc ul a:hover {
color: #fcfcfc;
background-color: #4e4a4a;
}
nav.toc ul.internal a {
color: inherit;
display: block;
}
nav.toc ul.internal a:hover {
background-color: #d6d6d6;
}
nav.toc ul.internal {
background-color: #e3e3e3;
box-shadow: inset -14px 0px 5px -12px rgb(210,210,210);
list-style: none;
}
nav.toc ul.internal li.toplevel {
border-top: 1px solid #909090;
font-weight: bold;
}
nav.toc ul.internal li.toplevel:first-child {
border-top: none;
}
nav.toc .toctext {
padding-top: 0.3em;
padding-bottom: 0.3em;
padding-right: 1em;
}
nav.toc ul .toctext {
padding-left: 1em;
}
nav.toc ul ul .toctext {
padding-left: 2em;
}
nav.toc ul ul ul .toctext {
padding-left: 3em;
}
nav.toc li.current > .toctext {
border-top: 1px solid #c9c9c9;
border-bottom: 1px solid #c9c9c9;
color: #404040;
font-weight: bold;
background-color: white;
}
article {
margin-left: 20em;
min-width: 20em;
max-width: 48em;
padding: 2em;
}
article > header {}
article > header div#topbar {
display: none;
}
article > header nav ul {
display: inline-block;
list-style: none;
margin: 0;
padding: 0;
}
article > header nav li {
display: inline-block;
padding-right: 0.2em;
}
article > header nav li:before {
content: "»";
padding-right: 0.2em;
}
article > header .edit-page {
float: right;
}
article > footer {}
article > footer a.prev {
float: left;
}
article > footer a.next {
float: right;
}
article > footer a .direction:after {
content: ": ";
}
article hr {
margin: 1em 0;
}
article section.docstring {
border: 1px solid #ddd;
margin: 0.5em 0;
padding: 0.5em;
border-radius: 3px;
}
article section.docstring .docstring-header {
margin-bottom: 1em;
}
article section.docstring .docstring-binding {
color: #333;
font-weight: bold;
}
article section.docstring .docstring-category {
font-style: italic;
}
article section.docstring a.source-link {
display: block;
font-weight: bold;
}
.nav-anchor,
.nav-anchor:hover,
.nav-anchor:visited {
color: #333;
}
/*
* Admonitions
*
* Colors (title, body)
* warning: #f0b37e #ffedcc (orange)
* note: #6ab0de #e7f2fa (blue)
* tip: #1abc9c #dbfaf4 (green)
*/
.admonition {
border-radius: 3px;
background-color: #eeeeee;
}
.admonition-title {
border-radius: 3px 3px 0 0;
background-color: #9b9b9b;
padding: 0.15em 0.5em;
}
.admonition-text {
padding: 0.5em;
}
.admonition-text > :first-child {
margin-top: 0;
}
.admonition-text > :last-child {
margin-bottom: 0;
}
.admonition > .admonition-title:before {
font-family: "FontAwesome";
margin-right: 5px;
content: "\f06a";
}
.admonition.warning > .admonition-title {
background-color: #f0b37e;
}
.admonition.warning {
background-color: #ffedcc;
}
.admonition.note > .admonition-title {
background-color: #6ab0de;
}
.admonition.note {
background-color: #e7f2fa;
}
.admonition.tip > .admonition-title {
background-color: #1abc9c;
}
.admonition.tip {
background-color: #dbfaf4;
}
/* footnotes */
.footnote {
padding-left: 0.8em;
border-left: 2px solid #ccc;
}
/* Search page */
#search-results .category {
font-size: smaller;
}
/* Overriding the <code> block style of highligh.js.
* We have to override the padding and the background-color, since we style this
* part ourselves. Specifically, we style the <pre> surrounding the <code>, while
* highlight.js applies the .hljs style directly to the <code> tag.
*/
.hljs {
background-color: transparent;
padding: 0;
}
@media only screen and (max-width: 768px) {
nav.toc {
position: fixed;
overflow-y: scroll;
width: 16em;
left: -16em;
-webkit-overflow-scrolling: touch;
-webkit-transition-property: left; /* Safari */
-webkit-transition-duration: 0.3s; /* Safari */
transition-property: left;
transition-duration: 0.3s;
-webkit-transition-timing-function: ease-out; /* Safari */
transition-timing-function: ease-out;
z-index: 2;
}
nav.toc.show {
left: 0;
}
article {
margin-left: 0;
padding: 3em 0.9em 0 0.9em; /* top right bottom left */
overflow-wrap: break-word;
}
article > header {
position: fixed;
left: 0;
z-index: 1;
}
article > header nav, hr {
display: none;
}
article > header div#topbar {
display: block; /* is mobile */
position: fixed;
width: 100%;
height: 1.5em;
padding-top: 1em;
padding-bottom: 1em;
background-color: #fcfcfc;
box-shadow: 0 1px 3px rgba(0,0,0,.26);
top: 0;
-webkit-transition-property: top; /* Safari */
-webkit-transition-duration: 0.3s; /* Safari */
transition-property: top;
transition-duration: 0.3s;
}
article > header div#topbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
top: -4em;
-webkit-transition-property: top; /* Safari */
-webkit-transition-duration: 0.7s; /* Safari */
transition-property: top;
transition-duration: 0.7s;
}
article > header div#topbar span {
position: fixed;
width: 80%;
height: 1.5em;
margin-top: -0.1em;
margin-left: 0.9em;
font-size: 1.2em;
overflow: hidden;
}
article > header div#topbar a.fa-bars {
float: right;
padding: 0.6em;
margin-top: -0.6em;
margin-right: 0.3em;
font-size: 1.5em;
}
article > header div#topbar a.fa-bars:visited {
color: #3091d1;
}
article table {
overflow-x: auto;
display: block;
}
article div.MathJax_Display {
overflow: scroll;
}
article span.MathJax {
overflow: hidden;
}
}
@media only screen and (max-width: 320px) {
body {
font-size: 15px;
}
}

129
v1.0.1/assets/documenter.js

@ -0,0 +1,129 @@ @@ -0,0 +1,129 @@
/*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
requirejs.config({
paths: {
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min',
'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min',
'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.3/headroom.min',
'mathjax': 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML',
'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min',
'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia.min',
'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia-repl.min',
},
shim: {
'mathjax' : {
exports: "MathJax"
},
'highlight-julia': ['highlight'],
'highlight-julia-repl': ['highlight'],
}
});
// Load MathJax
require(['mathjax'], function(MathJax) {
MathJax.Hub.Config({
"tex2jax": {
inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true
}
});
MathJax.Hub.Config({
config: ["MMLorHTML.js"],
jax: [
"input/TeX",
"output/HTML-CSS",
"output/NativeMML"
],
extensions: [
"MathMenu.js",
"MathZoom.js",
"TeX/AMSmath.js",
"TeX/AMSsymbols.js",
"TeX/autobold.js",
"TeX/autoload-all.js"
]
});
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
})
require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) {
$(document).ready(function() {
hljs.initHighlighting();
})
})
// update the version selector with info from the siteinfo.js and ../versions.js files
require(['jquery'], function($) {
$(document).ready(function() {
var version_selector = $("#version-selector");
// add the current version to the selector based on siteinfo.js, but only if the selector is empty
if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
var option = $("<option value='#' selected='selected'>" + DOCUMENTER_CURRENT_VERSION + "</option>");
version_selector.append(option);
}
if (typeof DOC_VERSIONS !== 'undefined') {
var existing_versions = $('#version-selector > option');
var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
DOC_VERSIONS.forEach(function(each) {
var version_url = documenterBaseURL + "/../" + each;
var existing_id = $.inArray(each, existing_versions_texts);
// if not already in the version selector, add it as a new option,
// otherwise update the old option with the URL and enable it
if (existing_id == -1) {
var option = $("<option value='" + version_url + "'>" + each + "</option>");
version_selector.append(option);
} else {
var option = existing_versions[existing_id];
option.value = version_url;
option.disabled = false;
}
});
}
// only show the version selector if the selector has been populated
if ($('#version-selector > option').length > 0) {
version_selector.css("visibility", "visible");
}
})
})
// mobile
require(['jquery', 'headroom'], function($, Headroom) {
$(document).ready(function() {
var navtoc = $("nav.toc");
$("nav.toc li.current a.toctext").click(function() {
navtoc.toggleClass('show');
});
$("article > header div#topbar a.fa-bars").click(function(ev) {
ev.preventDefault();
navtoc.toggleClass('show');
if (navtoc.hasClass('show')) {
var title = $("article > header div#topbar span").text();
$("nav.toc ul li a:contains('" + title + "')").focus();
}
});
$("article#docs").bind('click', function(ev) {
if ($(ev.target).is('div#topbar a.fa-bars')) {
return;
}
if (navtoc.hasClass('show')) {
navtoc.removeClass('show');
}
});
if ($("article > header div#topbar").css('display') == 'block') {
var headroom = new Headroom(document.querySelector("article > header div#topbar"), {"tolerance": {"up": 10, "down": 10}});
headroom.init();
}
})
})

BIN
v1.0.1/assets/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

250
v1.0.1/assets/search.js

@ -0,0 +1,250 @@ @@ -0,0 +1,250 @@
/*
* Part of Documenter.jl
* https://github.com/JuliaDocs/Documenter.jl
*
* License: MIT
*/
// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License
function parseUri (str) {
var o = parseUri.options,
m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
uri = {},
i = 14;
while (i--) uri[o.key[i]] = m[i] || "";
uri[o.q.name] = {};
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
if ($1) uri[o.q.name][$1] = $2;
});
return uri;
};
parseUri.options = {
strictMode: false,
key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
q: {
name: "queryKey",
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}
};
requirejs.config({
paths: {
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min',
'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.1/lunr.min',
'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min',
}
});
var currentScript = document.currentScript;
require(["jquery", "lunr", "lodash"], function($, lunr, _) {
$("#search-form").submit(function(e) {
e.preventDefault()
})
// list below is the lunr 2.1.3 list minus the intersect with names(Base)
// (all, any, get, in, is, which) and (do, else, for, let, where, while, with)
// ideally we'd just filter the original list but it's not available as a variable
lunr.stopWordFilter = lunr.generateStopWordFilter([
'a',
'able',
'about',
'across',
'after',
'almost',
'also',
'am',
'among',
'an',
'and',
'are',
'as',
'at',
'be',
'because',
'been',
'but',
'by',
'can',
'cannot',
'could',
'dear',
'did',
'does',
'either',
'ever',
'every',
'from',
'got',
'had',
'has',
'have',
'he',
'her',
'hers',
'him',
'his',
'how',
'however',
'i',
'if',
'into',
'it',
'its',
'just',
'least',
'like',
'likely',
'may',
'me',
'might',
'most',
'must',
'my',
'neither',
'no',
'nor',
'not',
'of',
'off',
'often',
'on',
'only',
'or',
'other',
'our',
'own',
'rather',
'said',
'say',
'says',
'she',
'should',
'since',
'so',
'some',
'than',
'that',
'the',
'their',
'them',
'then',
'there',
'these',
'they',
'this',
'tis',
'to',
'too',
'twas',
'us',
'wants',
'was',
'we',
'were',
'what',
'when',
'who',
'whom',
'why',
'will',
'would',
'yet',
'you',
'your'
])
// add . as a separator, because otherwise "title": "Documenter.Anchors.add!"
// would not find anything if searching for "add!", only for the entire qualification
lunr.tokenizer.separator = /[\s\-\.]+/
// custom trimmer that doesn't strip @ and !, which are used in julia macro and function names
lunr.trimmer = function (token) {
return token.update(function (s) {
return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '')
})
}
lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter')
lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer')
var index = lunr(function () {
this.ref('location')
this.field('title')
this.field('text')
documenterSearchIndex['docs'].forEach(function(e) {
this.add(e)
}, this)
})
var store = {}
documenterSearchIndex['docs'].forEach(function(e) {
store[e.location] = {title: e.title, category: e.category}
})
$(function(){
function update_search(querystring) {
tokens = lunr.tokenizer(querystring)
results = index.query(function (q) {
tokens.forEach(function (t) {
q.term(t.toString(), {
fields: ["title"],
boost: 100,
usePipeline: false,
editDistance: 0,
wildcard: lunr.Query.wildcard.NONE
})
q.term(t.toString(), {
fields: ["title"],
boost: 10,
usePipeline: false,
editDistance: 2,
wildcard: lunr.Query.wildcard.NONE
})
q.term(t.toString(), {
fields: ["text"],
boost: 1,
usePipeline: true,
editDistance: 0,
wildcard: lunr.Query.wildcard.NONE
})
})
})
$('#search-info').text("Number of results: " + results.length)
$('#search-results').empty()
results.forEach(function(result) {
data = store[result.ref]
link = $('<a>')
link.text(data.title)
link.attr('href', documenterBaseURL+'/'+result.ref)
cat = $('<span class="category">('+data.category+')</span>')
li = $('<li>').append(link).append(" ").append(cat)
$('#search-results').append(li)
})
}
function update_search_box() {
querystring = $('#search-query').val()
update_search(querystring)
}
$('#search-query').keyup(_.debounce(update_search_box, 250))
$('#search-query').change(update_search_box)
search_query_uri = parseUri(window.location).queryKey["q"]
if(search_query_uri !== undefined) {
search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20'))
$("#search-query").val(search_query)
}
update_search_box();
})
})

8
v1.0.1/customprocessing.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>5. Custom pre- and post-processing · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li class="current"><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a><ul class="internal"></ul></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/customprocessing.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>5. Custom pre- and post-processing</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Custom-pre-and-post-processing-1" href="#Custom-pre-and-post-processing-1"><strong>5.</strong> Custom pre- and post-processing</a></h1><p>Since all packages are different, and may have different demands on how to create a nice example for the documentation it is important that the package maintainer does not feel limited by the by default provided syntax that this package offers. While you can generally come a long way by utilizing <a href="fileformat.html#Filtering-Lines-1">line filtering</a> there might be situations where you need to manually hook into the generation and change things. In Literate this is done by letting the user supply custom pre- and post-processing functions that may do transformation of the content.</p><p>All of the generators (<a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a>) accepts <code>preprocess</code> and <code>postprocess</code> keyword arguments. The default &quot;transformation&quot; is the <code>identity</code> function. The input to the transformation functions is a <code>String</code>, and the output should be the transformed <code>String</code>.</p><p><code>preprocess</code> is sent the raw input that is read from the source file (<a href="pipeline.html#Pre-processing-1">modulo the default line ending transformation</a>). <code>postprocess</code> is given different things depending on the output: For markdown and script output <code>postprocess</code> is given the content <code>String</code> just before writing it to the output file, but for notebook output <code>postprocess</code> is given the dictionary representing the notebook, since, in general, this is more useful.</p><p>As an example, lets say we want to splice the date of generation into the output. We could of course update our source file before generating the docs, but we could instead use a <code>preprocess</code> function that splices the date into the source for us. Consider the following source file:</p><pre><code class="language-julia"># # Example
# This example was generated DATEOFTODAY
x = 1 // 3</code></pre><p>where <code>DATEOFTODAY</code> is a placeholder, to make it easier for our <code>preprocess</code> function to find the location. Now, lets define the <code>preprocess</code> function, for example</p><pre><code class="language-julia">function update_date(content)
content = replace(content, &quot;DATEOFTODAY&quot; =&gt; Date(now()))
return content
end</code></pre><p>which would replace every occurrence of <code>&quot;DATEOFTODAY&quot;</code> with the current date. We would now simply give this function to the generator, for example:</p><pre><code class="language-julia">Literate.markdown(&quot;input.jl&quot;, &quot;outputdir&quot;; preprocess = update_date)</code></pre><footer><hr/><a class="previous" href="outputformats.html"><span class="direction">Previous</span><span class="title"><strong>4.</strong> Output Formats</span></a><a class="next" href="documenter.html"><span class="direction">Next</span><span class="title"><strong>6.</strong> Interaction with Documenter.jl</span></a></footer></article></body></html>

12
v1.0.1/documenter.html

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>6. Interaction with Documenter.jl · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li class="current"><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a><ul class="internal"></ul></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/documenter.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>6. Interaction with Documenter.jl</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Interaction-with-Documenter-1" href="#Interaction-with-Documenter-1"><strong>6.</strong> Interaction with Documenter.jl</a></h1><p>Literate can be used for any purpose, it spits out regular markdown files, and notebooks. Typically, though, these files will be used to render documentation for your package. The generators (<a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a>) supports a keyword argument <code>documenter</code> that lets the generator perform some extra things, keeping in mind that the source code have been written with Documenter.jl in mind. So lets take a look at what will happen if we set <code>documenter = true</code>:</p><h3><a class="nav-anchor" id="[Literate.markdown](@ref):-1" href="#[Literate.markdown](@ref):-1"><a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>:</a></h3><ul><li>The default code fence will change from<pre><code class="language-none">```julia
# code
```</code></pre>to Documenters <code>@example</code> blocks:<pre><code class="language-none">```@examples $(name)
# code
```</code></pre></li><li>The following <code>@meta</code> block will be added to the top of the markdown page, which redirects the &quot;Edit on GitHub&quot; link on the top of the page to the <em>source file</em> rather than the generated <code>.md</code> file:<pre><code class="language-none">```@meta
EditURL = &quot;$(relpath(inputfile, outputdir))&quot;
```</code></pre></li></ul><h3><a class="nav-anchor" id="[Literate.notebook](@ref):-1" href="#[Literate.notebook](@ref):-1"><a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a>:</a></h3><ul><li>Documenter style <code>@ref</code>s and <code>@id</code> will be removed. This means that you can use <code>@ref</code> and <code>@id</code> in the source file without them leaking to the notebook.</li><li>Documenter style markdown math<pre><code class="language-none">```math
\int f dx
```</code></pre>is replaced with notebook compatible<pre><code class="language-none">\begin{equation}
\int f dx
\end{equation}</code></pre></li></ul><h3><a class="nav-anchor" id="[Literate.script](@ref):-1" href="#[Literate.script](@ref):-1"><a href="outputformats.html#Literate.script"><code>Literate.script</code></a>:</a></h3><ul><li>Documenter style <code>@ref</code>s and <code>@id</code> will be removed. This means that you can use <code>@ref</code> and <code>@id</code> in the source file without them leaking to the script.</li></ul><footer><hr/><a class="previous" href="customprocessing.html"><span class="direction">Previous</span><span class="title"><strong>5.</strong> Custom pre- and post-processing</span></a><a class="next" href="generated/example.html"><span class="direction">Next</span><span class="title"><strong>7.</strong> Example</span></a></footer></article></body></html>

17
v1.0.1/fileformat.html

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>2. File Format · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li class="current"><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a><ul class="internal"><li><a class="toctext" href="#Syntax-1"><strong>2.1.</strong> Syntax</a></li><li><a class="toctext" href="#Filtering-Lines-1"><strong>2.2.</strong> Filtering Lines</a></li><li><a class="toctext" href="#Default-Replacements-1"><strong>2.3.</strong> Default Replacements</a></li></ul></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href="fileformat.html"><strong>2.</strong> File Format</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/docs/src/fileformat.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>2. File Format</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**2.**-File-Format-1" href="#**2.**-File-Format-1"><strong>2.</strong> File Format</a></h1><p>The source file format for Literate is a regular, commented, julia (<code>.jl</code>) scripts. The idea is that the scripts also serve as documentation on their own and it is also simple to include them in the test-suite, with e.g. <code>include</code>, to make sure the examples stay up do date with other changes in your package.</p><h2><a class="nav-anchor" id="Syntax-1" href="#Syntax-1"><strong>2.1.</strong> Syntax</a></h2><p>The basic syntax is simple:</p><ul><li>lines starting with <code>#</code> are treated as markdown,</li><li>all other lines are treated as julia code.</li></ul><p>Leading whitespace is allowed before <code>#</code>, but it will be removed when generating the output. Since <code>#</code>-lines is treated as markdown we can not use that for regular julia comments, for this you can instead use <code>##</code>, which will render as <code>#</code> in the output.</p><p>Lets look at a simple example:</p><pre><code class="language-julia"># # Rational numbers
#
# In julia rational numbers can be constructed with the `//` operator.
# Lets define two rational numbers, `x` and `y`:
x = 1//3
y = 2//5
# When adding `x` and `y` together we obtain a new rational number:
z = x + y</code></pre><p>In the lines starting with <code>#</code> we can use regular markdown syntax, for example the <code>#</code> used for the heading and the backticks for formatting code. The other lines are regular julia code. We note a couple of things:</p><ul><li>The script is valid julia, which means that we can <code>include</code> it and the example will run (for example in the <code>test/runtests.jl</code> script, to include the example in the test suite).</li><li>The script is &quot;self-explanatory&quot;, i.e. the markdown lines works as comments and thus serve as good documentation on its own.</li></ul><p>For simple use this is all you need to know. The following additional special syntax can also be used:</p><ul><li><code>#md</code>, <code>#nb</code>, <code>#jl</code>, <code>#src</code>: tags to filter lines, see <a href="fileformat.html#Filtering-Lines-1">Filtering Lines</a>,</li><li><code>#-</code>: tag to manually control chunk-splits, see <a href="pipeline.html#Custom-control-over-chunk-splits-1">Custom control over chunk splits</a>.</li></ul><p>There is also some default convenience replacements that will always be performed, see <a href="fileformat.html#Default-Replacements-1">Default Replacements</a>.</p><h2><a class="nav-anchor" id="Filtering-Lines-1" href="#Filtering-Lines-1"><strong>2.2.</strong> Filtering Lines</a></h2><p>It is often useful to filter out lines in the source depending on the output format. For this purpose there are a number of &quot;tokens&quot; that can be used to mark the purpose of certain lines:</p><ul><li><code>#md</code>: line exclusive to markdown output,</li><li><code>#nb</code>: line exclusive to notebook output,</li><li><code>#jl</code>: line exclusive to script output,</li><li><code>#src</code>: line exclusive to the source code and thus filtered out unconditionally.</li></ul><p>Lines <em>starting</em> with one of these tokens are filtered out in the <a href="pipeline.html#Pre-processing-1">preprocessing step</a>.</p><p>Suppose, for example, that we want to include a docstring within a <code>@docs</code> block using Documenter. Obviously we don&#39;t want to include this in the notebook, since <code>@docs</code> is Documenter syntax that the notebook will not understand. This is a case where we can prepend <code>#md</code> to those lines:</p><pre><code class="language-julia">#md # ```@docs
#md # Literate.markdown
#md # Literate.notebook
#md # Literate.markdown
#md # ```</code></pre><p>The lines in the example above would be filtered out in the preprocessing step, unless we are generating a markdown file. When generating a markdown file we would simple remove the leading <code>#md</code> from the lines. Beware that the space after the tag is also removed.</p><p>The <code>#src</code> token can also be placed at the <em>end</em> of a line. This is to make it possible to have code lines exclusive to the source code, and not just comment lines. For example, if the source file is included in the test suite we might want to add a <code>@test</code> at the end without this showing up in the outputs:</p><pre><code class="language-julia">using Test #src
@test result == expected_result #src</code></pre><h2><a class="nav-anchor" id="Default-Replacements-1" href="#Default-Replacements-1"><strong>2.3.</strong> Default Replacements</a></h2><p>The following convenience &quot;macros&quot; are always expanded:</p><ul><li><p><code>@__NAME__</code></p><p>expands to the <code>name</code> keyword argument to <a href="outputformats.html#Literate.markdown"><code>Literate.markdown</code></a>, <a href="outputformats.html#Literate.notebook"><code>Literate.notebook</code></a> and <a href="outputformats.html#Literate.script"><code>Literate.script</code></a> (defaults to the filename of the input file).</p></li><li><p><code>@__REPO__ROOT_URL__</code></p><p>expands to <code>https://github.com/$(ENV[&quot;TRAVIS_REPO_SLUG&quot;])/blob/master/</code> and is a convenient way to use when you want to link to files outside the doc-build directory. For example <code>@__REPO__ROOT_URL__src/Literate.jl</code> would link to the source of the Literate module.</p></li><li><p><code>@__NBVIEWER_ROOT_URL__</code></p><p>expands to <code>https://nbviewer.jupyter.org/github/$(ENV[&quot;TRAVIS_REPO_SLUG&quot;])/blob/gh-pages/$(folder)/</code> where <code>folder</code> is the folder that <code>Documenter.deploydocs</code> deploys too. This can be used if you want a link that opens the generated notebook in <a href="http://nbviewer.jupyter.org/">http://nbviewer.jupyter.org/</a>.</p></li></ul><footer><hr/><a class="previous" href="index.html"><span class="direction">Previous</span><span class="title"><strong>1.</strong> Introduction</span></a><a class="next" href="pipeline.html"><span class="direction">Next</span><span class="title"><strong>3.</strong> Processing pipeline</span></a></footer></article></body></html>

352
v1.0.1/generated/example.html

@ -0,0 +1,352 @@ @@ -0,0 +1,352 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>7. Example · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link href="../assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="../index.html"><img class="logo" src="../assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="../fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="../pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="../outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="../customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="../documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li class="current"><a class="toctext" href="example.html"><strong>7.</strong> Example</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="example.html"><strong>7.</strong> Example</a></li></ul><a class="edit-page" href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>7. Example</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="**7.**-Example-1" href="#**7.**-Example-1"><strong>7.</strong> Example</a></h1><p>This is an example generated with Literate based on this source file: <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl"><code>example.jl</code></a>. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: <a href="https://nbviewer.jupyter.org/github/fredrikekre/Literate.jl/blob/gh-pages/v1.0.1/generated/example.ipynb"><code>example.ipynb</code></a>, and the plain script output can be found here: <a href="example.jl"><code>example.jl</code></a>.</p><p>It is recommended to have the <a href="https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl">source file</a> available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing.</p><h3><a class="nav-anchor" id="Basic-syntax-1" href="#Basic-syntax-1">Basic syntax</a></h3><p>The basic syntax for Literate is simple, lines starting with <code>#</code> is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:</p><div><pre><code class="language-julia">x = 1//3
y = 2//5</code></pre><pre><code class="language-none">2//5</code></pre></div><p>In markdown sections we can use markdown syntax. For example, we can write <em>text in italic font</em>, <strong>text in bold font</strong> and use <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">links</a>.</p><p>It is possible to filter out lines depending on the output using the <code>#md</code>, <code>#nb</code>, <code>#jl</code> and <code>#src</code> tags (see <a href="../fileformat.html#Filtering-Lines-1">Filtering Lines</a>):</p><ul><li>This line starts with <code>#md</code> and is thus only visible in the markdown output.</li></ul><p>The source file is parsed in chunks of markdown and code. Starting a line with <code>#-</code> manually inserts a chunk break. For example, if we want to display the output of the following operations we may insert <code>#-</code> in between. These two code blocks will now end up in different <code>@example</code>-blocks in the markdown output, and two different notebook cells in the notebook output.</p><div><pre><code class="language-julia">x + y</code></pre><pre><code class="language-none">11//15</code></pre></div><div><pre><code class="language-julia">x * y</code></pre><pre><code class="language-none">2//15</code></pre></div><h3><a class="nav-anchor" id="Output-Capturing-1" href="#Output-Capturing-1">Output Capturing</a></h3><p>Code chunks are by default placed in Documenter <code>@example</code> blocks in the generated markdown. This means that the output will be captured in a block when Documenter is building the docs. In notebooks the output is captured in output cells, if the <code>execute</code> keyword argument is set to true. Output to <code>stdout</code>/<code>stderr</code> is also captured.</p><div><pre><code class="language-julia">function foo()
println(&quot;This string is printed to stdout.&quot;)
return [1, 2, 3, 4]
end
foo()</code></pre><pre><code class="language-none">This string is printed to stdout.
4-element Array{Int64,1}:
1
2
3
4</code></pre></div><p>Both Documenter&#39;s <code>@example</code> block and notebooks can display images. Here is an example where we generate a simple plot using the <a href="https://github.com/JuliaPlots/Plots.jl">Plots.jl</a> package</p><div><pre><code class="language-julia">using Plots
x = range(0, stop=6π, length=1000)
y1 = sin.(x)
y2 = cos.(x)
plot(x, [y1, y2])</code></pre><?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="400" viewBox="0 0 600 400">
<defs>
<clipPath id="clip4100">
<rect x="0" y="0" width="600" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip4100)" points="
0,400 600,400 600,0 0,0
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip4101">
<rect x="120" y="0" width="421" height="400"/>
</clipPath>
</defs>
<polygon clip-path="url(#clip4100)" points="
23.622,384.252 580.315,384.252 580.315,11.811 23.622,11.811
" fill="#ffffff" fill-opacity="1"/>
<defs>
<clipPath id="clip4102">
<rect x="23" y="11" width="558" height="373"/>
</clipPath>
</defs>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
39.3775,384.252 39.3775,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
178.686,384.252 178.686,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
317.995,384.252 317.995,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
457.304,384.252 457.304,11.811
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,373.713 580.315,373.713
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,285.873 580.315,285.873
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,198.032 580.315,198.032
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,110.192 580.315,110.192
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#000000; stroke-width:0.5; stroke-opacity:0.1; fill:none" points="
23.622,22.3518 580.315,22.3518
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 580.315,384.252
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,384.252 23.622,11.811
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,384.252 39.3775,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
178.686,384.252 178.686,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
317.995,384.252 317.995,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
457.304,384.252 457.304,378.665
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,373.713 31.9724,373.713
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,285.873 31.9724,285.873
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,198.032 31.9724,198.032
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,110.192 31.9724,110.192
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
23.622,22.3518 31.9724,22.3518
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 39.3775, 398.052)" x="39.3775" y="398.052">0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 178.686, 398.052)" x="178.686" y="398.052">5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 317.995, 398.052)" x="317.995" y="398.052">10</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:middle;" transform="rotate(0, 457.304, 398.052)" x="457.304" y="398.052">15</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 378.213)" x="17.622" y="378.213">-1.0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 290.373)" x="17.622" y="290.373">-0.5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 202.532)" x="17.622" y="202.532">0.0</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 114.692)" x="17.622" y="114.692">0.5</text>
</g>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:end;" transform="rotate(0, 17.622, 26.8518)" x="17.622" y="26.8518">1.0</text>
</g>
<polyline clip-path="url(#clip4102)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,198.032 39.9032,194.718 40.4289,191.404 40.9546,188.093 41.4803,184.786 42.006,181.483 42.5318,178.186 43.0575,174.896 43.5832,171.615 44.1089,168.342
44.6346,165.081 45.1603,161.831 45.686,158.594 46.2117,155.371 46.7374,152.163 47.2631,148.971 47.7888,145.797 48.3145,142.642 48.8402,139.506 49.366,136.391
49.8917,133.298 50.4174,130.229 50.9431,127.183 51.4688,124.162 51.9945,121.168 52.5202,118.201 53.0459,115.263 53.5716,112.354 54.0973,109.475 54.623,106.629
55.1487,103.814 55.6744,101.033 56.2002,98.2869 56.7259,95.5761 57.2516,92.9018 57.7773,90.2649 58.303,87.6664 58.8287,85.1071 59.3544,82.5881 59.8801,80.1101
60.4058,77.6742 60.9315,75.281 61.4572,72.9316 61.9829,70.6267 62.5086,68.3672 63.0344,66.1539 63.5601,63.9874 64.0858,61.8688 64.6115,59.7985 65.1372,57.7775
65.6629,55.8065 66.1886,53.886 66.7143,52.0169 67.24,50.1998 67.7657,48.4353 68.2914,46.724 68.8171,45.0666 69.3428,43.4637 69.8686,41.9158 70.3943,40.4235
70.92,38.9873 71.4457,37.6077 71.9714,36.2852 72.4971,35.0203 73.0228,33.8134 73.5485,32.665 74.0742,31.5755 74.5999,30.5453 75.1256,29.5746 75.6513,28.664
76.177,27.8136 76.7028,27.0238 77.2285,26.2949 77.7542,25.6272 78.2799,25.0208 78.8056,24.476 79.3313,23.993 79.857,23.572 80.3827,23.2131 80.9084,22.9164
81.4341,22.682 81.9598,22.5101 82.4855,22.4007 83.0112,22.3538 83.537,22.3694 84.0627,22.4476 84.5884,22.5883 85.1141,22.7914 85.6398,23.0569 86.1655,23.3847
86.6912,23.7747 87.2169,24.2268 87.7426,24.7407 88.2683,25.3163 88.794,25.9534 89.3197,26.6517 89.8454,27.4111 90.3712,28.2312 90.8969,29.1118 91.4226,30.0525
91.9483,31.053 92.474,32.1129 92.9997,33.2319 93.5254,34.4096 94.0511,35.6455 94.5768,36.9393 95.1025,38.2904 95.6282,39.6983 96.1539,41.1627 96.6796,42.6828
97.2054,44.2583 97.7311,45.8886 98.2568,47.5729 98.7825,49.3109 99.3082,51.1018 99.8339,52.945 100.36,54.8399 100.885,56.7857 101.411,58.7818 101.937,60.8275
102.462,62.9221 102.988,65.0647 103.514,67.2547 104.04,69.4913 104.565,71.7736 105.091,74.1008 105.617,76.4722 106.142,78.8868 106.668,81.3439 107.194,83.8425
107.72,86.3818 108.245,88.9608 108.771,91.5786 109.297,94.2344 109.822,96.927 110.348,99.6557 110.874,102.419 111.399,105.217 111.925,108.048 112.451,110.911
112.977,113.805 113.502,116.728 114.028,119.681 114.554,122.662 115.079,125.669 115.605,128.703 116.131,131.761 116.657,134.842 117.182,137.946 117.708,141.072
118.234,144.217 118.759,147.382 119.285,150.565 119.811,153.765 120.336,156.98 120.862,160.211 121.388,163.454 121.914,166.71 122.439,169.977 122.965,173.254
123.491,176.54 124.016,179.834 124.542,183.134 125.068,186.439 125.594,189.749 126.119,193.061 126.645,196.375 127.171,199.69 127.696,203.004 128.222,206.316
128.748,209.626 129.274,212.931 129.799,216.231 130.325,219.525 130.851,222.811 131.376,226.088 131.902,229.355 132.428,232.611 132.953,235.854 133.479,239.085
134.005,242.3 134.531,245.5 135.056,248.683 135.582,251.848 136.108,254.993 136.633,258.119 137.159,261.223 137.685,264.304 138.211,267.362 138.736,270.396
139.262,273.403 139.788,276.384 140.313,279.336 140.839,282.26 141.365,285.154 141.891,288.017 142.416,290.848 142.942,293.646 143.468,296.409 143.993,299.138
144.519,301.831 145.045,304.486 145.57,307.104 146.096,309.683 146.622,312.222 147.148,314.721 147.673,317.178 148.199,319.593 148.725,321.964 149.25,324.291
149.776,326.574 150.302,328.81 150.828,331 151.353,333.143 151.879,335.237 152.405,337.283 152.93,339.279 153.456,341.225 153.982,343.12 154.507,344.963
155.033,346.754 155.559,348.492 156.085,350.176 156.61,351.807 157.136,353.382 157.662,354.902 158.187,356.367 158.713,357.775 159.239,359.126 159.765,360.419
160.29,361.655 160.816,362.833 161.342,363.952 161.867,365.012 162.393,366.012 162.919,366.953 163.445,367.834 163.97,368.654 164.496,369.413 165.022,370.112
165.547,370.749 166.073,371.324 166.599,371.838 167.124,372.29 167.65,372.68 168.176,373.008 168.702,373.274 169.227,373.477 169.753,373.617 170.279,373.696
170.804,373.711 171.33,373.664 171.856,373.555 172.382,373.383 172.907,373.149 173.433,372.852 173.959,372.493 174.484,372.072 175.01,371.589 175.536,371.044
176.062,370.438 176.587,369.77 177.113,369.041 177.639,368.251 178.164,367.401 178.69,366.49 179.216,365.52 179.741,364.489 180.267,363.4 180.793,362.251
181.319,361.045 181.844,359.78 182.37,358.457 182.896,357.078 183.421,355.641 183.947,354.149 184.473,352.601 184.999,350.998 185.524,349.341 186.05,347.63
186.576,345.865 187.101,344.048 187.627,342.179 188.153,340.258 188.678,338.287 189.204,336.266 189.73,334.196 190.256,332.077 190.781,329.911 191.307,327.698
191.833,325.438 192.358,323.133 192.884,320.784 193.41,318.391 193.936,315.955 194.461,313.477 194.987,310.958 195.513,308.399 196.038,305.8 196.564,303.163
197.09,300.489 197.616,297.778 198.141,295.032 198.667,292.251 199.193,289.436 199.718,286.59 200.244,283.711 200.77,280.802 201.295,277.864 201.821,274.897
202.347,271.903 202.873,268.882 203.398,265.836 203.924,262.766 204.45,259.674 204.975,256.559 205.501,253.423 206.027,250.268 206.553,247.094 207.078,243.902
207.604,240.694 208.13,237.471 208.655,234.234 209.181,230.984 209.707,227.723 210.233,224.45 210.758,221.169 211.284,217.879 211.81,214.582 212.335,211.279
212.861,207.972 213.387,204.661 213.912,201.347 214.438,198.032 214.964,194.718 215.49,191.404 216.015,188.093 216.541,184.786 217.067,181.483 217.592,178.186
218.118,174.896 218.644,171.615 219.17,168.342 219.695,165.081 220.221,161.831 220.747,158.594 221.272,155.371 221.798,152.163 222.324,148.971 222.849,145.797
223.375,142.642 223.901,139.506 224.427,136.391 224.952,133.298 225.478,130.229 226.004,127.183 226.529,124.162 227.055,121.168 227.581,118.201 228.107,115.263
228.632,112.354 229.158,109.475 229.684,106.629 230.209,103.814 230.735,101.033 231.261,98.2869 231.787,95.5761 232.312,92.9018 232.838,90.2649 233.364,87.6664
233.889,85.1071 234.415,82.5881 234.941,80.1101 235.466,77.6742 235.992,75.281 236.518,72.9316 237.044,70.6267 237.569,68.3672 238.095,66.1539 238.621,63.9874
239.146,61.8688 239.672,59.7985 240.198,57.7775 240.724,55.8065 241.249,53.886 241.775,52.0169 242.301,50.1998 242.826,48.4353 243.352,46.724 243.878,45.0666
244.404,43.4637 244.929,41.9158 245.455,40.4235 245.981,38.9873 246.506,37.6077 247.032,36.2852 247.558,35.0203 248.083,33.8134 248.609,32.665 249.135,31.5755
249.661,30.5453 250.186,29.5746 250.712,28.664 251.238,27.8136 251.763,27.0238 252.289,26.2949 252.815,25.6272 253.341,25.0208 253.866,24.476 254.392,23.993
254.918,23.572 255.443,23.2131 255.969,22.9164 256.495,22.682 257.02,22.5101 257.546,22.4007 258.072,22.3538 258.598,22.3694 259.123,22.4476 259.649,22.5883
260.175,22.7914 260.7,23.0569 261.226,23.3847 261.752,23.7747 262.278,24.2268 262.803,24.7407 263.329,25.3163 263.855,25.9534 264.38,26.6517 264.906,27.4111
265.432,28.2312 265.958,29.1118 266.483,30.0525 267.009,31.053 267.535,32.1129 268.06,33.2319 268.586,34.4096 269.112,35.6455 269.637,36.9393 270.163,38.2904
270.689,39.6983 271.215,41.1627 271.74,42.6828 272.266,44.2583 272.792,45.8886 273.317,47.5729 273.843,49.3109 274.369,51.1018 274.895,52.945 275.42,54.8399
275.946,56.7857 276.472,58.7818 276.997,60.8275 277.523,62.9221 278.049,65.0647 278.575,67.2547 279.1,69.4913 279.626,71.7736 280.152,74.1008 280.677,76.4722
281.203,78.8868 281.729,81.3439 282.254,83.8425 282.78,86.3818 283.306,88.9608 283.832,91.5786 284.357,94.2344 284.883,96.927 285.409,99.6557 285.934,102.419
286.46,105.217 286.986,108.048 287.512,110.911 288.037,113.805 288.563,116.728 289.089,119.681 289.614,122.662 290.14,125.669 290.666,128.703 291.191,131.761
291.717,134.842 292.243,137.946 292.769,141.072 293.294,144.217 293.82,147.382 294.346,150.565 294.871,153.765 295.397,156.98 295.923,160.211 296.449,163.454
296.974,166.71 297.5,169.977 298.026,173.254 298.551,176.54 299.077,179.834 299.603,183.134 300.129,186.439 300.654,189.749 301.18,193.061 301.706,196.375
302.231,199.69 302.757,203.004 303.283,206.316 303.808,209.626 304.334,212.931 304.86,216.231 305.386,219.525 305.911,222.811 306.437,226.088 306.963,229.355
307.488,232.611 308.014,235.854 308.54,239.085 309.066,242.3 309.591,245.5 310.117,248.683 310.643,251.848 311.168,254.993 311.694,258.119 312.22,261.223
312.746,264.304 313.271,267.362 313.797,270.396 314.323,273.403 314.848,276.384 315.374,279.336 315.9,282.26 316.425,285.154 316.951,288.017 317.477,290.848
318.003,293.646 318.528,296.409 319.054,299.138 319.58,301.831 320.105,304.486 320.631,307.104 321.157,309.683 321.683,312.222 322.208,314.721 322.734,317.178
323.26,319.593 323.785,321.964 324.311,324.291 324.837,326.574 325.362,328.81 325.888,331 326.414,333.143 326.94,335.237 327.465,337.283 327.991,339.279
328.517,341.225 329.042,343.12 329.568,344.963 330.094,346.754 330.62,348.492 331.145,350.176 331.671,351.807 332.197,353.382 332.722,354.902 333.248,356.367
333.774,357.775 334.3,359.126 334.825,360.419 335.351,361.655 335.877,362.833 336.402,363.952 336.928,365.012 337.454,366.012 337.979,366.953 338.505,367.834
339.031,368.654 339.557,369.413 340.082,370.112 340.608,370.749 341.134,371.324 341.659,371.838 342.185,372.29 342.711,372.68 343.237,373.008 343.762,373.274
344.288,373.477 344.814,373.617 345.339,373.696 345.865,373.711 346.391,373.664 346.917,373.555 347.442,373.383 347.968,373.149 348.494,372.852 349.019,372.493
349.545,372.072 350.071,371.589 350.596,371.044 351.122,370.438 351.648,369.77 352.174,369.041 352.699,368.251 353.225,367.401 353.751,366.49 354.276,365.52
354.802,364.489 355.328,363.4 355.854,362.251 356.379,361.045 356.905,359.78 357.431,358.457 357.956,357.078 358.482,355.641 359.008,354.149 359.533,352.601
360.059,350.998 360.585,349.341 361.111,347.63 361.636,345.865 362.162,344.048 362.688,342.179 363.213,340.258 363.739,338.287 364.265,336.266 364.791,334.196
365.316,332.077 365.842,329.911 366.368,327.698 366.893,325.438 367.419,323.133 367.945,320.784 368.471,318.391 368.996,315.955 369.522,313.477 370.048,310.958
370.573,308.399 371.099,305.8 371.625,303.163 372.15,300.489 372.676,297.778 373.202,295.032 373.728,292.251 374.253,289.436 374.779,286.59 375.305,283.711
375.83,280.802 376.356,277.864 376.882,274.897 377.408,271.903 377.933,268.882 378.459,265.836 378.985,262.766 379.51,259.674 380.036,256.559 380.562,253.423
381.088,250.268 381.613,247.094 382.139,243.902 382.665,240.694 383.19,237.471 383.716,234.234 384.242,230.984 384.767,227.723 385.293,224.45 385.819,221.169
386.345,217.879 386.87,214.582 387.396,211.279 387.922,207.972 388.447,204.661 388.973,201.347 389.499,198.032 390.025,194.718 390.55,191.404 391.076,188.093
391.602,184.786 392.127,181.483 392.653,178.186 393.179,174.896 393.704,171.615 394.23,168.342 394.756,165.081 395.282,161.831 395.807,158.594 396.333,155.371
396.859,152.163 397.384,148.971 397.91,145.797 398.436,142.642 398.962,139.506 399.487,136.391 400.013,133.298 400.539,130.229 401.064,127.183 401.59,124.162
402.116,121.168 402.642,118.201 403.167,115.263 403.693,112.354 404.219,109.475 404.744,106.629 405.27,103.814 405.796,101.033 406.321,98.2869 406.847,95.5761
407.373,92.9018 407.899,90.2649 408.424,87.6664 408.95,85.1071 409.476,82.5881 410.001,80.1101 410.527,77.6742 411.053,75.281 411.579,72.9316 412.104,70.6267
412.63,68.3672 413.156,66.1539 413.681,63.9874 414.207,61.8688 414.733,59.7985 415.259,57.7775 415.784,55.8065 416.31,53.886 416.836,52.0169 417.361,50.1998
417.887,48.4353 418.413,46.724 418.938,45.0666 419.464,43.4637 419.99,41.9158 420.516,40.4235 421.041,38.9873 421.567,37.6077 422.093,36.2852 422.618,35.0203
423.144,33.8134 423.67,32.665 424.196,31.5755 424.721,30.5453 425.247,29.5746 425.773,28.664 426.298,27.8136 426.824,27.0238 427.35,26.2949 427.875,25.6272
428.401,25.0208 428.927,24.476 429.453,23.993 429.978,23.572 430.504,23.2131 431.03,22.9164 431.555,22.682 432.081,22.5101 432.607,22.4007 433.133,22.3538
433.658,22.3694 434.184,22.4476 434.71,22.5883 435.235,22.7914 435.761,23.0569 436.287,23.3847 436.813,23.7747 437.338,24.2268 437.864,24.7407 438.39,25.3163
438.915,25.9534 439.441,26.6517 439.967,27.4111 440.492,28.2312 441.018,29.1118 441.544,30.0525 442.07,31.053 442.595,32.1129 443.121,33.2319 443.647,34.4096
444.172,35.6455 444.698,36.9393 445.224,38.2904 445.75,39.6983 446.275,41.1627 446.801,42.6828 447.327,44.2583 447.852,45.8886 448.378,47.5729 448.904,49.3109
449.43,51.1018 449.955,52.945 450.481,54.8399 451.007,56.7857 451.532,58.7818 452.058,60.8275 452.584,62.9221 453.109,65.0647 453.635,67.2547 454.161,69.4913
454.687,71.7736 455.212,74.1008 455.738,76.4722 456.264,78.8868 456.789,81.3439 457.315,83.8425 457.841,86.3818 458.367,88.9608 458.892,91.5786 459.418,94.2344
459.944,96.927 460.469,99.6557 460.995,102.419 461.521,105.217 462.046,108.048 462.572,110.911 463.098,113.805 463.624,116.728 464.149,119.681 464.675,122.662
465.201,125.669 465.726,128.703 466.252,131.761 466.778,134.842 467.304,137.946 467.829,141.072 468.355,144.217 468.881,147.382 469.406,150.565 469.932,153.765
470.458,156.98 470.984,160.211 471.509,163.454 472.035,166.71 472.561,169.977 473.086,173.254 473.612,176.54 474.138,179.834 474.663,183.134 475.189,186.439
475.715,189.749 476.241,193.061 476.766,196.375 477.292,199.69 477.818,203.004 478.343,206.316 478.869,209.626 479.395,212.931 479.921,216.231 480.446,219.525
480.972,222.811 481.498,226.088 482.023,229.355 482.549,232.611 483.075,235.854 483.601,239.085 484.126,242.3 484.652,245.5 485.178,248.683 485.703,251.848
486.229,254.993 486.755,258.119 487.28,261.223 487.806,264.304 488.332,267.362 488.858,270.396 489.383,273.403 489.909,276.384 490.435,279.336 490.96,282.26
491.486,285.154 492.012,288.017 492.538,290.848 493.063,293.646 493.589,296.409 494.115,299.138 494.64,301.831 495.166,304.486 495.692,307.104 496.217,309.683
496.743,312.222 497.269,314.721 497.795,317.178 498.32,319.593 498.846,321.964 499.372,324.291 499.897,326.574 500.423,328.81 500.949,331 501.475,333.143
502,335.237 502.526,337.283 503.052,339.279 503.577,341.225 504.103,343.12 504.629,344.963 505.155,346.754 505.68,348.492 506.206,350.176 506.732,351.807
507.257,353.382 507.783,354.902 508.309,356.367 508.834,357.775 509.36,359.126 509.886,360.419 510.412,361.655 510.937,362.833 511.463,363.952 511.989,365.012
512.514,366.012 513.04,366.953 513.566,367.834 514.092,368.654 514.617,369.413 515.143,370.112 515.669,370.749 516.194,371.324 516.72,371.838 517.246,372.29
517.772,372.68 518.297,373.008 518.823,373.274 519.349,373.477 519.874,373.617 520.4,373.696 520.926,373.711 521.451,373.664 521.977,373.555 522.503,373.383
523.029,373.149 523.554,372.852 524.08,372.493 524.606,372.072 525.131,371.589 525.657,371.044 526.183,370.438 526.709,369.77 527.234,369.041 527.76,368.251
528.286,367.401 528.811,366.49 529.337,365.52 529.863,364.489 530.389,363.4 530.914,362.251 531.44,361.045 531.966,359.78 532.491,358.457 533.017,357.078
533.543,355.641 534.068,354.149 534.594,352.601 535.12,350.998 535.646,349.341 536.171,347.63 536.697,345.865 537.223,344.048 537.748,342.179 538.274,340.258
538.8,338.287 539.326,336.266 539.851,334.196 540.377,332.077 540.903,329.911 541.428,327.698 541.954,325.438 542.48,323.133 543.005,320.784 543.531,318.391
544.057,315.955 544.583,313.477 545.108,310.958 545.634,308.399 546.16,305.8 546.685,303.163 547.211,300.489 547.737,297.778 548.263,295.032 548.788,292.251
549.314,289.436 549.84,286.59 550.365,283.711 550.891,280.802 551.417,277.864 551.943,274.897 552.468,271.903 552.994,268.882 553.52,265.836 554.045,262.766
554.571,259.674 555.097,256.559 555.622,253.423 556.148,250.268 556.674,247.094 557.2,243.902 557.725,240.694 558.251,237.471 558.777,234.234 559.302,230.984
559.828,227.723 560.354,224.45 560.88,221.169 561.405,217.879 561.931,214.582 562.457,211.279 562.982,207.972 563.508,204.661 564.034,201.347 564.56,198.032
"/>
<polyline clip-path="url(#clip4102)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
39.3775,22.3518 39.9032,22.3831 40.4289,22.4769 40.9546,22.6332 41.4803,22.8519 42.006,23.133 42.5318,23.4764 43.0575,23.8819 43.5832,24.3495 44.1089,24.8788
44.6346,25.4698 45.1603,26.1222 45.686,26.8359 46.2117,27.6104 46.7374,28.4457 47.2631,29.3413 47.7888,30.297 48.3145,31.3124 48.8402,32.3871 49.366,33.5209
49.8917,34.7131 50.4174,35.9636 50.9431,37.2717 51.4688,38.637 51.9945,40.0591 52.5202,41.5375 53.0459,43.0715 53.5716,44.6608 54.0973,46.3046 54.623,48.0024
55.1487,49.7537 55.6744,51.5577 56.2002,53.4139 56.7259,55.3216 57.2516,57.2801 57.7773,59.2887 58.303,61.3466 58.8287,63.4533 59.3544,65.6078 59.8801,67.8095
60.4058,70.0576 60.9315,72.3512 61.4572,74.6896 61.9829,77.0718 62.5086,79.4972 63.0344,81.9647 63.5601,84.4736 64.0858,87.0228 64.6115,89.6116 65.1372,92.239
65.6629,94.9041 66.1886,97.6059 66.7143,100.343 67.24,103.116 67.7657,105.922 68.2914,108.761 68.8171,111.631 69.3428,114.533 69.8686,117.464 70.3943,120.424
70.92,123.411 71.4457,126.425 71.9714,129.465 72.4971,132.529 73.0228,135.616 73.5485,138.726 74.0742,141.856 74.5999,145.007 75.1256,148.176 75.6513,151.363
76.177,154.567 76.7028,157.787 77.2285,161.02 77.7542,164.267 78.2799,167.526 78.8056,170.796 79.3313,174.075 79.857,177.363 80.3827,180.658 80.9084,183.96
81.4341,187.266 81.9598,190.576 82.4855,193.889 83.0112,197.204 83.537,200.519 84.0627,203.832 84.5884,207.144 85.1141,210.453 85.6398,213.757 86.1655,217.055
86.6912,220.347 87.2169,223.631 87.7426,226.906 88.2683,230.17 88.794,233.423 89.3197,236.663 89.8454,239.89 90.3712,243.102 90.8969,246.297 91.4226,249.476
91.9483,252.636 92.474,255.777 92.9997,258.897 93.5254,261.995 94.0511,265.071 94.5768,268.123 95.1025,271.15 95.6282,274.151 96.1539,277.125 96.6796,280.07
97.2054,282.987 97.7311,285.873 98.2568,288.728 98.7825,291.55 99.3082,294.34 99.8339,297.095 100.36,299.814 100.885,302.498 101.411,305.144 101.937,307.753
102.462,310.322 102.988,312.851 103.514,315.339 104.04,317.786 104.565,320.19 105.091,322.55 105.617,324.866 106.142,327.137 106.668,329.362 107.194,331.54
107.72,333.671 108.245,335.753 108.771,337.787 109.297,339.77 109.822,341.704 110.348,343.586 110.874,345.416 111.399,347.194 111.925,348.918 112.451,350.589
112.977,352.206 113.502,353.767 114.028,355.274 114.554,356.724 115.079,358.118 115.605,359.455 116.131,360.734 116.657,361.955 117.182,363.118 117.708,364.223
118.234,365.268 118.759,366.253 119.285,367.179 119.811,368.044 120.336,368.849 120.862,369.594 121.388,370.277 121.914,370.898 122.439,371.459 122.965,371.957
123.491,372.394 124.016,372.768 124.542,373.08 125.068,373.33 125.594,373.518 126.119,373.643 126.645,373.705 127.171,373.705 127.696,373.643 128.222,373.518
128.748,373.33 129.274,373.08 129.799,372.768 130.325,372.394 130.851,371.957 131.376,371.459 131.902,370.898 132.428,370.277 132.953,369.594 133.479,368.849
134.005,368.044 134.531,367.179 135.056,366.253 135.582,365.268 136.108,364.223 136.633,363.118 137.159,361.955 137.685,360.734 138.211,359.455 138.736,358.118
139.262,356.724 139.788,355.274 140.313,353.767 140.839,352.206 141.365,350.589 141.891,348.918 142.416,347.194 142.942,345.416 143.468,343.586 143.993,341.704
144.519,339.77 145.045,337.787 145.57,335.753 146.096,333.671 146.622,331.54 147.148,329.362 147.673,327.137 148.199,324.866 148.725,322.55 149.25,320.19
149.776,317.786 150.302,315.339 150.828,312.851 151.353,310.322 151.879,307.753 152.405,305.144 152.93,302.498 153.456,299.814 153.982,297.095 154.507,294.34
155.033,291.55 155.559,288.728 156.085,285.873 156.61,282.987 157.136,280.07 157.662,277.125 158.187,274.151 158.713,271.15 159.239,268.123 159.765,265.071
160.29,261.995 160.816,258.897 161.342,255.777 161.867,252.636 162.393,249.476 162.919,246.297 163.445,243.102 163.97,239.89 164.496,236.663 165.022,233.423
165.547,230.17 166.073,226.906 166.599,223.631 167.124,220.347 167.65,217.055 168.176,213.757 168.702,210.453 169.227,207.144 169.753,203.832 170.279,200.519
170.804,197.204 171.33,193.889 171.856,190.576 172.382,187.266 172.907,183.96 173.433,180.658 173.959,177.363 174.484,174.075 175.01,170.796 175.536,167.526
176.062,164.267 176.587,161.02 177.113,157.787 177.639,154.567 178.164,151.363 178.69,148.176 179.216,145.007 179.741,141.856 180.267,138.726 180.793,135.616
181.319,132.529 181.844,129.465 182.37,126.425 182.896,123.411 183.421,120.424 183.947,117.464 184.473,114.533 184.999,111.631 185.524,108.761 186.05,105.922
186.576,103.116 187.101,100.343 187.627,97.6059 188.153,94.9041 188.678,92.239 189.204,89.6116 189.73,87.0228 190.256,84.4736 190.781,81.9647 191.307,79.4972
191.833,77.0718 192.358,74.6896 192.884,72.3512 193.41,70.0576 193.936,67.8095 194.461,65.6078 194.987,63.4533 195.513,61.3466 196.038,59.2887 196.564,57.2801
197.09,55.3216 197.616,53.4139 198.141,51.5577 198.667,49.7537 199.193,48.0024 199.718,46.3046 200.244,44.6608 200.77,43.0715 201.295,41.5375 201.821,40.0591
202.347,38.637 202.873,37.2717 203.398,35.9636 203.924,34.7131 204.45,33.5209 204.975,32.3871 205.501,31.3124 206.027,30.297 206.553,29.3413 207.078,28.4457
207.604,27.6104 208.13,26.8359 208.655,26.1222 209.181,25.4698 209.707,24.8788 210.233,24.3495 210.758,23.8819 211.284,23.4764 211.81,23.133 212.335,22.8519
212.861,22.6332 213.387,22.4769 213.912,22.3831 214.438,22.3518 214.964,22.3831 215.49,22.4769 216.015,22.6332 216.541,22.8519 217.067,23.133 217.592,23.4764
218.118,23.8819 218.644,24.3495 219.17,24.8788 219.695,25.4698 220.221,26.1222 220.747,26.8359 221.272,27.6104 221.798,28.4457 222.324,29.3413 222.849,30.297
223.375,31.3124 223.901,32.3871 224.427,33.5209 224.952,34.7131 225.478,35.9636 226.004,37.2717 226.529,38.637 227.055,40.0591 227.581,41.5375 228.107,43.0715
228.632,44.6608 229.158,46.3046 229.684,48.0024 230.209,49.7537 230.735,51.5577 231.261,53.4139 231.787,55.3216 232.312,57.2801 232.838,59.2887 233.364,61.3466
233.889,63.4533 234.415,65.6078 234.941,67.8095 235.466,70.0576 235.992,72.3512 236.518,74.6896 237.044,77.0718 237.569,79.4972 238.095,81.9647 238.621,84.4736
239.146,87.0228 239.672,89.6116 240.198,92.239 240.724,94.9041 241.249,97.6059 241.775,100.343 242.301,103.116 242.826,105.922 243.352,108.761 243.878,111.631
244.404,114.533 244.929,117.464 245.455,120.424 245.981,123.411 246.506,126.425 247.032,129.465 247.558,132.529 248.083,135.616 248.609,138.726 249.135,141.856
249.661,145.007 250.186,148.176 250.712,151.363 251.238,154.567 251.763,157.787 252.289,161.02 252.815,164.267 253.341,167.526 253.866,170.796 254.392,174.075
254.918,177.363 255.443,180.658 255.969,183.96 256.495,187.266 257.02,190.576 257.546,193.889 258.072,197.204 258.598,200.519 259.123,203.832 259.649,207.144
260.175,210.453 260.7,213.757 261.226,217.055 261.752,220.347 262.278,223.631 262.803,226.906 263.329,230.17 263.855,233.423 264.38,236.663 264.906,239.89
265.432,243.102 265.958,246.297 266.483,249.476 267.009,252.636 267.535,255.777 268.06,258.897 268.586,261.995 269.112,265.071 269.637,268.123 270.163,271.15
270.689,274.151 271.215,277.125 271.74,280.07 272.266,282.987 272.792,285.873 273.317,288.728 273.843,291.55 274.369,294.34 274.895,297.095 275.42,299.814
275.946,302.498 276.472,305.144 276.997,307.753 277.523,310.322 278.049,312.851 278.575,315.339 279.1,317.786 279.626,320.19 280.152,322.55 280.677,324.866
281.203,327.137 281.729,329.362 282.254,331.54 282.78,333.671 283.306,335.753 283.832,337.787 284.357,339.77 284.883,341.704 285.409,343.586 285.934,345.416
286.46,347.194 286.986,348.918 287.512,350.589 288.037,352.206 288.563,353.767 289.089,355.274 289.614,356.724 290.14,358.118 290.666,359.455 291.191,360.734
291.717,361.955 292.243,363.118 292.769,364.223 293.294,365.268 293.82,366.253 294.346,367.179 294.871,368.044 295.397,368.849 295.923,369.594 296.449,370.277
296.974,370.898 297.5,371.459 298.026,371.957 298.551,372.394 299.077,372.768 299.603,373.08 300.129,373.33 300.654,373.518 301.18,373.643 301.706,373.705
302.231,373.705 302.757,373.643 303.283,373.518 303.808,373.33 304.334,373.08 304.86,372.768 305.386,372.394 305.911,371.957 306.437,371.459 306.963,370.898
307.488,370.277 308.014,369.594 308.54,368.849 309.066,368.044 309.591,367.179 310.117,366.253 310.643,365.268 311.168,364.223 311.694,363.118 312.22,361.955
312.746,360.734 313.271,359.455 313.797,358.118 314.323,356.724 314.848,355.274 315.374,353.767 315.9,352.206 316.425,350.589 316.951,348.918 317.477,347.194
318.003,345.416 318.528,343.586 319.054,341.704 319.58,339.77 320.105,337.787 320.631,335.753 321.157,333.671 321.683,331.54 322.208,329.362 322.734,327.137
323.26,324.866 323.785,322.55 324.311,320.19 324.837,317.786 325.362,315.339 325.888,312.851 326.414,310.322 326.94,307.753 327.465,305.144 327.991,302.498
328.517,299.814 329.042,297.095 329.568,294.34 330.094,291.55 330.62,288.728 331.145,285.873 331.671,282.987 332.197,280.07 332.722,277.125 333.248,274.151
333.774,271.15 334.3,268.123 334.825,265.071 335.351,261.995 335.877,258.897 336.402,255.777 336.928,252.636 337.454,249.476 337.979,246.297 338.505,243.102
339.031,239.89 339.557,236.663 340.082,233.423 340.608,230.17 341.134,226.906 341.659,223.631 342.185,220.347 342.711,217.055 343.237,213.757 343.762,210.453
344.288,207.144 344.814,203.832 345.339,200.519 345.865,197.204 346.391,193.889 346.917,190.576 347.442,187.266 347.968,183.96 348.494,180.658 349.019,177.363
349.545,174.075 350.071,170.796 350.596,167.526 351.122,164.267 351.648,161.02 352.174,157.787 352.699,154.567 353.225,151.363 353.751,148.176 354.276,145.007
354.802,141.856 355.328,138.726 355.854,135.616 356.379,132.529 356.905,129.465 357.431,126.425 357.956,123.411 358.482,120.424 359.008,117.464 359.533,114.533
360.059,111.631 360.585,108.761 361.111,105.922 361.636,103.116 362.162,100.343 362.688,97.6059 363.213,94.9041 363.739,92.239 364.265,89.6116 364.791,87.0228
365.316,84.4736 365.842,81.9647 366.368,79.4972 366.893,77.0718 367.419,74.6896 367.945,72.3512 368.471,70.0576 368.996,67.8095 369.522,65.6078 370.048,63.4533
370.573,61.3466 371.099,59.2887 371.625,57.2801 372.15,55.3216 372.676,53.4139 373.202,51.5577 373.728,49.7537 374.253,48.0024 374.779,46.3046 375.305,44.6608
375.83,43.0715 376.356,41.5375 376.882,40.0591 377.408,38.637 377.933,37.2717 378.459,35.9636 378.985,34.7131 379.51,33.5209 380.036,32.3871 380.562,31.3124
381.088,30.297 381.613,29.3413 382.139,28.4457 382.665,27.6104 383.19,26.8359 383.716,26.1222 384.242,25.4698 384.767,24.8788 385.293,24.3495 385.819,23.8819
386.345,23.4764 386.87,23.133 387.396,22.8519 387.922,22.6332 388.447,22.4769 388.973,22.3831 389.499,22.3518 390.025,22.3831 390.55,22.4769 391.076,22.6332
391.602,22.8519 392.127,23.133 392.653,23.4764 393.179,23.8819 393.704,24.3495 394.23,24.8788 394.756,25.4698 395.282,26.1222 395.807,26.8359 396.333,27.6104
396.859,28.4457 397.384,29.3413 397.91,30.297 398.436,31.3124 398.962,32.3871 399.487,33.5209 400.013,34.7131 400.539,35.9636 401.064,37.2717 401.59,38.637
402.116,40.0591 402.642,41.5375 403.167,43.0715 403.693,44.6608 404.219,46.3046 404.744,48.0024 405.27,49.7537 405.796,51.5577 406.321,53.4139 406.847,55.3216
407.373,57.2801 407.899,59.2887 408.424,61.3466 408.95,63.4533 409.476,65.6078 410.001,67.8095 410.527,70.0576 411.053,72.3512 411.579,74.6896 412.104,77.0718
412.63,79.4972 413.156,81.9647 413.681,84.4736 414.207,87.0228 414.733,89.6116 415.259,92.239 415.784,94.9041 416.31,97.6059 416.836,100.343 417.361,103.116
417.887,105.922 418.413,108.761 418.938,111.631 419.464,114.533 419.99,117.464 420.516,120.424 421.041,123.411 421.567,126.425 422.093,129.465 422.618,132.529
423.144,135.616 423.67,138.726 424.196,141.856 424.721,145.007 425.247,148.176 425.773,151.363 426.298,154.567 426.824,157.787 427.35,161.02 427.875,164.267
428.401,167.526 428.927,170.796 429.453,174.075 429.978,177.363 430.504,180.658 431.03,183.96 431.555,187.266 432.081,190.576 432.607,193.889 433.133,197.204
433.658,200.519 434.184,203.832 434.71,207.144 435.235,210.453 435.761,213.757 436.287,217.055 436.813,220.347 437.338,223.631 437.864,226.906 438.39,230.17
438.915,233.423 439.441,236.663 439.967,239.89 440.492,243.102 441.018,246.297 441.544,249.476 442.07,252.636 442.595,255.777 443.121,258.897 443.647,261.995
444.172,265.071 444.698,268.123 445.224,271.15 445.75,274.151 446.275,277.125 446.801,280.07 447.327,282.987 447.852,285.873 448.378,288.728 448.904,291.55
449.43,294.34 449.955,297.095 450.481,299.814 451.007,302.498 451.532,305.144 452.058,307.753 452.584,310.322 453.109,312.851 453.635,315.339 454.161,317.786
454.687,320.19 455.212,322.55 455.738,324.866 456.264,327.137 456.789,329.362 457.315,331.54 457.841,333.671 458.367,335.753 458.892,337.787 459.418,339.77
459.944,341.704 460.469,343.586 460.995,345.416 461.521,347.194 462.046,348.918 462.572,350.589 463.098,352.206 463.624,353.767 464.149,355.274 464.675,356.724
465.201,358.118 465.726,359.455 466.252,360.734 466.778,361.955 467.304,363.118 467.829,364.223 468.355,365.268 468.881,366.253 469.406,367.179 469.932,368.044
470.458,368.849 470.984,369.594 471.509,370.277 472.035,370.898 472.561,371.459 473.086,371.957 473.612,372.394 474.138,372.768 474.663,373.08 475.189,373.33
475.715,373.518 476.241,373.643 476.766,373.705 477.292,373.705 477.818,373.643 478.343,373.518 478.869,373.33 479.395,373.08 479.921,372.768 480.446,372.394
480.972,371.957 481.498,371.459 482.023,370.898 482.549,370.277 483.075,369.594 483.601,368.849 484.126,368.044 484.652,367.179 485.178,366.253 485.703,365.268
486.229,364.223 486.755,363.118 487.28,361.955 487.806,360.734 488.332,359.455 488.858,358.118 489.383,356.724 489.909,355.274 490.435,353.767 490.96,352.206
491.486,350.589 492.012,348.918 492.538,347.194 493.063,345.416 493.589,343.586 494.115,341.704 494.64,339.77 495.166,337.787 495.692,335.753 496.217,333.671
496.743,331.54 497.269,329.362 497.795,327.137 498.32,324.866 498.846,322.55 499.372,320.19 499.897,317.786 500.423,315.339 500.949,312.851 501.475,310.322
502,307.753 502.526,305.144 503.052,302.498 503.577,299.814 504.103,297.095 504.629,294.34 505.155,291.55 505.68,288.728 506.206,285.873 506.732,282.987
507.257,280.07 507.783,277.125 508.309,274.151 508.834,271.15 509.36,268.123 509.886,265.071 510.412,261.995 510.937,258.897 511.463,255.777 511.989,252.636
512.514,249.476 513.04,246.297 513.566,243.102 514.092,239.89 514.617,236.663 515.143,233.423 515.669,230.17 516.194,226.906 516.72,223.631 517.246,220.347
517.772,217.055 518.297,213.757 518.823,210.453 519.349,207.144 519.874,203.832 520.4,200.519 520.926,197.204 521.451,193.889 521.977,190.576 522.503,187.266
523.029,183.96 523.554,180.658 524.08,177.363 524.606,174.075 525.131,170.796 525.657,167.526 526.183,164.267 526.709,161.02 527.234,157.787 527.76,154.567
528.286,151.363 528.811,148.176 529.337,145.007 529.863,141.856 530.389,138.726 530.914,135.616 531.44,132.529 531.966,129.465 532.491,126.425 533.017,123.411
533.543,120.424 534.068,117.464 534.594,114.533 535.12,111.631 535.646,108.761 536.171,105.922 536.697,103.116 537.223,100.343 537.748,97.6059 538.274,94.9041
538.8,92.239 539.326,89.6116 539.851,87.0228 540.377,84.4736 540.903,81.9647 541.428,79.4972 541.954,77.0718 542.48,74.6896 543.005,72.3512 543.531,70.0576
544.057,67.8095 544.583,65.6078 545.108,63.4533 545.634,61.3466 546.16,59.2887 546.685,57.2801 547.211,55.3216 547.737,53.4139 548.263,51.5577 548.788,49.7537
549.314,48.0024 549.84,46.3046 550.365,44.6608 550.891,43.0715 551.417,41.5375 551.943,40.0591 552.468,38.637 552.994,37.2717 553.52,35.9636 554.045,34.7131
554.571,33.5209 555.097,32.3871 555.622,31.3124 556.148,30.297 556.674,29.3413 557.2,28.4457 557.725,27.6104 558.251,26.8359 558.777,26.1222 559.302,25.4698
559.828,24.8788 560.354,24.3495 560.88,23.8819 561.405,23.4764 561.931,23.133 562.457,22.8519 562.982,22.6332 563.508,22.4769 564.034,22.3831 564.56,22.3518
"/>
<polygon clip-path="url(#clip4100)" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691
" fill="#ffffff" fill-opacity="1"/>
<polyline clip-path="url(#clip4100)" style="stroke:#000000; stroke-width:1; stroke-opacity:1; fill:none" points="
489.608,78.051 562.315,78.051 562.315,32.691 489.608,32.691 489.608,78.051
"/>
<polyline clip-path="url(#clip4100)" style="stroke:#009af9; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,47.811 531.608,47.811
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 52.311)" x="537.608" y="52.311">y1</text>
</g>
<polyline clip-path="url(#clip4100)" style="stroke:#e26f46; stroke-width:1; stroke-opacity:1; fill:none" points="
495.608,62.931 531.608,62.931
"/>
<g clip-path="url(#clip4100)">
<text style="fill:#000000; fill-opacity:1; font-family:Arial,Helvetica Neue,Helvetica,sans-serif; font-size:12; text-anchor:start;" transform="rotate(0, 537.608, 67.431)" x="537.608" y="67.431">y2</text>
</g>
</svg>
</div><h3><a class="nav-anchor" id="Custom-processing-1" href="#Custom-processing-1">Custom processing</a></h3><p>It is possible to give Literate custom pre- and post-processing functions. For example, here we insert two placeholders, which we will replace with something else at time of generation. We have here replaced our placeholders with <code>z</code> and <code>1.0 + 2.0im</code>:</p><div><pre><code class="language-julia">z = 1.0 + 2.0im</code></pre><pre><code class="language-none">1.0 + 2.0im</code></pre></div><h3><a class="nav-anchor" id="documenter-interaction-1" href="#documenter-interaction-1">Documenter.jl interaction</a></h3><p>In the source file it is possible to use Documenter.jl style references, such as <code>@ref</code> and <code>@id</code>. These will be filtered out in the notebook output. For example, <a href="example.html#documenter-interaction-1">here is a link</a>, but it is only visible as a link if you are reading the markdown output. We can also use equations:</p><div>\[\int_\Omega \nabla v \cdot \nabla u\ \mathrm{d}\Omega = \int_\Omega v f\ \mathrm{d}\Omega\]</div><p>using Documenters math syntax. Documenters syntax is automatically changed to <code>\begin{equation} ... \end{equation}</code> in the notebook output to display correctly.</p><p><em>This page was generated using <a href="https://github.com/fredrikekre/Literate.jl">Literate.jl</a>.</em></p><footer><hr/><a class="previous" href="../documenter.html"><span class="direction">Previous</span><span class="title"><strong>6.</strong> Interaction with Documenter.jl</span></a></footer></article></body></html>

952
v1.0.1/generated/example.ipynb

File diff suppressed because one or more lines are too long

24
v1.0.1/generated/example.jl

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
x = 1//3
y = 2//5
x + y
x * y
function foo()
println("This string is printed to stdout.")
return [1, 2, 3, 4]
end
foo()
using Plots
x = range(0, stop=6π, length=1000)
y1 = sin.(x)
y2 = cos.(x)
plot(x, [y1, y2])
z = 1.0 + 2.0im
# This file was generated using Literate.jl, https://github.com/fredrikekre/Literate.jl

100
v1.0.1/generated/notebook.ipynb

@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
{
"cells": [
{
"outputs": [],
"cell_type": "markdown",
"source": [
"# Rational numbers\n",
"\n",
"In julia rational numbers can be constructed with the `//` operator.\n",
"Lets define two rational numbers, `x` and `y`:"
],
"metadata": {}
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "1//3"
},
"metadata": {},
"execution_count": 1
}
],
"cell_type": "code",
"source": [
"x = 1//3"
],
"metadata": {},
"execution_count": 1
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "2//5"
},
"metadata": {},
"execution_count": 2
}
],
"cell_type": "code",
"source": [
"y = 2//5"
],
"metadata": {},
"execution_count": 2
},
{
"outputs": [],
"cell_type": "markdown",
"source": [
"When adding `x` and `y` together we obtain a new rational number:"
],
"metadata": {}
},
{
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "11//15"
},
"metadata": {},
"execution_count": 3
}
],
"cell_type": "code",
"source": [
"z = x + y"
],
"metadata": {},
"execution_count": 3
},
{
"outputs": [],
"cell_type": "markdown",
"source": [
"*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
],
"metadata": {}
}
],
"nbformat_minor": 3,
"metadata": {
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.0.0"
},
"kernelspec": {
"name": "julia-1.0",
"display_name": "Julia 1.0.0",
"language": "julia"
}
},
"nbformat": 4
}

6
v1.0.1/generated/outputformats.jl

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
x = 1//3
y = 2//5
z = x + y

2
v1.0.1/index.html

File diff suppressed because one or more lines are too long

38
v1.0.1/outputformats.html

File diff suppressed because one or more lines are too long

12
v1.0.1/outputformats.jl

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
# # Rational numbers
#
# In julia rational numbers can be constructed with the `//` operator.
# Lets define two rational numbers, `x` and `y`:
x = 1//3
#-
y = 2//5
# When adding `x` and `y` together we obtain a new rational number:
z = x + y

29
v1.0.1/pipeline.html

File diff suppressed because one or more lines are too long

2
v1.0.1/search.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Search · Literate.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><a href="index.html"><img class="logo" src="assets/logo.png" alt="Literate.jl logo"/></a><h1>Literate.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="index.html"><strong>1.</strong> Introduction</a></li><li><a class="toctext" href="fileformat.html"><strong>2.</strong> File Format</a></li><li><a class="toctext" href="pipeline.html"><strong>3.</strong> Processing pipeline</a></li><li><a class="toctext" href="outputformats.html"><strong>4.</strong> Output Formats</a></li><li><a class="toctext" href="customprocessing.html"><strong>5.</strong> Custom pre- and post-processing</a></li><li><a class="toctext" href="documenter.html"><strong>6.</strong> Interaction with Documenter.jl</a></li><li><a class="toctext" href="generated/example.html"><strong>7.</strong> Example</a></li></ul></nav><article><header><nav><ul><li>Search</li></ul></nav><hr/><div id="topbar"><span>Search</span><a class="fa fa-bars" href="#"></a></div></header><h1>Search</h1><p id="search-info">Number of results: <span id="search-results-number">loading...</span></p><ul id="search-results"></ul></article></body><script src="search_index.js"></script><script src="assets/search.js"></script></html>

307
v1.0.1/search_index.js

@ -0,0 +1,307 @@ @@ -0,0 +1,307 @@
var documenterSearchIndex = {"docs": [
{
"location": "index.html#",
"page": "1. Introduction",
"title": "1. Introduction",
"category": "page",
"text": ""
},
{
"location": "index.html#**1.**-Introduction-1",
"page": "1. Introduction",
"title": "1. Introduction",
"category": "section",
"text": "Welcome to the documentation for Literate – a simplistic package for Literate Programming."
},
{
"location": "index.html#What?-1",
"page": "1. Introduction",
"title": "What?",
"category": "section",
"text": "Literate is a package that generates markdown pages (for e.g. Documenter.jl), and Jupyter notebooks, from the same source file. There is also an option to \"clean\" the source from all metadata, and produce a pure Julia script.The main design goal is simplicity. It should be simple to use, and the syntax should be simple. In short, all you have to do is to write a commented julia script!The public interface consists mainly of three functions, all of which take the same script file as input, but generate different output:Literate.markdown: generates a markdown file\nLiterate.notebook: generates an (optionally executed) notebook\nLiterate.script: generates a plain script file, removing all metadata and special syntax."
},
{
"location": "index.html#Why?-1",
"page": "1. Introduction",
"title": "Why?",
"category": "section",
"text": "Examples are (probably) the best way to showcase your awesome package, and examples are often the best way for a new user to learn how to use it. It is therefore important that the documentation of your package contains examples for users to read and study. However, people are different, and we all prefer different ways of trying out a new package. Some people wants to RTFM, others want to explore the package interactively in, for example, a notebook, and some people wants to study the source code. The aim of Literate is to make it easy to give the user all of these options, while still keeping maintenance to a minimum.It is quite common that packages have \"example notebooks\" to showcase the package. Notebooks are great for showcasing a package, but they are not so great with version control, like git. The reason being that a notebook is a very \"rich\" format since it contains output and other metadata. Changes to the notebook thus result in large diffs, which makes it harder to review the actual changes.It is also common that packages include examples in the documentation, for example by using Documenter.jl @example-blocks. This is also great, but it is not quite as interactive as a notebook, for the users who prefer that.Literate tries to solve the problems above by creating the output as a part of the doc build. Literate generates the output based on a single source file which makes it easier to maintain, test, and keep the manual and your example notebooks in sync."
},
{
"location": "fileformat.html#",
"page": "2. File Format",
"title": "2. File Format",
"category": "page",
"text": ""
},
{
"location": "fileformat.html#**2.**-File-Format-1",
"page": "2. File Format",
"title": "2. File Format",
"category": "section",
"text": "The source file format for Literate is a regular, commented, julia (.jl) scripts. The idea is that the scripts also serve as documentation on their own and it is also simple to include them in the test-suite, with e.g. include, to make sure the examples stay up do date with other changes in your package."
},
{
"location": "fileformat.html#Syntax-1",
"page": "2. File Format",
"title": "2.1. Syntax",
"category": "section",
"text": "The basic syntax is simple:lines starting with # are treated as markdown,\nall other lines are treated as julia code.Leading whitespace is allowed before #, but it will be removed when generating the output. Since #-lines is treated as markdown we can not use that for regular julia comments, for this you can instead use ##, which will render as # in the output.Lets look at a simple example:# # Rational numbers\n#\n# In julia rational numbers can be constructed with the `//` operator.\n# Lets define two rational numbers, `x` and `y`:\n\nx = 1//3\ny = 2//5\n\n# When adding `x` and `y` together we obtain a new rational number:\n\nz = x + yIn the lines starting with # we can use regular markdown syntax, for example the # used for the heading and the backticks for formatting code. The other lines are regular julia code. We note a couple of things:The script is valid julia, which means that we can include it and the example will run (for example in the test/runtests.jl script, to include the example in the test suite).\nThe script is \"self-explanatory\", i.e. the markdown lines works as comments and thus serve as good documentation on its own.For simple use this is all you need to know. The following additional special syntax can also be used:#md, #nb, #jl, #src: tags to filter lines, see Filtering Lines,\n#-: tag to manually control chunk-splits, see Custom control over chunk splits.There is also some default convenience replacements that will always be performed, see Default Replacements."
},
{
"location": "fileformat.html#Filtering-Lines-1",
"page": "2. File Format",
"title": "2.2. Filtering Lines",
"category": "section",
"text": "It is often useful to filter out lines in the source depending on the output format. For this purpose there are a number of \"tokens\" that can be used to mark the purpose of certain lines:#md: line exclusive to markdown output,\n#nb: line exclusive to notebook output,\n#jl: line exclusive to script output,\n#src: line exclusive to the source code and thus filtered out unconditionally.Lines starting with one of these tokens are filtered out in the preprocessing step.Suppose, for example, that we want to include a docstring within a @docs block using Documenter. Obviously we don\'t want to include this in the notebook, since @docs is Documenter syntax that the notebook will not understand. This is a case where we can prepend #md to those lines:#md # ```@docs\n#md # Literate.markdown\n#md # Literate.notebook\n#md # Literate.markdown\n#md # ```The lines in the example above would be filtered out in the preprocessing step, unless we are generating a markdown file. When generating a markdown file we would simple remove the leading #md from the lines. Beware that the space after the tag is also removed.The #src token can also be placed at the end of a line. This is to make it possible to have code lines exclusive to the source code, and not just comment lines. For example, if the source file is included in the test suite we might want to add a @test at the end without this showing up in the outputs:using Test #src\n@test result == expected_result #src"
},
{
"location": "fileformat.html#Default-Replacements-1",
"page": "2. File Format",
"title": "2.3. Default Replacements",
"category": "section",
"text": "The following convenience \"macros\" are always expanded:@__NAME__\nexpands to the name keyword argument to Literate.markdown, Literate.notebook and Literate.script (defaults to the filename of the input file).\n@__REPO__ROOT_URL__\nexpands to https://github.com/$(ENV[\"TRAVIS_REPO_SLUG\"])/blob/master/ and is a convenient way to use when you want to link to files outside the doc-build directory. For example @__REPO__ROOT_URL__src/Literate.jl would link to the source of the Literate module.\n@__NBVIEWER_ROOT_URL__\nexpands to https://nbviewer.jupyter.org/github/$(ENV[\"TRAVIS_REPO_SLUG\"])/blob/gh-pages/$(folder)/ where folder is the folder that Documenter.deploydocs deploys too. This can be used if you want a link that opens the generated notebook in http://nbviewer.jupyter.org/."
},
{
"location": "pipeline.html#",
"page": "3. Processing pipeline",
"title": "3. Processing pipeline",
"category": "page",
"text": ""
},
{
"location": "pipeline.html#**3.**-Processing-pipeline-1",
"page": "3. Processing pipeline",
"title": "3. Processing pipeline",
"category": "section",
"text": "The generation of output follows the same pipeline for all output formats:Pre-processing\nParsing\nDocument generation\nPost-processing\nWriting to file"
},
{
"location": "pipeline.html#Pre-processing-1",
"page": "3. Processing pipeline",
"title": "3.1. Pre-processing",
"category": "section",
"text": "The first step is pre-processing of the input file. The file is read to a String. The first processing step is to apply the user specified pre-processing function, see Custom pre- and post-processing.The next step is to perform all of the built-in default replacements. CRLF style line endings (\"\\r\\n\") are replaced with LF line endings (\"\\n\") to simplify internal processing. Next, line filtering is performed, see Filtering Lines, meaning that lines starting with #md, #nb or #jl are handled (either just the token itself is removed, or the full line, depending on the output target). The last pre-processing step is to expand the convenience \"macros\" described in Default Replacements is expanded."
},
{
"location": "pipeline.html#Parsing-1",
"page": "3. Processing pipeline",
"title": "3.2. Parsing",
"category": "section",
"text": "After the preprocessing the file is parsed. The first step is to categorize each line and mark them as either markdown or code according to the rules described in the Syntax section. Lets consider the example from the previous section with each line categorized:# # Rational numbers <- markdown\n# <- markdown\n# In julia rational numbers can be constructed with the `//` operator. <- markdown\n# Lets define two rational numbers, `x` and `y`: <- markdown\n <- code\nx = 1 // 3 <- code\ny = 2 // 5 <- code\n <- code\n# When adding `x` and `y` together we obtain a new rational number: <- markdown\n <- code\nz = x + y <- codeIn the next step the lines are grouped into \"chunks\" of markdown and code. This is done by simply collecting adjacent lines of the same \"type\" into chunks:# # Rational numbers ┐\n# │\n# In julia rational numbers can be constructed with the `//` operator. │ markdown\n# Lets define two rational numbers, `x` and `y`: ┘\n ┐\nx = 1 // 3 │\ny = 2 // 5 │ code\n ┘\n# When adding `x` and `y` together we obtain a new rational number: ] markdown\n ┐\nz = x + y ┘ codeIn the last parsing step all empty leading and trailing lines for each chunk are removed, but empty lines within the same block are kept. The leading # tokens are also removed from the markdown chunks. Finally we would end up with the following 4 chunks:Chunks #1:# Rational numbers\n\nIn julia rational numbers can be constructed with the `//` operator.\nLets define two rational numbers, `x` and `y`:Chunk #2:x = 1 // 3\ny = 2 // 5Chunk #3:When adding `x` and `y` together we obtain a new rational number:Chunk #4:z = x + yIt is then up to the Document generation step to decide how these chunks should be treated."
},
{
"location": "pipeline.html#Custom-control-over-chunk-splits-1",
"page": "3. Processing pipeline",
"title": "Custom control over chunk splits",
"category": "section",
"text": "Sometimes it is convenient to be able to manually control how the chunks are split. For example, if you want to split a block of code into two, such that they end up in two different @example blocks or notebook cells. The #- token can be used for this purpose. All lines starting with #- are used as \"chunk-splitters\":x = 1 // 3\ny = 2 // 5\n#-\nz = x + yThe example above would result in two consecutive code-chunks.tip: Tip\nThe rest of the line, after #-, is discarded, so it is possible to use e.g. #------------- as a chunk splitter, which may make the source code more readable."
},
{
"location": "pipeline.html#Document-generation-1",
"page": "3. Processing pipeline",
"title": "3.3. Document generation",
"category": "section",
"text": "After the parsing it is time to generate the output. What is done in this step is very different depending on the output target, and it is describe in more detail in the Output format sections: Markdown Output, Notebook Output and Script Output. Using the default settings, the following is happening:Markdown output: markdown chunks are printed as-is, code chunks are put inside a code fence (defaults to @example-blocks),\nNotebook output: markdown chunks are printed in markdown cells, code chunks are put in code cells,\nScript output: markdown chunks are discarded, code chunks are printed as-is."
},
{
"location": "pipeline.html#Post-processing-1",
"page": "3. Processing pipeline",
"title": "3.4. Post-processing",
"category": "section",
"text": "When the document is generated the user, again, has the option to hook-into the generation with a custom post-processing function. The reason is that one might want to change things that are only visible in the rendered document. See Custom pre- and post-processing."
},
{
"location": "pipeline.html#Writing-to-file-1",
"page": "3. Processing pipeline",
"title": "3.5. Writing to file",
"category": "section",
"text": "The last step of the generation is writing to file. The result is written to $(outputdir)/$(name)(.md|.ipynb|.jl) where outputdir is the output directory supplied by the user (for example docs/generated), and name is a user supplied filename. It is recommended to add the output directory to .gitignore since the idea is that the generated documents will be generated as part of the build process rather than beeing files in the repo."
},
{
"location": "outputformats.html#",
"page": "4. Output Formats",
"title": "4. Output Formats",
"category": "page",
"text": ""
},
{
"location": "outputformats.html#Output-Formats-1",
"page": "4. Output Formats",
"title": "4. Output Formats",
"category": "section",
"text": "When the source is parsed, and have been processed it is time to render the output. We will consider the following source snippet:import Markdown\nMarkdown.parse(\"```julia\\n\" * rstrip(read(\"outputformats.jl\", String)) * \"\\n```\")and see how this is rendered in each of the output formats."
},
{
"location": "outputformats.html#Literate.markdown",
"page": "4. Output Formats",
"title": "Literate.markdown",
"category": "function",
"text": "Literate.markdown(inputfile, outputdir; kwargs...)\n\nGenerate a markdown file from inputfile and write the result to the directoryoutputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .md. name is also used to name all the @example blocks, and to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that tells if the output is intended to use with Documenter.jl. Defaults to true. See the the manual section on Interaction with Documenter.\ncodefence: A Pair of opening and closing code fence. Defaults to\n\"```@example $(name)\" => \"```\"\nif documenter = true and\n\"```julia\" => \"```\"\nif documenter = false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Markdown-Output-1",
"page": "4. Output Formats",
"title": "4.1. Markdown Output",
"category": "section",
"text": "The (default) markdown output of the source snippet above is as followsimport Markdown\nfile = joinpath(@__DIR__, \"../src/generated/name.md\")\nstr = \"````markdown\\n\" * rstrip(read(file, String)) * \"\\n````\"\nrm(file)\nMarkdown.parse(str)We note that lines starting with # are printed as regular markdown, and the code lines have been wrapped in @example blocks. We also note that an @meta block have been added, that sets the EditURL variable. This is used by Documenter to redirect the \"Edit on GitHub\" link for the page, see Interaction with Documenter.Some of the output rendering can be controlled with keyword arguments to Literate.markdown:Literate.markdown"
},
{
"location": "outputformats.html#Literate.notebook",
"page": "4. Output Formats",
"title": "Literate.notebook",
"category": "function",
"text": "Literate.notebook(inputfile, outputdir; kwargs...)\n\nGenerate a notebook from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .ipynb. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\nexecute: a boolean deciding if the generated notebook should also be executed or not. Defaults to true. The current working directory is set to outputdir when executing the notebook.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during notebook generation. Defaults to true. See the the manual section on Interaction with Documenter.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Notebook-Output-1",
"page": "4. Output Formats",
"title": "4.2. Notebook Output",
"category": "section",
"text": "The (default) notebook output of the source snippet can be seen here: notebook.ipynb.We note that lines starting with # are placed in markdown cells, and the code lines have been placed in code cells. By default the notebook is also executed and output cells populated. The current working directory is set to the specified output directory the notebook is executed. Some of the output rendering can be controlled with keyword arguments to Literate.notebook:Literate.notebook"
},
{
"location": "outputformats.html#Literate.script",
"page": "4. Output Formats",
"title": "Literate.script",
"category": "function",
"text": "Literate.script(inputfile, outputdir; kwargs...)\n\nGenerate a plain script file from inputfile and write the result to outputdir.\n\nKeyword arguments:\n\nname: name of the output file, excluding .jl. name is also used to replace @__NAME__. Defaults to the filename of inputfile.\npreprocess, postprocess: custom pre- and post-processing functions, see the Custom pre- and post-processing section of the manual. Defaults to identity.\ndocumenter: boolean that says if the source contains Documenter.jl specific things to filter out during script generation. Defaults to true. See the the manual section on Interaction with Documenter.\nkeep_comments: boolean that, if set to true, keeps markdown lines as comments in the output script. Defaults to false.\ncredit: boolean that controls the addition of This file was generated with Literate.jl ... to the bottom of the page. If you find Literate.jl useful then feel free to keep this to the default, which is true.\n\n\n\n\n\n"
},
{
"location": "outputformats.html#Script-Output-1",
"page": "4. Output Formats",
"title": "4.3. Script Output",
"category": "section",
"text": "The (default) script output of the source snippet above is as followsimport Markdown\nfile = joinpath(@__DIR__, \"../src/generated/outputformats.jl\")\nstr = \"```julia\\n\" * rstrip(read(file, String)) * \"\\n```\"\nrm(file)\nMarkdown.parse(str)We note that lines starting with # are removed and only the code lines have been kept. Some of the output rendering can be controlled with keyword arguments to Literate.script:Literate.script"
},
{
"location": "customprocessing.html#",
"page": "5. Custom pre- and post-processing",
"title": "5. Custom pre- and post-processing",
"category": "page",
"text": ""
},
{
"location": "customprocessing.html#Custom-pre-and-post-processing-1",
"page": "5. Custom pre- and post-processing",
"title": "5. Custom pre- and post-processing",
"category": "section",
"text": "Since all packages are different, and may have different demands on how to create a nice example for the documentation it is important that the package maintainer does not feel limited by the by default provided syntax that this package offers. While you can generally come a long way by utilizing line filtering there might be situations where you need to manually hook into the generation and change things. In Literate this is done by letting the user supply custom pre- and post-processing functions that may do transformation of the content.All of the generators (Literate.markdown, Literate.notebook and Literate.script) accepts preprocess and postprocess keyword arguments. The default \"transformation\" is the identity function. The input to the transformation functions is a String, and the output should be the transformed String.preprocess is sent the raw input that is read from the source file (modulo the default line ending transformation). postprocess is given different things depending on the output: For markdown and script output postprocess is given the content String just before writing it to the output file, but for notebook output postprocess is given the dictionary representing the notebook, since, in general, this is more useful.As an example, lets say we want to splice the date of generation into the output. We could of course update our source file before generating the docs, but we could instead use a preprocess function that splices the date into the source for us. Consider the following source file:# # Example\n# This example was generated DATEOFTODAY\n\nx = 1 // 3where DATEOFTODAY is a placeholder, to make it easier for our preprocess function to find the location. Now, lets define the preprocess function, for examplefunction update_date(content)\n content = replace(content, \"DATEOFTODAY\" => Date(now()))\n return content\nendwhich would replace every occurrence of \"DATEOFTODAY\" with the current date. We would now simply give this function to the generator, for example:Literate.markdown(\"input.jl\", \"outputdir\"; preprocess = update_date)"
},
{
"location": "documenter.html#",
"page": "6. Interaction with Documenter.jl",
"title": "6. Interaction with Documenter.jl",
"category": "page",
"text": ""
},
{
"location": "documenter.html#Interaction-with-Documenter-1",
"page": "6. Interaction with Documenter.jl",
"title": "6. Interaction with Documenter.jl",
"category": "section",
"text": "Literate can be used for any purpose, it spits out regular markdown files, and notebooks. Typically, though, these files will be used to render documentation for your package. The generators (Literate.markdown, Literate.notebook and Literate.script) supports a keyword argument documenter that lets the generator perform some extra things, keeping in mind that the source code have been written with Documenter.jl in mind. So lets take a look at what will happen if we set documenter = true:"
},
{
"location": "documenter.html#[Literate.markdown](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.markdown:",
"category": "section",
"text": "The default code fence will change from\n```julia\n# code\n```\nto Documenters @example blocks:\n```@examples $(name)\n# code\n```\nThe following @meta block will be added to the top of the markdown page, which redirects the \"Edit on GitHub\" link on the top of the page to the source file rather than the generated .md file:\n```@meta\nEditURL = \"$(relpath(inputfile, outputdir))\"\n```"
},
{
"location": "documenter.html#[Literate.notebook](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.notebook:",
"category": "section",
"text": "Documenter style @refs and @id will be removed. This means that you can use @ref and @id in the source file without them leaking to the notebook.\nDocumenter style markdown math\n```math\n\\int f dx\n```\nis replaced with notebook compatible\n\\begin{equation}\n\\int f dx\n\\end{equation}"
},
{
"location": "documenter.html#[Literate.script](@ref):-1",
"page": "6. Interaction with Documenter.jl",
"title": "Literate.script:",
"category": "section",
"text": "Documenter style @refs and @id will be removed. This means that you can use @ref and @id in the source file without them leaking to the script."
},
{
"location": "generated/example.html#",
"page": "7. Example",
"title": "7. Example",
"category": "page",
"text": "EditURL = \"https://github.com/fredrikekre/Literate.jl/blob/master/examples/example.jl\""
},
{
"location": "generated/example.html#**7.**-Example-1",
"page": "7. Example",
"title": "7. Example",
"category": "section",
"text": "This is an example generated with Literate based on this source file: example.jl. You are seeing the html-output which Documenter have generated based on a markdown file generated with Literate. The corresponding notebook can be found here: example.ipynb, and the plain script output can be found here: example.jl.It is recommended to have the source file available when reading this, to better understand how the syntax in the source file corresponds to the output you are seeing."
},
{
"location": "generated/example.html#Basic-syntax-1",
"page": "7. Example",
"title": "Basic syntax",
"category": "section",
"text": "The basic syntax for Literate is simple, lines starting with # is interpreted as markdown, and all the other lines are interpreted as code. Here is some code:x = 1//3\ny = 2//5In markdown sections we can use markdown syntax. For example, we can write text in italic font, text in bold font and use links.It is possible to filter out lines depending on the output using the #md, #nb, #jl and #src tags (see Filtering Lines):This line starts with #md and is thus only visible in the markdown output.The source file is parsed in chunks of markdown and code. Starting a line with #- manually inserts a chunk break. For example, if we want to display the output of the following operations we may insert #- in between. These two code blocks will now end up in different @example-blocks in the markdown output, and two different notebook cells in the notebook output.x + yx * y"
},
{
"location": "generated/example.html#Output-Capturing-1",
"page": "7. Example",
"title": "Output Capturing",
"category": "section",
"text": "Code chunks are by default placed in Documenter @example blocks in the generated markdown. This means that the output will be captured in a block when Documenter is building the docs. In notebooks the output is captured in output cells, if the execute keyword argument is set to true. Output to stdout/stderr is also captured.function foo()\n println(\"This string is printed to stdout.\")\n return [1, 2, 3, 4]\nend\n\nfoo()Both Documenter\'s @example block and notebooks can display images. Here is an example where we generate a simple plot using the Plots.jl packageusing Plots\nx = range(0, stop=6π, length=1000)\ny1 = sin.(x)\ny2 = cos.(x)\nplot(x, [y1, y2])"
},
{
"location": "generated/example.html#Custom-processing-1",
"page": "7. Example",
"title": "Custom processing",
"category": "section",
"text": "It is possible to give Literate custom pre- and post-processing functions. For example, here we insert two placeholders, which we will replace with something else at time of generation. We have here replaced our placeholders with z and 1.0 + 2.0im:z = 1.0 + 2.0im"
},
{
"location": "generated/example.html#documenter-interaction-1",
"page": "7. Example",
"title": "Documenter.jl interaction",
"category": "section",
"text": "In the source file it is possible to use Documenter.jl style references, such as @ref and @id. These will be filtered out in the notebook output. For example, here is a link, but it is only visible as a link if you are reading the markdown output. We can also use equations:int_Omega nabla v cdot nabla u mathrmdOmega = int_Omega v f mathrmdOmegausing Documenters math syntax. Documenters syntax is automatically changed to \\begin{equation} ... \\end{equation} in the notebook output to display correctly.This page was generated using Literate.jl."
},
]}

1
v1.0.1/siteinfo.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
var DOCUMENTER_CURRENT_VERSION = "v1.0.1";

2
versions.js

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
var DOC_VERSIONS = [
"stable",
"latest",
"release-1.0",
"v1.0.1",
"v1",
"v1.0",
"v1.0.0",

Loading…
Cancel
Save