build based on 371cec4

gh-pages
autodocs 2019-03-06 09:09:09 +00:00
parent 4151e52d82
commit 675b0f2590
25 changed files with 3532 additions and 1 deletions

2
stable
View File

@ -1 +1 @@
v0.4.1
v0.8.1

1
v0.8 Symbolic link
View File

@ -0,0 +1 @@
v0.8.1

63
v0.8.1/assets/arrow.svg Normal file
View File

@ -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

View File

@ -0,0 +1,601 @@
/*
* 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;
display: flex;
flex-flow: column nowrap;
overflow-y: auto;
padding: 1em 0 0 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;
flex-shrink: 0;
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 {
min-height: 2em;
overflow-y: auto;
margin: 0;
}
nav.toc > ul > li:last-child {
padding-bottom: 1em;
}
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;
}
nav.toc ul::-webkit-scrollbar {
width: .4em;
background: none;
}
nav.toc ul::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #c9c9c9;
}
nav.toc ul::-webkit-scrollbar-thumb:hover {
border-radius: 5px;
background: #aaaaaa;
}
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;
margin: 1em 0;
}
.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;
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;
}
}

132
v0.8.1/assets/documenter.js Normal file
View File

@ -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 = $("<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");
}
// 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();
}
})
})

250
v0.8.1/assets/search.js Normal file
View File

@ -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();
})
})

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,99 @@
---
title: FIR filter design with Julia
author: Matti Pastell
date: 21th April 2016
---
# Introduction
This an example of a julia script that can be published using
[Weave](http://mpastell.github.io/Weave.jl/latest/usage/).
The script can be executed normally using Julia
or published to HTML or pdf with Weave.
Text is written in markdown in lines starting with "`#'` " and code
is executed and results are included in the published document.
Notice that you don't need to define chunk options, but you can using
`#+`. just before code e.g. `#+ term=True, caption='Fancy plots.'`.
If you're viewing the published version have a look at the
[source](FIR_design_plots.jl) to see the markup.
# FIR Filter Design
We'll implement lowpass, highpass and ' bandpass FIR filters. If
you want to read more about DSP I highly recommend [The Scientist
and Engineer's Guide to Digital Signal
Processing](http://www.dspguide.com/) which is freely available
online.
## Calculating frequency response
DSP.jl package doesn't (yet) have a method to calculate the
the frequency response of a FIR filter so we define it:
```julia
using Plots, DSP
gr()
function FIRfreqz(b::Array, w = range(0, stop=π, length=1024))
n = length(w)
h = Array{ComplexF32}(undef, n)
sw = 0
for i = 1:n
for j = 1:length(b)
sw += b[j]*exp(-im*w[i])^-j
end
h[i] = sw
sw = 0
end
return h
end
```
## Design Lowpass FIR filter
Designing a lowpass FIR filter is very simple to do with DSP.jl, all you
need to do is to define the window length, cut off frequency and the
window. We will define a lowpass filter with cut off frequency at 5Hz for a signal
sampled at 20 Hz.
We will use the Hamming window, which is defined as:
$w(n) = \alpha - \beta\cos\frac{2\pi n}{N-1}$, where $\alpha=0.54$ and $\beta=0.46$
```julia
fs = 20
f = digitalfilter(Lowpass(5, fs = fs), FIRWindow(hamming(61)))
w = range(0, stop=pi, length=1024)
h = FIRfreqz(f, w)
```
## Plot the frequency and impulse response
The next code chunk is executed in term mode, see the [script](FIR_design.jl) for syntax.
```julia; term=true
h_db = log10.(abs.(h));
ws = w/pi*(fs/2)
```
```julia
plot(ws, h_db,
xlabel = "Frequency (Hz)", ylabel = "Magnitude (db)")
```
And again with default options
```julia
h_phase = unwrap(-atan.(imag.(h),real.(h)))
plot(ws, h_phase,
xlabel = "Frequency (Hz)", ylabel = "Phase (radians)")
```

View File

@ -0,0 +1,152 @@
---
title: FIR filter design with Julia
author: Matti Pastell
date: 21th April 2016
---
# Introduction
This an example of a julia script that can be published using
[Weave](http://mpastell.github.io/Weave.jl/latest/usage/).
The script can be executed normally using Julia
or published to HTML or pdf with Weave.
Text is written in markdown in lines starting with "`#'` " and code
is executed and results are included in the published document.
Notice that you don't need to define chunk options, but you can using
`#+`. just before code e.g. `#+ term=True, caption='Fancy plots.'`.
If you're viewing the published version have a look at the
[source](FIR_design_plots.jl) to see the markup.
# FIR Filter Design
We'll implement lowpass, highpass and ' bandpass FIR filters. If
you want to read more about DSP I highly recommend [The Scientist
and Engineer's Guide to Digital Signal
Processing](http://www.dspguide.com/) which is freely available
online.
## Calculating frequency response
DSP.jl package doesn't (yet) have a method to calculate the
the frequency response of a FIR filter so we define it:
~~~~{.julia}
using Plots, DSP
gr()
function FIRfreqz(b::Array, w = range(0, stop=π, length=1024))
n = length(w)
h = Array{ComplexF32}(undef, n)
sw = 0
for i = 1:n
for j = 1:length(b)
sw += b[j]*exp(-im*w[i])^-j
end
h[i] = sw
sw = 0
end
return h
end
~~~~~~~~~~~~~
~~~~
FIRfreqz (generic function with 2 methods)
~~~~
## Design Lowpass FIR filter
Designing a lowpass FIR filter is very simple to do with DSP.jl, all you
need to do is to define the window length, cut off frequency and the
window. We will define a lowpass filter with cut off frequency at 5Hz for a signal
sampled at 20 Hz.
We will use the Hamming window, which is defined as:
$w(n) = \alpha - \beta\cos\frac{2\pi n}{N-1}$, where $\alpha=0.54$ and $\beta=0.46$
~~~~{.julia}
fs = 20
f = digitalfilter(Lowpass(5, fs = fs), FIRWindow(hamming(61)))
w = range(0, stop=pi, length=1024)
h = FIRfreqz(f, w)
~~~~~~~~~~~~~
~~~~
1024-element Array{Complex{Float32},1}:
1.0f0 + 0.0f0im
0.99546844f0 + 0.095055714f0im
0.98191506f0 + 0.1892486f0im
0.95946306f0 + 0.28172377f0im
0.9283168f0 + 0.37164196f0im
0.8887594f0 + 0.45818728f0im
0.84115064f0 + 0.54057467f0im
0.7859234f0 + 0.618057f0im
0.72357976f0 + 0.6899319f0im
0.65468615f0 + 0.7555481f0im
0.00043952762f0 - 0.00041908873f0im
0.0005152718f0 - 0.00040521423f0im
0.0005873293f0 - 0.00037745363f0im
0.0006531789f0 - 0.0003367371f0im
0.0007105166f0 - 0.00028444792f0im
0.0007573364f0 - 0.00022237403f0im
0.0007920005f0 - 0.00015264557f0im
0.0008132961f0 - 7.766036f-5im
0.0008204784f0 - 3.1148685f-18im
~~~~
## Plot the frequency and impulse response
The next code chunk is executed in term mode, see the [script](FIR_design.jl) for syntax.
~~~~{.julia}
julia> h_db = log10.(abs.(h));
julia> ws = w/pi*(fs/2)
0.0:0.009775171065493646:10.0
~~~~~~~~~~~~~
~~~~{.julia}
plot(ws, h_db,
xlabel = "Frequency (Hz)", ylabel = "Magnitude (db)")
~~~~~~~~~~~~~
![](figures/FIR_design_4_1.png)\
And again with default options
~~~~{.julia}
h_phase = unwrap(-atan.(imag.(h),real.(h)))
plot(ws, h_phase,
xlabel = "Frequency (Hz)", ylabel = "Phase (radians)")
~~~~~~~~~~~~~
![](figures/FIR_design_5_1.png)\

View File

@ -0,0 +1,152 @@
---
title: FIR filter design with Julia
author: Matti Pastell
date: 21th April 2016
---
# Introduction
This an example of a julia script that can be published using
[Weave](http://mpastell.github.io/Weave.jl/latest/usage/).
The script can be executed normally using Julia
or published to HTML or pdf with Weave.
Text is written in markdown in lines starting with "`#'` " and code
is executed and results are included in the published document.
Notice that you don't need to define chunk options, but you can using
`#+`. just before code e.g. `#+ term=True, caption='Fancy plots.'`.
If you're viewing the published version have a look at the
[source](FIR_design_plots.jl) to see the markup.
# FIR Filter Design
We'll implement lowpass, highpass and ' bandpass FIR filters. If
you want to read more about DSP I highly recommend [The Scientist
and Engineer's Guide to Digital Signal
Processing](http://www.dspguide.com/) which is freely available
online.
## Calculating frequency response
DSP.jl package doesn't (yet) have a method to calculate the
the frequency response of a FIR filter so we define it:
~~~~{.julia}
using Plots, DSP
gr()
function FIRfreqz(b::Array, w = range(0, stop=π, length=1024))
n = length(w)
h = Array{ComplexF32}(undef, n)
sw = 0
for i = 1:n
for j = 1:length(b)
sw += b[j]*exp(-im*w[i])^-j
end
h[i] = sw
sw = 0
end
return h
end
~~~~~~~~~~~~~
~~~~
FIRfreqz (generic function with 2 methods)
~~~~
## Design Lowpass FIR filter
Designing a lowpass FIR filter is very simple to do with DSP.jl, all you
need to do is to define the window length, cut off frequency and the
window. We will define a lowpass filter with cut off frequency at 5Hz for a signal
sampled at 20 Hz.
We will use the Hamming window, which is defined as:
$w(n) = \alpha - \beta\cos\frac{2\pi n}{N-1}$, where $\alpha=0.54$ and $\beta=0.46$
~~~~{.julia}
fs = 20
f = digitalfilter(Lowpass(5, fs = fs), FIRWindow(hamming(61)))
w = range(0, stop=pi, length=1024)
h = FIRfreqz(f, w)
~~~~~~~~~~~~~
~~~~
1024-element Array{Complex{Float32},1}:
1.0f0 + 0.0f0im
0.99546844f0 + 0.095055714f0im
0.98191506f0 + 0.1892486f0im
0.95946306f0 + 0.28172377f0im
0.9283168f0 + 0.37164196f0im
0.8887594f0 + 0.45818728f0im
0.84115064f0 + 0.54057467f0im
0.7859234f0 + 0.618057f0im
0.72357976f0 + 0.6899319f0im
0.65468615f0 + 0.7555481f0im
0.00043952762f0 - 0.00041908873f0im
0.0005152718f0 - 0.00040521423f0im
0.0005873293f0 - 0.00037745363f0im
0.0006531789f0 - 0.0003367371f0im
0.0007105166f0 - 0.00028444792f0im
0.0007573364f0 - 0.00022237403f0im
0.0007920005f0 - 0.00015264557f0im
0.0008132961f0 - 7.766036f-5im
0.0008204784f0 - 3.1148685f-18im
~~~~
## Plot the frequency and impulse response
The next code chunk is executed in term mode, see the [script](FIR_design.jl) for syntax.
~~~~{.julia}
julia> h_db = log10.(abs.(h));
julia> ws = w/pi*(fs/2)
0.0:0.009775171065493646:10.0
~~~~~~~~~~~~~
~~~~{.julia}
plot(ws, h_db,
xlabel = "Frequency (Hz)", ylabel = "Magnitude (db)")
~~~~~~~~~~~~~
![](figures/FIR_design_4_1.png)\
And again with default options
~~~~{.julia}
h_phase = unwrap(-atan.(imag.(h),real.(h)))
plot(ws, h_phase,
xlabel = "Frequency (Hz)", ylabel = "Phase (radians)")
~~~~~~~~~~~~~
![](figures/FIR_design_5_1.png)\

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,85 @@
#' ---
#' title: FIR filter design with Julia
#' author: Matti Pastell
#' date: 21th April 2016
#' ---
#' # Introduction
#' This an example of a julia script that can be published using
#' [Weave](http://mpastell.github.io/Weave.jl/latest/usage/).
#' The script can be executed normally using Julia
#' or published to HTML or pdf with Weave.
#' Text is written in markdown in lines starting with "`#'` " and code
#' is executed and results are included in the published document.
#' Notice that you don't need to define chunk options, but you can using
#' `#+`. just before code e.g. `#+ term=True, caption='Fancy plots.'`.
#' If you're viewing the published version have a look at the
#' [source](FIR_design_plots.jl) to see the markup.
#' # FIR Filter Design
#' We'll implement lowpass, highpass and ' bandpass FIR filters. If
#' you want to read more about DSP I highly recommend [The Scientist
#' and Engineer's Guide to Digital Signal
#' Processing](http://www.dspguide.com/) which is freely available
#' online.
#' ## Calculating frequency response
#' DSP.jl package doesn't (yet) have a method to calculate the
#' the frequency response of a FIR filter so we define it:
using Plots, DSP
gr()
function FIRfreqz(b::Array, w = range(0, stop=π, length=1024))
n = length(w)
h = Array{ComplexF32}(undef, n)
sw = 0
for i = 1:n
for j = 1:length(b)
sw += b[j]*exp(-im*w[i])^-j
end
h[i] = sw
sw = 0
end
return h
end
#' ## Design Lowpass FIR filter
#' Designing a lowpass FIR filter is very simple to do with DSP.jl, all you
#' need to do is to define the window length, cut off frequency and the
#' window. We will define a lowpass filter with cut off frequency at 5Hz for a signal
#' sampled at 20 Hz.
#' We will use the Hamming window, which is defined as:
#' $w(n) = \alpha - \beta\cos\frac{2\pi n}{N-1}$, where $\alpha=0.54$ and $\beta=0.46$
fs = 20
f = digitalfilter(Lowpass(5, fs = fs), FIRWindow(hamming(61)))
w = range(0, stop=pi, length=1024)
h = FIRfreqz(f, w)
#' ## Plot the frequency and impulse response
#' The next code chunk is executed in term mode, see the [script](FIR_design.jl) for syntax.
#+ term=true
h_db = log10.(abs.(h));
ws = w/pi*(fs/2)
#+
plot(ws, h_db,
xlabel = "Frequency (Hz)", ylabel = "Magnitude (db)")
#' And again with default options
h_phase = unwrap(-atan.(imag.(h),real.(h)))
plot(ws, h_phase,
xlabel = "Frequency (Hz)", ylabel = "Phase (radians)")

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View 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>Function index · Weave.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"><h1>Weave.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search/"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../">Weave.jl - Scientific Reports Using Julia</a></li><li><a class="toctext" href="../getting_started/">Getting started</a></li><li><a class="toctext" href="../usage/">Using Weave</a></li><li><a class="toctext" href="../publish/">Publishing to html and pdf</a></li><li><a class="toctext" href="../chunk_options/">Chunk options</a></li><li><a class="toctext" href="../notebooks/">Working with Jupyter notebooks</a></li><li class="current"><a class="toctext" href>Function index</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href>Function index</a></li></ul><a class="edit-page" href="https://github.com/mpastell/Weave.jl/blob/master/doc/src/function_index.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Function index</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Function-index-1" href="#Function-index-1">Function index</a></h1><ul><li><a href="../notebooks/#Weave.convert_doc-Tuple{String,String}"><code>Weave.convert_doc</code></a></li><li><a href="../chunk_options/#Weave.get_chunk_defaults-Tuple{}"><code>Weave.get_chunk_defaults</code></a></li><li><a href="../usage/#Weave.include_weave"><code>Weave.include_weave</code></a></li><li><a href="../usage/#Weave.list_out_formats-Tuple{}"><code>Weave.list_out_formats</code></a></li><li><a href="../notebooks/#Weave.notebook"><code>Weave.notebook</code></a></li><li><a href="../chunk_options/#Weave.restore_chunk_defaults-Tuple{}"><code>Weave.restore_chunk_defaults</code></a></li><li><a href="../usage/#Weave.tangle-Tuple{Any}"><code>Weave.tangle</code></a></li><li><a href="../usage/#Weave.weave-Tuple{Any}"><code>Weave.weave</code></a></li></ul><footer><hr/><a class="previous" href="../notebooks/"><span class="direction">Previous</span><span class="title">Working with Jupyter notebooks</span></a></footer></article></body></html>

View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Getting started · Weave.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"><h1>Weave.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search/"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../">Weave.jl - Scientific Reports Using Julia</a></li><li class="current"><a class="toctext" href>Getting started</a><ul class="internal"></ul></li><li><a class="toctext" href="../usage/">Using Weave</a></li><li><a class="toctext" href="../publish/">Publishing to html and pdf</a></li><li><a class="toctext" href="../chunk_options/">Chunk options</a></li><li><a class="toctext" href="../notebooks/">Working with Jupyter notebooks</a></li><li><a class="toctext" href="../function_index/">Function index</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href>Getting started</a></li></ul><a class="edit-page" href="https://github.com/mpastell/Weave.jl/blob/master/doc/src/getting_started.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Getting started</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Getting-started-1" href="#Getting-started-1">Getting started</a></h1><p>The best way to get started using Weave.jl is to look at the example input and output documents. Examples for different formats are included in the packages <code>examples</code> directory.</p><p>First have a look at source document using markdown code chunks and Plots.jl for figures: <a href="../examples/FIR_design.jmd">FIR_design.jmd</a> and then see the output in different formats:</p><ul><li>HTML: <a href="../examples/FIR_design.html">FIR_design.html</a></li><li>pdf: <a href="../examples/FIR_design.pdf">FIR_design.pdf</a></li><li>Pandoc markdown: <a href="../examples/FIR_design.txt">FIR_design.txt</a></li></ul><p><em>Producing pdf output requires that you have XeLateX installed.</em></p><p>Add dependencies for the example if needed:</p><pre><code class="language-julia">using Pkg; Pkg.add.([&quot;Plots&quot;, &quot;DSP&quot;])</code></pre><p>Weave the files to your working directory using:</p><pre><code class="language-julia">using Weave
#HTML
weave(joinpath(dirname(pathof(Weave)), &quot;../examples&quot;, &quot;FIR_design.jmd&quot;),
out_path=:pwd,
doctype = &quot;md2html&quot;)
#pdf
weave(joinpath(dirname(pathof(Weave)), &quot;../examples&quot;, &quot;FIR_design.jmd&quot;),
out_path=:pwd,
doctype = &quot;md2pdf&quot;)
#Markdown
weave(joinpath(dirname(pathof(Weave)), &quot;../examples&quot;, &quot;FIR_design.jmd&quot;),
doctype=&quot;pandoc&quot;
out_path=:pwd)</code></pre><footer><hr/><a class="previous" href="../"><span class="direction">Previous</span><span class="title">Weave.jl - Scientific Reports Using Julia</span></a><a class="next" href="../usage/"><span class="direction">Next</span><span class="title">Using Weave</span></a></footer></article></body></html>

2
v0.8.1/index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Publishing to html and pdf · Weave.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"><h1>Weave.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search/"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../">Weave.jl - Scientific Reports Using Julia</a></li><li><a class="toctext" href="../getting_started/">Getting started</a></li><li><a class="toctext" href="../usage/">Using Weave</a></li><li class="current"><a class="toctext" href>Publishing to html and pdf</a><ul class="internal"><li><a class="toctext" href="#Templates-1">Templates</a></li><li><a class="toctext" href="#Supported-Markdown-syntax-1">Supported Markdown syntax</a></li></ul></li><li><a class="toctext" href="../chunk_options/">Chunk options</a></li><li><a class="toctext" href="../notebooks/">Working with Jupyter notebooks</a></li><li><a class="toctext" href="../function_index/">Function index</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href>Publishing to html and pdf</a></li></ul><a class="edit-page" href="https://github.com/mpastell/Weave.jl/blob/master/doc/src/publish.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Publishing to html and pdf</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Publishing-to-html-and-pdf-1" href="#Publishing-to-html-and-pdf-1">Publishing to html and pdf</a></h1><p>You can also publish any supported input format using markdown for doc chunks to html and pdf documents. Producing pdf output requires that you have pdflatex installed and in your path.</p><p>You can use a YAML header in the beginning of the input document delimited with &quot;-&quot; to set the document title, author and date e.g.</p><pre><code class="language-none">---
title : Weave example
author : Matti Pastell
date: 15th December 2016
---</code></pre><p>Here is a a sample document and output:</p><p><a href="../examples/FIR_design_plots.jl">FIR<em>design</em>plots.jl</a>, <a href="../examples/FIR_design_plots.html">FIR<em>design</em>plots.html</a> , <a href="../examples/FIR_design_plots.pdf">FIR<em>design</em>plots.pdf</a>.</p><pre><code class="language-julia">weave(&quot;FIR_design_plots.jl&quot;)
weave(&quot;FIR_design_plots.jl&quot;, docformat = &quot;md2pdf&quot;)</code></pre><p><strong>Note:</strong> docformats <code>md2pdf</code> and <code>md2html</code> use Julia markdown and <code>pandoc2pdf</code> and <code>pandoc2html</code> use Pandoc.</p><h2><a class="nav-anchor" id="Templates-1" href="#Templates-1">Templates</a></h2><p>You can use a custom template with <code>md2pdf</code> and <code>md2html</code> formats with <code>template</code> argument (e.g) <code>weave(&quot;FIR_design_plots.jl&quot;, template = &quot;custom.tpl&quot;</code>). You can use the existing templates as starting point.</p><p>For HTML: <a href="https://github.com/mpastell/Weave.jl/blob/master/templates/julia_html.tpl">julia_html.tpl</a> and LaTex: <a href="https://github.com/mpastell/Weave.jl/blob/master/templates/julia_tex.tpl">julia_tex.tpl</a></p><p>Templates are rendered using <a href="https://github.com/jverzani/Mustache.jl">Mustache.jl</a>.</p><h2><a class="nav-anchor" id="Supported-Markdown-syntax-1" href="#Supported-Markdown-syntax-1">Supported Markdown syntax</a></h2><p>The markdown variant used by Weave is <a href="http://docs.julialang.org/en/latest/manual/documentation.html#Markdown-syntax-1">Julia markdown</a>. In addition Weave supports few additional Markdown features:</p><p><strong>Comments</strong></p><p>You can add comments using html syntax: <code>&lt;!-- --&gt;</code></p><p><strong>Multiline equations</strong></p><p>You can add multiline equations using:</p><pre><code class="language-none">$$
x^2 = x*x
$$</code></pre><footer><hr/><a class="previous" href="../usage/"><span class="direction">Previous</span><span class="title">Using Weave</span></a><a class="next" href="../chunk_options/"><span class="direction">Next</span><span class="title">Chunk options</span></a></footer></article></body></html>

2
v0.8.1/search/index.html Normal file
View 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 · Weave.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"><h1>Weave.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../">Weave.jl - Scientific Reports Using Julia</a></li><li><a class="toctext" href="../getting_started/">Getting started</a></li><li><a class="toctext" href="../usage/">Using Weave</a></li><li><a class="toctext" href="../publish/">Publishing to html and pdf</a></li><li><a class="toctext" href="../chunk_options/">Chunk options</a></li><li><a class="toctext" href="../notebooks/">Working with Jupyter notebooks</a></li><li><a class="toctext" href="../function_index/">Function index</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>

339
v0.8.1/search_index.js Normal file
View File

@ -0,0 +1,339 @@
var documenterSearchIndex = {"docs": [
{
"location": "#",
"page": "Weave.jl - Scientific Reports Using Julia",
"title": "Weave.jl - Scientific Reports Using Julia",
"category": "page",
"text": ""
},
{
"location": "#Weave.jl-Scientific-Reports-Using-Julia-1",
"page": "Weave.jl - Scientific Reports Using Julia",
"title": "Weave.jl - Scientific Reports Using Julia",
"category": "section",
"text": "This is the documentation of Weave.jl. Weave is a scientific report generator/literate programming tool for Julia. It resembles Pweave, Knitr, rmarkdown and Sweave.Current featuresMarkdown, script of Noweb syntax for input documents.\nPublish markdown directly to html and pdf using Julia or Pandoc markdown.\nExecute code as terminal or \"script\" chunks.\nCapture Plots.jl or Gadfly.jl figures\nSupports LaTex, Pandoc, Github markdown, MultiMarkdown, Asciidoc and reStructuredText output\nSimple caching of results\nConvert to and from IJulia notebooks(Image: Weave code and output)"
},
{
"location": "#Contents-1",
"page": "Weave.jl - Scientific Reports Using Julia",
"title": "Contents",
"category": "section",
"text": "Pages = [\"getting_started.md\", \"usage.md\",\n\"publish.md\", \"chunk_options.md\", \"notebooks.md\",\n\"function_index.md\"]"
},
{
"location": "getting_started/#",
"page": "Getting started",
"title": "Getting started",
"category": "page",
"text": ""
},
{
"location": "getting_started/#Getting-started-1",
"page": "Getting started",
"title": "Getting started",
"category": "section",
"text": "The best way to get started using Weave.jl is to look at the example input and output documents. Examples for different formats are included in the packages examples directory.First have a look at source document using markdown code chunks and Plots.jl for figures: FIR_design.jmd and then see the output in different formats:HTML: FIR_design.html\npdf: FIR_design.pdf\nPandoc markdown: FIR_design.txtProducing pdf output requires that you have XeLateX installed.Add dependencies for the example if needed:using Pkg; Pkg.add.([\"Plots\", \"DSP\"])Weave the files to your working directory using:using Weave\n#HTML\nweave(joinpath(dirname(pathof(Weave)), \"../examples\", \"FIR_design.jmd\"),\n out_path=:pwd,\n doctype = \"md2html\")\n#pdf\nweave(joinpath(dirname(pathof(Weave)), \"../examples\", \"FIR_design.jmd\"),\n out_path=:pwd,\n doctype = \"md2pdf\")\n #Markdown\nweave(joinpath(dirname(pathof(Weave)), \"../examples\", \"FIR_design.jmd\"),\n doctype=\"pandoc\"\n out_path=:pwd)"
},
{
"location": "usage/#",
"page": "Using Weave",
"title": "Using Weave",
"category": "page",
"text": ""
},
{
"location": "usage/#Using-Weave-1",
"page": "Using Weave",
"title": "Using Weave",
"category": "section",
"text": "You can write your documentation and code in input document using Markdown, Noweb or script syntax and use weave function to execute to document to capture results and figures."
},
{
"location": "usage/#Weave.weave-Tuple{Any}",
"page": "Using Weave",
"title": "Weave.weave",
"category": "method",
"text": "weave(source ; doctype = :auto,\n informat=:auto, out_path=:doc, args = Dict(),\n mod::Union{Module, Symbol} = Main,\n fig_path = \"figures\", fig_ext = nothing,\n cache_path = \"cache\", cache=:off,\n template = nothing, highlight_theme = nothing, css = nothing,\n pandoc_options = \"\",\n latex_cmd = \"xelatex\")\n\nWeave an input document to output file.\n\ndoctype: :auto = set based on file extension or specify one of the supported formats. See list_out_formats()\ninformat: :auto = set based on file extension or set to \"noweb\", \"markdown\" or script\nout_path: Path where the output is generated. Can be: :doc: Path of the source document, :pwd: Julia working directory, \"somepath\": output directory as a String e.g \"/home/mpastell/weaveout\" or filename as string e.g. ~/outpath/outfile.tex.\nargs: dictionary of arguments to pass to document. Available as WEAVE_ARGS\nmod: Module where Weave evals code. Defaults to :sandbox to create new sandbox module, you can also pass a module e.g. Main.\nfig_path: where figures will be generated, relative to out_path\nfig_ext: Extension for saved figures e.g. \".pdf\", \".png\". Default setting depends on doctype.\ncache_path: where of cached output will be saved.\ncache: controls caching of code: :off = no caching, :all = cache everything, :user = cache based on chunk options, :refresh, run all code chunks and save new cache.\nthrow_errors if false errors are included in output document and the whole document is executed. if true errors are thrown when they occur.\ntemplate : Template (file path) for md2html or md2tex formats.\nhighlight_theme : Theme (Highlights.AbstractTheme) for used syntax highlighting\ncss : CSS (file path) used for md2html format\npandoc_options = String array of options to pass to pandoc for pandoc2html and pandoc2pdf formats e.g. [\"toc\", \"-N\"]\nlatex_cmd the command used to make pdf from .tex\n\nNote: Run Weave from terminal and not using IJulia, Juno or ESS, they tend to mess with capturing output.\n\n\n\n\n\n"
},
{
"location": "usage/#Weave-1",
"page": "Using Weave",
"title": "Weave",
"category": "section",
"text": "Weave document with markup and julia code using Plots.jl for plots, out_path = :pwd makes the results appear in the current working directory.#First add depencies for the example\nusing Pkg; Pkg.add.([\"Plots\", \"DSP\"])\nusing Weave\nweave(joinpath(dirname(pathof(Weave)), \"../examples\", \"FIR_design.jmd\"), out_path=:pwd)weave(source)"
},
{
"location": "usage/#Weave.tangle-Tuple{Any}",
"page": "Using Weave",
"title": "Weave.tangle",
"category": "method",
"text": "tangle(source ; out_path=:doc, informat=\"noweb\")\n\nTangle source code from input document to .jl file.\n\ninformat: \"noweb\" of \"markdown\"\nout_path: Path where the output is generated. Can be: :doc: Path of the source document, :pwd: Julia working directory, \"somepath\", directory name as a string e.g \"/home/mpastell/weaveout\"\n\nor filename as string e.g. ~/outpath/outfile.jl.\n\n\n\n\n\n"
},
{
"location": "usage/#Tangle-1",
"page": "Using Weave",
"title": "Tangle",
"category": "section",
"text": "Tangling extracts the code from document:tangle(source)"
},
{
"location": "usage/#Weave.list_out_formats-Tuple{}",
"page": "Using Weave",
"title": "Weave.list_out_formats",
"category": "method",
"text": "list_out_formats()\n\nList supported output formats\n\n\n\n\n\n"
},
{
"location": "usage/#Supported-output-formats-1",
"page": "Using Weave",
"title": "Supported output formats",
"category": "section",
"text": "Weave sets the output format based on the file extension, but you can also set it using doctype option. The rules for detecting the format are:ext == \".jl\" && return \"md2html\"\ncontains(ext, \".md\") && return \"md2html\"\ncontains(ext, \".rst\") && return \"rst\"\ncontains(ext, \".tex\") && return \"texminted\"\ncontains(ext, \".txt\") && return \"asciidoc\"\nreturn \"pandoc\"You can get a list of supported output formats:using Weave # hide\nlist_out_formats()list_out_formats()"
},
{
"location": "usage/#Document-syntax-1",
"page": "Using Weave",
"title": "Document syntax",
"category": "section",
"text": "Weave uses markdown, Noweb or script syntax for defining the code chunks and documentation chunks. You can also weave Jupyter notebooks. The format is detected based on the file extension, but you can also set it manually using the informat parameter.The rules for autodetection are:ext == \".jl\" && return \"script\"\next == \".jmd\" && return \"markdown\"\next == \".ipynb\" && return \"notebook\"\nreturn \"noweb\""
},
{
"location": "usage/#Documentation-chunks-1",
"page": "Using Weave",
"title": "Documentation chunks",
"category": "section",
"text": "In Markdown and Noweb input formats documentation chunks are the parts that aren\'t inside code delimiters. Documentation chunks can be written with several different markup languages."
},
{
"location": "usage/#Code-chunks-1",
"page": "Using Weave",
"title": "Code chunks",
"category": "section",
"text": ""
},
{
"location": "usage/#Markdown-format-1",
"page": "Using Weave",
"title": "Markdown format",
"category": "section",
"text": "Markdown code chunks are defined using fenced code blocks with options following on the same line. e.g. to hide code from output you can use:`julia; echo=falseSample document"
},
{
"location": "usage/#Noweb-format-1",
"page": "Using Weave",
"title": "Noweb format",
"category": "section",
"text": "Code chunks start with a line marked with <<>>= or <<options>>= and end with line marked with @. The code between the start and end markers is executed and the output is captured to the output document. See chunk options."
},
{
"location": "usage/#Script-format-1",
"page": "Using Weave",
"title": "Script format",
"category": "section",
"text": "Weave also support script input format with a markup in comments. These scripts can be executed normally using Julia or published with Weave. Documentation is in lines starting with #\', #%% or # %%, and code is executed and results are included in the weaved document.All lines that are not documentation are treated as code. You can set chunk options using lines starting with #+ just before code e.g. #+ term=true.The format is identical to Pweave and the concept is similar to publishing documents with MATLAB or using Knitr\'s spin. Weave will remove the first empty space from each line of documentation.See sample document:"
},
{
"location": "usage/#Inline-code-1",
"page": "Using Weave",
"title": "Inline code",
"category": "section",
"text": "You can also add inline code to your documents using`j juliacode`syntax. The code will be replaced with the output of running the code. If the code produces figures the filename or base64 encoded string will be added to output e.g. to include a Plots figure in markdown you can use:![A plot](`j plot(1:10)`)"
},
{
"location": "usage/#Setting-document-options-in-header-1",
"page": "Using Weave",
"title": "Setting document options in header",
"category": "section",
"text": "You can use a YAML header in the beginning of the input document delimited with \"-\" to set the document title, author and date e.g. and default document options. Each of Weave command line arguments and chunk options can be set in header using options field. Below is an example that sets document out_path and doctype using the header.---\ntitle : Weave example\nauthor : Matti Pastell\ndate: 15th December 2016\noptions:\n out_path : reports/example.md\n doctype : github\n---You can also set format specific options. Here is how to set different outpath for md2html and md2pdf and set `figext` for both:---\noptions:\n md2html:\n out_path : html\n md2pdf:\n out_path : pdf\n fig_ext : .png\n---"
},
{
"location": "usage/#Passing-arguments-to-documents-1",
"page": "Using Weave",
"title": "Passing arguments to documents",
"category": "section",
"text": "You can pass arguments as dictionary to the weaved document using the args argument to weave. The dictionary will be available as WEAVE_ARGS variable in the document.This makes it possible to create the same report easily for e.g. different date ranges of input data from a database or from files with similar format giving the filename as input.In order to pass a filename to a document you need call weave using:weave(\"mydoc.jmd\", args = Dict(\"filename\" => \"somedata.h5\"))and you can access the filename from document as follows: ```julia\n print(WEAVE_ARGS[\"filename\"])\n ```You can use the out_path argument to control the name of the output document."
},
{
"location": "usage/#Weave.include_weave",
"page": "Using Weave",
"title": "Weave.include_weave",
"category": "function",
"text": "include_weave(doc, informat=:auto)\n\nInclude code from Weave document calling include_string on all code from doc. Code is run in the path of the include document.\n\n\n\n\n\n"
},
{
"location": "usage/#Include-Weave-document-in-Julia-1",
"page": "Using Weave",
"title": "Include Weave document in Julia",
"category": "section",
"text": "You can call include_weave on a Weave document to run the contents of all code chunks in Julia.include_weave(doc, informat=:auto)"
},
{
"location": "publish/#",
"page": "Publishing to html and pdf",
"title": "Publishing to html and pdf",
"category": "page",
"text": ""
},
{
"location": "publish/#Publishing-to-html-and-pdf-1",
"page": "Publishing to html and pdf",
"title": "Publishing to html and pdf",
"category": "section",
"text": "You can also publish any supported input format using markdown for doc chunks to html and pdf documents. Producing pdf output requires that you have pdflatex installed and in your path.You can use a YAML header in the beginning of the input document delimited with \"-\" to set the document title, author and date e.g.---\ntitle : Weave example\nauthor : Matti Pastell\ndate: 15th December 2016\n---Here is a a sample document and output:FIRdesignplots.jl, FIRdesignplots.html , FIRdesignplots.pdf.weave(\"FIR_design_plots.jl\")\nweave(\"FIR_design_plots.jl\", docformat = \"md2pdf\")Note: docformats md2pdf and md2html use Julia markdown and pandoc2pdf and pandoc2html use Pandoc."
},
{
"location": "publish/#Templates-1",
"page": "Publishing to html and pdf",
"title": "Templates",
"category": "section",
"text": "You can use a custom template with md2pdf and md2html formats with template argument (e.g) weave(\"FIR_design_plots.jl\", template = \"custom.tpl\"). You can use the existing templates as starting point.For HTML: julia_html.tpl and LaTex: julia_tex.tplTemplates are rendered using Mustache.jl."
},
{
"location": "publish/#Supported-Markdown-syntax-1",
"page": "Publishing to html and pdf",
"title": "Supported Markdown syntax",
"category": "section",
"text": "The markdown variant used by Weave is Julia markdown. In addition Weave supports few additional Markdown features:CommentsYou can add comments using html syntax: <!-- -->Multiline equationsYou can add multiline equations using:$$\nx^2 = x*x\n$$"
},
{
"location": "chunk_options/#",
"page": "Chunk options",
"title": "Chunk options",
"category": "page",
"text": ""
},
{
"location": "chunk_options/#Chunk-options-1",
"page": "Chunk options",
"title": "Chunk options",
"category": "section",
"text": "I\'ve mostly followed Knitr\'s naming for chunk options, but not all options are implemented.Options are separated using \";\" and need to be valid Julia expressions. Example: markdown code chunk that saves and displays a 12 cm wide image and hides the source code:julia; out_width=\"12cm\"; echo=falseWeave currently supports the following chunk options with the following defaults:"
},
{
"location": "chunk_options/#Options-for-code-1",
"page": "Chunk options",
"title": "Options for code",
"category": "section",
"text": "echo = true. Echo the code in the output document. If false the source code will be hidden.\nresults = \"markup\". The output format of the printed results. \"markup\" for literal block, \"hidden\" for hidden results or anything else for raw output (I tend to use tex for Latex and rst for rest. Raw output is useful if you want to e.g. create tables from code chunks.\neval = true. Evaluate the code chunk. If false the chunk wont be executed.\nterm=false. If true the output emulates a REPL session. Otherwise only stdout and figures will be included in output.\nlabel. Chunk label, will be used for figure labels in Latex as fig:label\nwrap = true. Wrap long lines from output.\nline_width = 75. Line width for wrapped lines.\ncache = false. Cache results, depends on cache parameter on weave function.\nhold = false. Hold all results until the end of the chunk.\ntangle = true. Set tangle to false to exclude chunk from tangled code."
},
{
"location": "chunk_options/#Options-for-figures-1",
"page": "Chunk options",
"title": "Options for figures",
"category": "section",
"text": "fig_width. Figure width passed to plotting library e.g. 800\nfig_height Figure height passed to plotting library\nout_width. Width of saved figure in output markup e.g. \"50%\", \"12cm\", \\\\0.5linewidth\nout_height. Height of saved figure in output markup\ndpi=96. Resolution of saved figures.\nfig_cap. Figure caption.\nlabel. Chunk label, will be used for figure labels in Latex as fig:label\nfig_ext. File extension (format) of saved figures.\nfig_pos=\"htpb\". Figure position in Latex. \nfig_env=\"figure\". Figure environment in Latex."
},
{
"location": "chunk_options/#Set-default-chunk-options-1",
"page": "Chunk options",
"title": "Set default chunk options",
"category": "section",
"text": "You can set the default chunk options (and weave arguments) for a document using the YAML header options field. e.g to set the default out_width of all figures you can use:---\noptions:\n out_width : 50%\n---You can also set or change the default chunk options for a document either before weave using the set_chunk_defaults function.set_chunk_defaults(opts)\nget_chunk_defaults()\nrestore_chunk_defaults()"
},
{
"location": "notebooks/#",
"page": "Working with Jupyter notebooks",
"title": "Working with Jupyter notebooks",
"category": "page",
"text": ""
},
{
"location": "notebooks/#Working-with-Jupyter-notebooks-1",
"page": "Working with Jupyter notebooks",
"title": "Working with Jupyter notebooks",
"category": "section",
"text": ""
},
{
"location": "notebooks/#Weaving-from-Jupyter-notebooks-1",
"page": "Working with Jupyter notebooks",
"title": "Weaving from Jupyter notebooks",
"category": "section",
"text": "Weave supports using Jupyter notebooks as input format, this means you can weave notebooks to any supported formats. You can\'t use chunk options with notebooks.weave(\"notebook.ipynb\")"
},
{
"location": "notebooks/#Weave.notebook",
"page": "Working with Jupyter notebooks",
"title": "Weave.notebook",
"category": "function",
"text": "notebook(source::String, outpath=:pwd, timeout=-1, nbconvertoptions=\"\")\n\nConvert Weave document source to Jupyter notebook and execute the code using nbconvert. Requires IJulia. Ignores all chunk options\n\nout_path: Path where the output is generated. Can be: :doc: Path of the source document, :pwd: Julia working directory, \"somepath\": Path as a String e.g \"/home/mpastell/weaveout\"\ntimeout: nbconvert cell timeout in seconds. Defaults to -1 (no timeout)\nnbconvert_options: string of additional options to pass to nbconvert, such as --allow-errors\n\n\n\n\n\n"
},
{
"location": "notebooks/#Output-to-Jupyter-notebooks-1",
"page": "Working with Jupyter notebooks",
"title": "Output to Jupyter notebooks",
"category": "section",
"text": "As of Weave 0.5.1. there is new notebook method to convert Weave documents to Jupyter notebooks using nbconvert. The code is not executed by Weave and the output doesn\'t always work properly, see #116.notebook(source::String, out_path=:pwd)You might wan\'t to use the convert_doc method below instead and run the code in Jupyter."
},
{
"location": "notebooks/#Weave.convert_doc-Tuple{String,String}",
"page": "Working with Jupyter notebooks",
"title": "Weave.convert_doc",
"category": "method",
"text": "convert_doc(infile::AbstractString, outfile::AbstractString; format = nothing)\n\nConvert Weave documents between different formats\n\ninfile = Name of the input document\noutfile = Name of the output document\nformat = Output format (optional). Detected from outfile extension, but can be set to \"script\", \"markdown\", \"notebook\" or \"noweb\".\n\n\n\n\n\n"
},
{
"location": "notebooks/#Converting-between-formats-1",
"page": "Working with Jupyter notebooks",
"title": "Converting between formats",
"category": "section",
"text": "You can convert between all supported input formats using the convert_doc function.To convert from script to notebook:convert_doc(\"examples/FIR_design.jl\", \"FIR_design.ipynb\")and from notebooks to markdown use:convert_doc(\"FIR_design.ipynb\", \"FIR_design.jmd\")convert_doc(infile::String, outfile::String)"
},
{
"location": "function_index/#",
"page": "Function index",
"title": "Function index",
"category": "page",
"text": ""
},
{
"location": "function_index/#Function-index-1",
"page": "Function index",
"title": "Function index",
"category": "section",
"text": ""
},
]}

1
v0.8.1/siteinfo.js Normal file
View File

@ -0,0 +1 @@
var DOCUMENTER_CURRENT_VERSION = "v0.8.1";

48
v0.8.1/usage/index.html Normal file
View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Using Weave · Weave.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"><h1>Weave.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" id="search-form" action="../search/"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li><a class="toctext" href="../">Weave.jl - Scientific Reports Using Julia</a></li><li><a class="toctext" href="../getting_started/">Getting started</a></li><li class="current"><a class="toctext" href>Using Weave</a><ul class="internal"><li><a class="toctext" href="#Weave-1">Weave</a></li><li><a class="toctext" href="#Tangle-1">Tangle</a></li><li><a class="toctext" href="#Supported-output-formats-1">Supported output formats</a></li><li><a class="toctext" href="#Document-syntax-1">Document syntax</a></li><li><a class="toctext" href="#Documentation-chunks-1">Documentation chunks</a></li><li><a class="toctext" href="#Code-chunks-1">Code chunks</a></li><li><a class="toctext" href="#Inline-code-1">Inline code</a></li><li><a class="toctext" href="#Setting-document-options-in-header-1">Setting document options in header</a></li><li><a class="toctext" href="#Passing-arguments-to-documents-1">Passing arguments to documents</a></li><li><a class="toctext" href="#Include-Weave-document-in-Julia-1">Include Weave document in Julia</a></li></ul></li><li><a class="toctext" href="../publish/">Publishing to html and pdf</a></li><li><a class="toctext" href="../chunk_options/">Chunk options</a></li><li><a class="toctext" href="../notebooks/">Working with Jupyter notebooks</a></li><li><a class="toctext" href="../function_index/">Function index</a></li></ul></nav><article id="docs"><header><nav><ul><li><a href>Using Weave</a></li></ul><a class="edit-page" href="https://github.com/mpastell/Weave.jl/blob/master/doc/src/usage.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Using Weave</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="Using-Weave-1" href="#Using-Weave-1">Using Weave</a></h1><p>You can write your documentation and code in input document using Markdown, Noweb or script syntax and use <code>weave</code> function to execute to document to capture results and figures.</p><h2><a class="nav-anchor" id="Weave-1" href="#Weave-1">Weave</a></h2><p>Weave document with markup and julia code using <code>Plots.jl</code> for plots, <code>out_path = :pwd</code> makes the results appear in the current working directory.</p><pre><code class="language-julia">#First add depencies for the example
using Pkg; Pkg.add.([&quot;Plots&quot;, &quot;DSP&quot;])
using Weave
weave(joinpath(dirname(pathof(Weave)), &quot;../examples&quot;, &quot;FIR_design.jmd&quot;), out_path=:pwd)</code></pre><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="Weave.weave-Tuple{Any}" href="#Weave.weave-Tuple{Any}"><code>Weave.weave</code></a><span class="docstring-category">Method</span>.</div><div><div><pre><code class="language-none">weave(source ; doctype = :auto,
informat=:auto, out_path=:doc, args = Dict(),
mod::Union{Module, Symbol} = Main,
fig_path = &quot;figures&quot;, fig_ext = nothing,
cache_path = &quot;cache&quot;, cache=:off,
template = nothing, highlight_theme = nothing, css = nothing,
pandoc_options = &quot;&quot;,
latex_cmd = &quot;xelatex&quot;)</code></pre><p>Weave an input document to output file.</p><ul><li><code>doctype</code>: :auto = set based on file extension or specify one of the supported formats. See <code>list_out_formats()</code></li><li><code>informat</code>: :auto = set based on file extension or set to <code>&quot;noweb&quot;</code>, <code>&quot;markdown&quot;</code> or <code>script</code></li><li><code>out_path</code>: Path where the output is generated. Can be: <code>:doc</code>: Path of the source document, <code>:pwd</code>: Julia working directory, <code>&quot;somepath&quot;</code>: output directory as a String e.g <code>&quot;/home/mpastell/weaveout&quot;</code> or filename as string e.g. ~/outpath/outfile.tex.</li><li><code>args</code>: dictionary of arguments to pass to document. Available as WEAVE_ARGS</li><li><code>mod</code>: Module where Weave <code>eval</code>s code. Defaults to <code>:sandbox</code> to create new sandbox module, you can also pass a module e.g. <code>Main</code>.</li><li><code>fig_path</code>: where figures will be generated, relative to out_path</li><li><code>fig_ext</code>: Extension for saved figures e.g. <code>&quot;.pdf&quot;</code>, <code>&quot;.png&quot;</code>. Default setting depends on <code>doctype</code>.</li><li><code>cache_path</code>: where of cached output will be saved.</li><li><code>cache</code>: controls caching of code: <code>:off</code> = no caching, <code>:all</code> = cache everything, <code>:user</code> = cache based on chunk options, <code>:refresh</code>, run all code chunks and save new cache.</li><li><code>throw_errors</code> if <code>false</code> errors are included in output document and the whole document is executed. if <code>true</code> errors are thrown when they occur.</li><li><code>template</code> : Template (file path) for md2html or md2tex formats.</li><li><code>highlight_theme</code> : Theme (Highlights.AbstractTheme) for used syntax highlighting</li><li><code>css</code> : CSS (file path) used for md2html format</li><li><code>pandoc_options</code> = String array of options to pass to pandoc for <code>pandoc2html</code> and <code>pandoc2pdf</code> formats e.g. [&quot;toc&quot;, &quot;-N&quot;]</li><li><code>latex_cmd</code> the command used to make pdf from .tex</li></ul><p><strong>Note:</strong> Run Weave from terminal and not using IJulia, Juno or ESS, they tend to mess with capturing output.</p></div></div><a class="source-link" target="_blank" href="https://github.com/mpastell/Weave.jl/blob/371cec474fc2ab8a0a2822ac6ac04526f3c23668/src/Weave.jl#L53-L89">source</a></section><h2><a class="nav-anchor" id="Tangle-1" href="#Tangle-1">Tangle</a></h2><p>Tangling extracts the code from document:</p><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="Weave.tangle-Tuple{Any}" href="#Weave.tangle-Tuple{Any}"><code>Weave.tangle</code></a><span class="docstring-category">Method</span>.</div><div><div><p><code>tangle(source ; out_path=:doc, informat=&quot;noweb&quot;)</code></p><p>Tangle source code from input document to .jl file.</p><ul><li><code>informat</code>: <code>&quot;noweb&quot;</code> of <code>&quot;markdown&quot;</code></li><li><code>out_path</code>: Path where the output is generated. Can be: <code>:doc</code>: Path of the source document, <code>:pwd</code>: Julia working directory, <code>&quot;somepath&quot;</code>, directory name as a string e.g <code>&quot;/home/mpastell/weaveout&quot;</code></li></ul><p>or filename as string e.g. ~/outpath/outfile.jl.</p></div></div><a class="source-link" target="_blank" href="https://github.com/mpastell/Weave.jl/blob/371cec474fc2ab8a0a2822ac6ac04526f3c23668/src/Weave.jl#L23-L31">source</a></section><h2><a class="nav-anchor" id="Supported-output-formats-1" href="#Supported-output-formats-1">Supported output formats</a></h2><p>Weave sets the output format based on the file extension, but you can also set it using <code>doctype</code> option. The rules for detecting the format are:</p><pre><code class="language-julia">ext == &quot;.jl&quot; &amp;&amp; return &quot;md2html&quot;
contains(ext, &quot;.md&quot;) &amp;&amp; return &quot;md2html&quot;
contains(ext, &quot;.rst&quot;) &amp;&amp; return &quot;rst&quot;
contains(ext, &quot;.tex&quot;) &amp;&amp; return &quot;texminted&quot;
contains(ext, &quot;.txt&quot;) &amp;&amp; return &quot;asciidoc&quot;
return &quot;pandoc&quot;</code></pre><p>You can get a list of supported output formats:</p><div><pre><code class="language-julia">list_out_formats()</code></pre><pre><code class="language-none">github: Github markdown
md2tex: Julia markdown to latex
pandoc2html: Markdown to HTML (requires Pandoc 2)
pandoc: Pandoc markdown
pandoc2pdf: Pandoc markdown
tex: Latex with custom code environments
texminted: Latex using minted for highlighting
md2html: Julia markdown to html
rst: reStructuredText and Sphinx
multimarkdown: MultiMarkdown
md2pdf: Julia markdown to latex
asciidoc: AsciiDoc
hugo: Hugo markdown (using shortcodes)</code></pre></div><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="Weave.list_out_formats-Tuple{}" href="#Weave.list_out_formats-Tuple{}"><code>Weave.list_out_formats</code></a><span class="docstring-category">Method</span>.</div><div><div><p><code>list_out_formats()</code></p><p>List supported output formats</p></div></div><a class="source-link" target="_blank" href="https://github.com/mpastell/Weave.jl/blob/371cec474fc2ab8a0a2822ac6ac04526f3c23668/src/Weave.jl#L11-L15">source</a></section><h2><a class="nav-anchor" id="Document-syntax-1" href="#Document-syntax-1">Document syntax</a></h2><p>Weave uses markdown, Noweb or script syntax for defining the code chunks and documentation chunks. You can also weave Jupyter notebooks. The format is detected based on the file extension, but you can also set it manually using the <code>informat</code> parameter.</p><p>The rules for autodetection are:</p><pre><code class="language-julia">ext == &quot;.jl&quot; &amp;&amp; return &quot;script&quot;
ext == &quot;.jmd&quot; &amp;&amp; return &quot;markdown&quot;
ext == &quot;.ipynb&quot; &amp;&amp; return &quot;notebook&quot;
return &quot;noweb&quot;</code></pre><h2><a class="nav-anchor" id="Documentation-chunks-1" href="#Documentation-chunks-1">Documentation chunks</a></h2><p>In Markdown and Noweb input formats documentation chunks are the parts that aren&#39;t inside code delimiters. Documentation chunks can be written with several different markup languages.</p><h2><a class="nav-anchor" id="Code-chunks-1" href="#Code-chunks-1">Code chunks</a></h2><h3><a class="nav-anchor" id="Markdown-format-1" href="#Markdown-format-1">Markdown format</a></h3><p>Markdown code chunks are defined using fenced code blocks with options following on the same line. e.g. to hide code from output you can use:</p><p><code></code>`<code>julia; echo=false</code></p><p><a href=" https:/github.com/mpastell/Weave.jl/blob/master/examples/FIR_design.jmd">Sample document</a></p><h3><a class="nav-anchor" id="Noweb-format-1" href="#Noweb-format-1">Noweb format</a></h3><p>Code chunks start with a line marked with <code>&lt;&lt;&gt;&gt;=</code> or <code>&lt;&lt;options&gt;&gt;=</code> and end with line marked with <code>@</code>. The code between the start and end markers is executed and the output is captured to the output document. See <a href="../chunk_options/">chunk options</a>.</p><h3><a class="nav-anchor" id="Script-format-1" href="#Script-format-1">Script format</a></h3><p>Weave also support script input format with a markup in comments. These scripts can be executed normally using Julia or published with Weave. Documentation is in lines starting with <code>#&#39;</code>, <code>#%%</code> or <code># %%</code>, and code is executed and results are included in the weaved document.</p><p>All lines that are not documentation are treated as code. You can set chunk options using lines starting with <code>#+</code> just before code e.g. <code>#+ term=true</code>.</p><p>The format is identical to <a href="http://mpastell.com/pweave/pypublish.html">Pweave</a> and the concept is similar to publishing documents with MATLAB or using Knitr&#39;s <a href="http://yihui.name/knitr/demo/stitch/">spin</a>. Weave will remove the first empty space from each line of documentation.</p><p><a href="https://github.com/mpastell/Weave.jl/blob/master/examples/FIR_design.jl">See sample document:</a></p><h2><a class="nav-anchor" id="Inline-code-1" href="#Inline-code-1">Inline code</a></h2><p>You can also add inline code to your documents using</p><pre><code class="language-none">`j juliacode`</code></pre><p>syntax. The code will be replaced with the output of running the code. If the code produces figures the filename or base64 encoded string will be added to output e.g. to include a Plots figure in markdown you can use:</p><pre><code class="language-none">![A plot](`j plot(1:10)`)</code></pre><h2><a class="nav-anchor" id="Setting-document-options-in-header-1" href="#Setting-document-options-in-header-1">Setting document options in header</a></h2><p>You can use a YAML header in the beginning of the input document delimited with &quot;-&quot; to set the document title, author and date e.g. and default document options. Each of Weave command line arguments and chunk options can be set in header using <code>options</code> field. Below is an example that sets document <code>out_path</code> and <code>doctype</code> using the header.</p><pre><code class="language-yaml">---
title : Weave example
author : Matti Pastell
date: 15th December 2016
options:
out_path : reports/example.md
doctype : github
---</code></pre><p>You can also set format specific options. Here is how to set different out<em>path for <code>md2html</code> and <code>md2pdf</code> and set `fig</em>ext` for both:</p><pre><code class="language-none">---
options:
md2html:
out_path : html
md2pdf:
out_path : pdf
fig_ext : .png
---</code></pre><h2><a class="nav-anchor" id="Passing-arguments-to-documents-1" href="#Passing-arguments-to-documents-1">Passing arguments to documents</a></h2><p>You can pass arguments as dictionary to the weaved document using the <code>args</code> argument to <code>weave</code>. The dictionary will be available as <code>WEAVE_ARGS</code> variable in the document.</p><p>This makes it possible to create the same report easily for e.g. different date ranges of input data from a database or from files with similar format giving the filename as input.</p><p>In order to pass a filename to a document you need call <code>weave</code> using:</p><pre><code class="language-julia">weave(&quot;mydoc.jmd&quot;, args = Dict(&quot;filename&quot; =&gt; &quot;somedata.h5&quot;))</code></pre><p>and you can access the filename from document as follows:</p><pre><code class="language-none"> ```julia
print(WEAVE_ARGS[&quot;filename&quot;])
```</code></pre><p>You can use the <code>out_path</code> argument to control the name of the output document.</p><h2><a class="nav-anchor" id="Include-Weave-document-in-Julia-1" href="#Include-Weave-document-in-Julia-1">Include Weave document in Julia</a></h2><p>You can call <code>include_weave</code> on a Weave document to run the contents of all code chunks in Julia.</p><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="Weave.include_weave" href="#Weave.include_weave"><code>Weave.include_weave</code></a><span class="docstring-category">Function</span>.</div><div><div><pre><code class="language-none">include_weave(doc, informat=:auto)</code></pre><p>Include code from Weave document calling <code>include_string</code> on all code from doc. Code is run in the path of the include document.</p></div></div><a class="source-link" target="_blank" href="https://github.com/mpastell/Weave.jl/blob/371cec474fc2ab8a0a2822ac6ac04526f3c23668/src/Weave.jl#L196-L201">source</a></section><footer><hr/><a class="previous" href="../getting_started/"><span class="direction">Previous</span><span class="title">Getting started</span></a><a class="next" href="../publish/"><span class="direction">Next</span><span class="title">Publishing to html and pdf</span></a></footer></article></body></html>

View File

@ -1,5 +1,6 @@
var DOC_VERSIONS = [
"stable",
"v0.8",
"v0.4",
"v0.3",
"v0.2",