Documentation for v1.2.0
105
v1.2.0/advanced/index.html
Normal file
43
v1.2.0/api/index.html
Normal file
BIN
v1.2.0/assets/advanced010.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
v1.2.0/assets/advanced011.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
v1.2.0/assets/advanced011b.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
v1.2.0/assets/advanced012.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
v1.2.0/assets/advanced013b.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
v1.2.0/assets/advanced014b.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
v1.2.0/assets/advanced014c.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
v1.2.0/assets/advanced014d.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
v1.2.0/assets/animation.gif
Normal file
|
After Width: | Height: | Size: 380 KiB |
BIN
v1.2.0/assets/basic000.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
v1.2.0/assets/basic001.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
v1.2.0/assets/basic002.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
v1.2.0/assets/basic003.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
v1.2.0/assets/basic004.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
v1.2.0/assets/basic005.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
v1.2.0/assets/basic006.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
v1.2.0/assets/basic007a.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
BIN
v1.2.0/assets/basic007b.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
v1.2.0/assets/basic008.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
v1.2.0/assets/basic008a.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
v1.2.0/assets/basic009a.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
v1.2.0/assets/basic009b.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
v1.2.0/assets/cairolatex.png
Normal file
|
After Width: | Height: | Size: 104 KiB |
260
v1.2.0/assets/documenter.js
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
// Generated by Documenter.jl
|
||||||
|
requirejs.config({
|
||||||
|
paths: {
|
||||||
|
'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min',
|
||||||
|
'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min',
|
||||||
|
'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
|
||||||
|
'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min',
|
||||||
|
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min',
|
||||||
|
'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min',
|
||||||
|
'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min',
|
||||||
|
'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min',
|
||||||
|
'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min',
|
||||||
|
},
|
||||||
|
shim: {
|
||||||
|
"highlight-julia": {
|
||||||
|
"deps": [
|
||||||
|
"highlight"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"katex-auto-render": {
|
||||||
|
"deps": [
|
||||||
|
"katex"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"headroom-jquery": {
|
||||||
|
"deps": [
|
||||||
|
"jquery",
|
||||||
|
"headroom"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"highlight-julia-repl": {
|
||||||
|
"deps": [
|
||||||
|
"highlight"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
|
||||||
|
$(document).ready(function() {
|
||||||
|
renderMathInElement(
|
||||||
|
document.body,
|
||||||
|
{
|
||||||
|
"delimiters": [
|
||||||
|
{
|
||||||
|
"left": "$",
|
||||||
|
"right": "$",
|
||||||
|
"display": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"left": "$$",
|
||||||
|
"right": "$$",
|
||||||
|
"display": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"left": "\\[",
|
||||||
|
"right": "\\]",
|
||||||
|
"display": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) {
|
||||||
|
$(document).ready(function() {
|
||||||
|
hljs.initHighlighting();
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
|
||||||
|
|
||||||
|
// Manages the top navigation bar (hides it when the user starts scrolling down on the
|
||||||
|
// mobile).
|
||||||
|
window.Headroom = Headroom; // work around buggy module loading?
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#documenter .docs-navbar').headroom({
|
||||||
|
"tolerance": {"up": 10, "down": 10},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery'], function($) {
|
||||||
|
|
||||||
|
// Modal settings dialog
|
||||||
|
$(document).ready(function() {
|
||||||
|
var settings = $('#documenter-settings');
|
||||||
|
$('#documenter-settings-button').click(function(){
|
||||||
|
settings.toggleClass('is-active');
|
||||||
|
});
|
||||||
|
// Close the dialog if X is clicked
|
||||||
|
$('#documenter-settings button.delete').click(function(){
|
||||||
|
settings.removeClass('is-active');
|
||||||
|
});
|
||||||
|
// Close dialog if ESC is pressed
|
||||||
|
$(document).keyup(function(e) {
|
||||||
|
if (e.keyCode == 27) settings.removeClass('is-active');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery'], function($) {
|
||||||
|
|
||||||
|
// Manages the showing and hiding of the sidebar.
|
||||||
|
$(document).ready(function() {
|
||||||
|
var sidebar = $("#documenter > .docs-sidebar");
|
||||||
|
var sidebar_button = $("#documenter-sidebar-button")
|
||||||
|
sidebar_button.click(function(ev) {
|
||||||
|
ev.preventDefault();
|
||||||
|
sidebar.toggleClass('visible');
|
||||||
|
if (sidebar.hasClass('visible')) {
|
||||||
|
// Makes sure that the current menu item is visible in the sidebar.
|
||||||
|
$("#documenter .docs-menu a.is-active").focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#documenter > .docs-main").bind('click', function(ev) {
|
||||||
|
if ($(ev.target).is(sidebar_button)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (sidebar.hasClass('visible')) {
|
||||||
|
sidebar.removeClass('visible');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
// Resizes the package name / sitename in the sidebar if it is too wide.
|
||||||
|
// Inspired by: https://github.com/davatron5000/FitText.js
|
||||||
|
$(document).ready(function() {
|
||||||
|
e = $("#documenter .docs-autofit");
|
||||||
|
function resize() {
|
||||||
|
var L = parseInt(e.css('max-width'), 10);
|
||||||
|
var L0 = e.width();
|
||||||
|
if(L0 > L) {
|
||||||
|
var h0 = parseInt(e.css('font-size'), 10);
|
||||||
|
e.css('font-size', L * h0 / L0);
|
||||||
|
// TODO: make sure it survives resizes?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// call once and then register events
|
||||||
|
resize();
|
||||||
|
$(window).resize(resize);
|
||||||
|
$(window).on('orientationchange', resize);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Scroll the navigation bar to the currently selected menu item
|
||||||
|
$(document).ready(function() {
|
||||||
|
var sidebar = $("#documenter .docs-menu").get(0);
|
||||||
|
var active = $("#documenter .docs-menu .is-active").get(0);
|
||||||
|
if(typeof active !== 'undefined') {
|
||||||
|
sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery'], function($) {
|
||||||
|
|
||||||
|
function set_theme(theme) {
|
||||||
|
var active = null;
|
||||||
|
var disabled = [];
|
||||||
|
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||||
|
var ss = document.styleSheets[i];
|
||||||
|
var themename = ss.ownerNode.getAttribute("data-theme-name");
|
||||||
|
if(themename === null) continue; // ignore non-theme stylesheets
|
||||||
|
// Find the active theme
|
||||||
|
if(themename === theme) active = ss;
|
||||||
|
else disabled.push(ss);
|
||||||
|
}
|
||||||
|
if(active !== null) {
|
||||||
|
active.disabled = false;
|
||||||
|
if(active.ownerNode.getAttribute("data-theme-primary") === null) {
|
||||||
|
document.getElementsByTagName('html')[0].className = "theme--" + theme;
|
||||||
|
} else {
|
||||||
|
document.getElementsByTagName('html')[0].className = "";
|
||||||
|
}
|
||||||
|
disabled.forEach(function(ss){
|
||||||
|
ss.disabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Store the theme in localStorage
|
||||||
|
if(typeof(window.localStorage) !== "undefined") {
|
||||||
|
window.localStorage.setItem("documenter-theme", theme);
|
||||||
|
} else {
|
||||||
|
console.error("Browser does not support window.localStorage");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Theme picker setup
|
||||||
|
$(document).ready(function() {
|
||||||
|
// onchange callback
|
||||||
|
$('#documenter-themepicker').change(function themepick_callback(ev){
|
||||||
|
var themename = $('#documenter-themepicker option:selected').attr('value');
|
||||||
|
set_theme(themename);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Make sure that the themepicker displays the correct theme when the theme is retrieved
|
||||||
|
// from localStorage
|
||||||
|
if(typeof(window.localStorage) !== "undefined") {
|
||||||
|
var theme = window.localStorage.getItem("documenter-theme");
|
||||||
|
if(theme !== null) {
|
||||||
|
$('#documenter-themepicker option').each(function(i,e) {
|
||||||
|
e.selected = (e.value === theme);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery'], function($) {
|
||||||
|
|
||||||
|
// update the version selector with info from the siteinfo.js and ../versions.js files
|
||||||
|
$(document).ready(function() {
|
||||||
|
var version_selector = $("#documenter .docs-version-selector");
|
||||||
|
var version_selector_select = $("#documenter .docs-version-selector select");
|
||||||
|
|
||||||
|
version_selector_select.change(function(x) {
|
||||||
|
target_href = version_selector_select.children("option:selected").get(0).value;
|
||||||
|
window.location.href = target_href;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 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_select.append(option);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof DOC_VERSIONS !== 'undefined') {
|
||||||
|
var existing_versions = version_selector_select.children("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_select.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_select.children("option").length > 0) {
|
||||||
|
version_selector.toggleClass("visible");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
BIN
v1.2.0/assets/logo.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
v1.2.0/assets/recipes001.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
v1.2.0/assets/recipes002.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
v1.2.0/assets/recipes002a.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
v1.2.0/assets/recipes007b.png
Normal file
|
After Width: | Height: | Size: 261 KiB |
BIN
v1.2.0/assets/recipes007c.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
247
v1.2.0/assets/search.js
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
// Generated by Documenter.jl
|
||||||
|
requirejs.config({
|
||||||
|
paths: {
|
||||||
|
'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min',
|
||||||
|
'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min',
|
||||||
|
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
require(['jquery', 'lunr', 'lodash'], function($, lunr, _) {
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
// 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*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$("#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, only, 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',
|
||||||
|
'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',{boost: 100})
|
||||||
|
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(){
|
||||||
|
searchresults = $('#documenter-search-results');
|
||||||
|
searchinfo = $('#documenter-search-info');
|
||||||
|
searchbox = $('#documenter-search-query');
|
||||||
|
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
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
searchinfo.text("Number of results: " + results.length)
|
||||||
|
searchresults.empty()
|
||||||
|
results.forEach(function(result) {
|
||||||
|
data = store[result.ref]
|
||||||
|
link = $('<a class="docs-label">'+data.title+'</a>')
|
||||||
|
link.attr('href', documenterBaseURL+'/'+result.ref)
|
||||||
|
cat = $('<span class="docs-category">('+data.category+')</span>')
|
||||||
|
li = $('<li>').append(link).append(" ").append(cat)
|
||||||
|
searchresults.append(li)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_search_box() {
|
||||||
|
querystring = searchbox.val()
|
||||||
|
update_search(querystring)
|
||||||
|
}
|
||||||
|
|
||||||
|
searchbox.keyup(_.debounce(update_search_box, 250))
|
||||||
|
searchbox.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'))
|
||||||
|
searchbox.val(search_query)
|
||||||
|
}
|
||||||
|
update_search_box();
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
BIN
v1.2.0/assets/sixelgd.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
7628
v1.2.0/assets/themes/documenter-dark.css
Normal file
7614
v1.2.0/assets/themes/documenter-light.css
Normal file
42
v1.2.0/assets/themeswap.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Small function to quickly swap out themes. Gets put into the <head> tag..
|
||||||
|
function set_theme_from_local_storage() {
|
||||||
|
// Browser does not support Web Storage, bail early.
|
||||||
|
if(typeof(window.localStorage) === "undefined") return;
|
||||||
|
// Get the user-picked theme from localStorage. May be `null`, which means the default
|
||||||
|
// theme.
|
||||||
|
var theme = window.localStorage.getItem("documenter-theme");
|
||||||
|
// Initialize a few variables for the loop:
|
||||||
|
//
|
||||||
|
// - active: will contain the index of the theme that should be active. Note that there
|
||||||
|
// is no guarantee that localStorage contains sane values. If `active` stays `null`
|
||||||
|
// we either could not find the theme or it is the default (primary) theme anyway.
|
||||||
|
// Either way, we then need to stick to the primary theme.
|
||||||
|
//
|
||||||
|
// - disabled: style sheets that should be disabled (i.e. all the theme style sheets
|
||||||
|
// that are not the currently active theme)
|
||||||
|
var active = null; var disabled = [];
|
||||||
|
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||||
|
var ss = document.styleSheets[i];
|
||||||
|
// The <link> tag of each style sheet is expected to have a data-theme-name attribute
|
||||||
|
// which must contain the name of the theme. The names in localStorage much match this.
|
||||||
|
var themename = ss.ownerNode.getAttribute("data-theme-name");
|
||||||
|
// attribute not set => non-theme stylesheet => ignore
|
||||||
|
if(themename === null) continue;
|
||||||
|
// To distinguish the default (primary) theme, it needs to have the data-theme-primary
|
||||||
|
// attribute set.
|
||||||
|
var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
|
||||||
|
// If we find a matching theme (and it's not the default), we'll set active to non-null
|
||||||
|
if(!isprimary && themename === theme) active = i;
|
||||||
|
// Store the style sheets of inactive themes so that we could disable them
|
||||||
|
if(themename !== theme) disabled.push(ss);
|
||||||
|
}
|
||||||
|
if(active !== null) {
|
||||||
|
// If we did find an active theme, we'll (1) add the theme--$(theme) class to <html>
|
||||||
|
document.getElementsByTagName('html')[0].className = "theme--" + theme;
|
||||||
|
// and (2) disable all the other theme stylesheets
|
||||||
|
disabled.forEach(function(ss){
|
||||||
|
ss.disabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set_theme_from_local_storage();
|
||||||
96
v1.2.0/basic/index.html
Normal file
2
v1.2.0/examples/index.html
Normal file
2
v1.2.0/index.html
Normal file
5
v1.2.0/install/index.html
Normal file
59
v1.2.0/options/index.html
Normal file
34
v1.2.0/recipes/index.html
Normal file
24
v1.2.0/script1.gp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
reset session
|
||||||
|
$data1 << EOD
|
||||||
|
1 1
|
||||||
|
2 4
|
||||||
|
3 9
|
||||||
|
4 16
|
||||||
|
5 25
|
||||||
|
6 36
|
||||||
|
7 49
|
||||||
|
8 64
|
||||||
|
9 81
|
||||||
|
10 100
|
||||||
|
EOD
|
||||||
|
unset for [i=1:256] linetype i
|
||||||
|
set linetype 1 lc rgb '#E41A1C' lw 1.5 dt solid pt 1 ps 1.5
|
||||||
|
set linetype 2 lc rgb '#377EB8' lw 1.5 dt solid pt 2 ps 1.5
|
||||||
|
set linetype 3 lc rgb '#4DAF4A' lw 1.5 dt solid pt 3 ps 1.5
|
||||||
|
set linetype 4 lc rgb '#984EA3' lw 1.5 dt solid pt 4 ps 1.5
|
||||||
|
set linetype 5 lc rgb '#FF7F00' lw 1.5 dt solid pt 5 ps 1.5
|
||||||
|
set linetype cycle 5
|
||||||
|
|
||||||
|
plot \
|
||||||
|
$data1 w l
|
||||||
|
set output
|
||||||
14
v1.2.0/script2.gp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
reset session
|
||||||
|
unset for [i=1:256] linetype i
|
||||||
|
set linetype 1 lc rgb '#E41A1C' lw 1.5 dt solid pt 1 ps 1.5
|
||||||
|
set linetype 2 lc rgb '#377EB8' lw 1.5 dt solid pt 2 ps 1.5
|
||||||
|
set linetype 3 lc rgb '#4DAF4A' lw 1.5 dt solid pt 3 ps 1.5
|
||||||
|
set linetype 4 lc rgb '#984EA3' lw 1.5 dt solid pt 4 ps 1.5
|
||||||
|
set linetype 5 lc rgb '#FF7F00' lw 1.5 dt solid pt 5 ps 1.5
|
||||||
|
set linetype cycle 5
|
||||||
|
|
||||||
|
set size ratio -1
|
||||||
|
set autoscale fix
|
||||||
|
plot \
|
||||||
|
'./script2_data/jl_QQWcNJ' binary array=(300, 100) flipy with image notit
|
||||||
|
set output
|
||||||
BIN
v1.2.0/script2_data/jl_QQWcNJ
Normal file
2
v1.2.0/search/index.html
Normal file
@ -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 · Gnuplot.jl</title><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/5.11.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img src="../assets/logo.png" alt="Gnuplot.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">Gnuplot.jl</span></div><form class="docs-search" action><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../install/">Installation</a></li><li><a class="tocitem" href="../basic/">Basic usage</a></li><li><a class="tocitem" href="../advanced/">Advanced usage</a></li><li><a class="tocitem" href="../options/">Package options</a></li><li><a class="tocitem" href="../style/">Style guide</a></li><li><a class="tocitem" href="../terminals/">Gnuplot terminals</a></li><li><a class="tocitem" href="../recipes/">Plot recipes</a></li><li><a class="tocitem" href="../examples/">Examples</a></li><li><a class="tocitem" href="../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Search</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Search</a></li></ul></nav><div class="docs-right"><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article><p id="documenter-search-info">Loading search...</p><ul id="documenter-search-results"></ul></article></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Thursday 16 April 2020 22:52">Thursday 16 April 2020</span>. Using Julia version 1.4.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><script src="../search_index.js"></script><script src="../assets/search.js"></script></html>
|
||||||
3
v1.2.0/search_index.js
Normal file
18
v1.2.0/style/index.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Style guide · Gnuplot.jl</title><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/5.11.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img src="../assets/logo.png" alt="Gnuplot.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">Gnuplot.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../install/">Installation</a></li><li><a class="tocitem" href="../basic/">Basic usage</a></li><li><a class="tocitem" href="../advanced/">Advanced usage</a></li><li><a class="tocitem" href="../options/">Package options</a></li><li class="is-active"><a class="tocitem" href>Style guide</a></li><li><a class="tocitem" href="../terminals/">Gnuplot terminals</a></li><li><a class="tocitem" href="../recipes/">Plot recipes</a></li><li><a class="tocitem" href="../examples/">Examples</a></li><li><a class="tocitem" href="../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Style guide</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Style guide</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/gcalderone/Gnuplot.jl/blob/master/docs/src/style.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Style-Guide-1"><a class="docs-heading-anchor" href="#Style-Guide-1">Style Guide</a><a class="docs-heading-anchor-permalink" href="#Style-Guide-1" title="Permalink"></a></h1><p>The <strong>Gnuplot.jl</strong> loose syntax allows to create a plot using very different approaches. While this was one of the initial purposes for the package, it may lead to decreased code readability if not used judiciously.</p><p>Here I will summarize a few, non-mandatory, guidelines which allows to maintain a neat syntax and a high readability:</p><h3 id="Use-macros-without-parentheses-and-commas:-1"><a class="docs-heading-anchor" href="#Use-macros-without-parentheses-and-commas:-1">1 - Use macros without parentheses and commas:</a><a class="docs-heading-anchor-permalink" href="#Use-macros-without-parentheses-and-commas:-1" title="Permalink"></a></h3><p>The two most important symbols exported by the package (<code>@gp</code> and <code>@gsp</code>) are macros. As such they are supposed to be invoked without parentheses and commas. E.g. use:</p><pre><code class="language-julia">@gp x y "with lines"</code></pre><p>in place of</p><pre><code class="language-julia">@gp(x, y, "with lines")</code></pre><p>If you have very long lines you may split them in multiple statements using the <code>:-</code> symbol, which resembles both hyphenation in natural language and indentation for the plot-producing code:</p><pre><code class="language-julia">@gp "set grid" :-
|
||||||
|
@gp :- x y "with lines"</code></pre><p>Note that the trailing <code>:-</code> symbol is not mandatory. If omitted, the plot will be updated at each statement (rather than at the last one).</p><h3 id="Use-keywords-in-place-of-gnuplot-commands:-1"><a class="docs-heading-anchor" href="#Use-keywords-in-place-of-gnuplot-commands:-1">2 - Use keywords in place of gnuplot commands:</a><a class="docs-heading-anchor-permalink" href="#Use-keywords-in-place-of-gnuplot-commands:-1" title="Permalink"></a></h3><p>As discussed in <a href="../basic/#Keywords-for-common-commands-1">Keywords for common commands</a> several commonly used gnuplot commands can be replaced with a keyword. E.g. you can use</p><pre><code class="language-julia">@gp ... xrange=[-1,5] ...</code></pre><p>in place of</p><pre><code class="language-julia">@gp ... "set xrange [-1:5]" ...</code></pre><p>This help reducing the number of strings, as well as the associated interpolating characters (<code>$</code>), and results in a more concise syntax.</p><h3 id="Use-abbreviations-for-commands-and-keywords:-1"><a class="docs-heading-anchor" href="#Use-abbreviations-for-commands-and-keywords:-1">3 - Use abbreviations for commands and keywords:</a><a class="docs-heading-anchor-permalink" href="#Use-abbreviations-for-commands-and-keywords:-1" title="Permalink"></a></h3><p>Many gnuplot commands, as well as all keywords (see <a href="../basic/#Keywords-for-common-commands-1">Keywords for common commands</a>), can be abbreviated as long as the abbreviation is unambiguous. E.g., the following code:</p><pre><code class="language-julia">@gp "set grid" "set key left" "set logscale y"
|
||||||
|
@gp :- "set title 'Plot title'" "set label 'X label'" "set xrange [0:*]"
|
||||||
|
@gp :- x y "with lines"</code></pre><p>can be replaced with a shorter version:</p><pre><code class="language-julia">@gp "set grid" k="left" ylog=true
|
||||||
|
@gp :- tit="Plot title" xlab="X label" xr=[0,NaN]
|
||||||
|
@gp :- x y "w l"</code></pre><p>Besides being more idiomatic, the possibility to exploit abbreviations is of great importance when performing interactive data exploration.</p><p>Moreover, in many gnuplot examples and documentation it is very common to use abbreviations (i.e. <code>w l</code> in place of <code>with lines</code>) so there is no reason to avoid them in <strong>Gnuplot.jl</strong>.</p><h3 id="If-possible,-follow-the-*commands*-*data*-*plot-specs*-order-1"><a class="docs-heading-anchor" href="#If-possible,-follow-the-*commands*-*data*-*plot-specs*-order-1">4 - If possible, follow the <em>commands</em> -> <em>data</em> + <em>plot specs</em> order</a><a class="docs-heading-anchor-permalink" href="#If-possible,-follow-the-*commands*-*data*-*plot-specs*-order-1" title="Permalink"></a></h3><p>The two following examples produce exactly the same plot:</p><pre><code class="language-julia">x = -10.:10
|
||||||
|
@gp "set grid" "set multiplot layout 2,1"
|
||||||
|
@gp :- 1 x x.^2 "w l t 'f(x) = x^2" # first plot
|
||||||
|
@gp :- 2 x x.^3 "w l t 'f(x) = x^3" # second plot</code></pre><p>and</p><pre><code class="language-julia">@gp 2 x x.^3 "w l t 'f(x) = x^3" # second plot
|
||||||
|
@gp :- 1 x x.^2 "w l t 'f(x) = x^2" # first plot
|
||||||
|
@gp :- "set grid" "set multiplot layout 2,1"</code></pre><p>However, the first form appears more <em>logical</em> and easy to follow.</p><p>In analogy with previous example, even on single plot, the following form</p><pre><code class="language-julia">@gp "set grid"
|
||||||
|
@gp :- x x.^2 "w l t 'f(x) = x^2"</code></pre><p>should be preferred over</p><pre><code class="language-julia">@gp x x.^2 "w l t 'f(x) = x^2"
|
||||||
|
@gp :- "set grid"</code></pre><p>even if the output is exactly the same.</p><h3 id="Join-multiple-command-strings:-1"><a class="docs-heading-anchor" href="#Join-multiple-command-strings:-1">5 - Join multiple command strings:</a><a class="docs-heading-anchor-permalink" href="#Join-multiple-command-strings:-1" title="Permalink"></a></h3><p>Instead of specifying several commands as strings</p><pre><code class="language-julia">@gp :- "set key off" "set auto fix" "set size square"
|
||||||
|
@gp :- "set offsets graph .05, graph .05, graph .05, graph .05"
|
||||||
|
@gp :- "set border lw 1 lc rgb 'white'"</code></pre><p>join them in a single string using triple quotes and <code>;</code></p><pre><code class="language-julia">@gp :- """set key off; set auto fix; set size square;
|
||||||
|
set offsets graph .05, graph .05, graph .05, graph .05;
|
||||||
|
set border lw 1 lc rgb 'white'; """</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../options/">« Package options</a><a class="docs-footer-nextpage" href="../terminals/">Gnuplot terminals »</a></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Thursday 16 April 2020 22:52">Thursday 16 April 2020</span>. Using Julia version 1.4.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
|
||||||