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 surrounding the , while
+ * highlight.js applies the .hljs style directly to the tag.
+ */
+.hljs {
+ background-color: transparent;
+ padding: 0;
+}
+
+@media only screen and (max-width: 768px) {
+ nav.toc {
+ position: fixed;
+ 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;
+ box-shadow: 5px 0px 5px 0px rgb(210,210,210);
+ }
+
+ 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 {
+ 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;
+ }
+}
diff --git a/v1.0.3/assets/documenter.js b/v1.0.3/assets/documenter.js
new file mode 100644
index 0000000..761ae29
--- /dev/null
+++ b/v1.0.3/assets/documenter.js
@@ -0,0 +1,132 @@
+/*
+ * 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 = $("");
+ 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 = $("");
+ 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");
+ }
+
+ // Scroll the navigation bar to the currently selected menu item
+ $("nav.toc > ul").get(0).scrollTop = $(".current").get(0).offsetTop - $("nav.toc > ul").get(0).offsetTop;
+ })
+
+})
+
+// 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();
+ }
+ })
+})
diff --git a/v1.0.3/assets/logo.png b/v1.0.3/assets/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..73e1c94d32831ddaa2ac06c0b976e32adf1ea898
GIT binary patch
literal 36913
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
+// 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 = $('')
+ link.text(data.title)
+ link.attr('href', documenterBaseURL+'/'+result.ref)
+ cat = $('('+data.category+')')
+ 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();
+ })
+})
diff --git a/v1.0.3/customprocessing/index.html b/v1.0.3/customprocessing/index.html
new file mode 100644
index 0000000..48adc7c
--- /dev/null
+++ b/v1.0.3/customprocessing/index.html
@@ -0,0 +1,29 @@
+
+5. Custom pre- and post-processing · Literate.jl
5. Custom pre- and post-processing
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.
Example: Adding current date
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
+# This example was generated DATEOFTODAY
+
+x = 1 // 3
where DATEOFTODAY is a placeholder, to make it easier for our preprocess function to find the location. Now, lets define the preprocess function, for example
function update_date(content)
+ content = replace(content, "DATEOFTODAY" => Date(now()))
+ return content
+end
which 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)
Example: Replacing include calls with included code
Let's say that we have some individual example files file1, file2, ... etc. that are runnable and also following the style of Literate. These files could be for example used in the test suite of your package.
We want to group them all into a single page in our documentation, but we do not want to copy paste the content of file1, ... for robustness: the files are included in the test suite and some changes may occur to them. We want these changes to also be reflected in the documentation.
A very easy way to do this is using preprocess to interchange include statements with file content. First, create a runnable .jl following the format of Literate
# # Replace includes
+# This is an example to replace `include` calls with the actual file content.
+
+include("file1.jl")
+
+# Cool, we just saw the result of the above code snippet. Here is one more:
+
+include("file2.jl")
Let's say we have saved this file as examples.jl. Then, you want to properly define a pre-processing function:
function replace_includes(str)
+
+ included = ["file1.jl", "file2.jl"]
+
+ # Here the path loads the files from their proper directory,
+ # which may not be the directory of the `examples.jl` file!
+ path = "directory/to/example/files/"
+
+ for ex in included
+ content = read(path*ex, String)
+ str = replace(str, "include(\"$(ex)\")" => content)
+ end
+ return str
+end
(of course replace included with your respective files)
Finally, you simply pass this function to e.g. Literate.markdown as
Literate.markdown("examples.jl", "path/to/save/markdown";
+ name = "markdown_file_name", preprocess = replace_includes)
and you will see that in the final output file (here markdown_file_name.md) the include statements are replaced with the actual code to be included!
This approach is used for example in the documentation of the Julia package TimeseriesPrediction, see here and here for the generating script
diff --git a/v1.0.3/documenter/index.html b/v1.0.3/documenter/index.html
new file mode 100644
index 0000000..e8b7cb6
--- /dev/null
+++ b/v1.0.3/documenter/index.html
@@ -0,0 +1,12 @@
+
+6. Interaction with Documenter.jl · Literate.jl
6. Interaction with Documenter.jl
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:
Literate.markdown:
- The default code fence will change from
```julia
+# code
+```
to Documenters @example blocks:```@examples $(name)
+# code
+```
- The 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:```@meta
+EditURL = "$(relpath(inputfile, outputdir))"
+```
Literate.notebook:
- 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. - Documenter style markdown math
```math
+\int f dx
+```
is replaced with notebook compatible\begin{equation}
+\int f dx
+\end{equation}
Literate.script:
- 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.