Skip to content
Scientific reports/literate programming for Julia
Branch: master
Clone or download
Latest commit c9a8147 Mar 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Remove plot library hack and use Requires instead Jul 26, 2018
doc Tweak docs Mar 10, 2019
examples Add example beamer document Mar 10, 2019
paper Updated citation #85 Mar 15, 2017
templates Decrease item and p spacing. Closes #162 Feb 28, 2019
.travis.yml Fix mimetype order for md2html Mar 14, 2017
appveyor.yml Remove 0.7 from tests Jan 3, 2019


Build Status Build status Coverage Status

Weave is a scientific report generator/literate programming tool for Julia. It resembles Pweave, Knitr, rmarkdown and Sweave.

You can write your documentation and code in input document using Noweb, Markdown, Script syntax and use weave function to execute to document to capture results and figures.

Current features

  • Publish markdown directly to html and pdf using Julia or Pandoc markdown.
  • Markdown, script of Noweb syntax for input documents.
  • Execute code as terminal or "script" chunks.
  • Capture Plots.jl or Gadfly.jl figures
  • Supports LaTex, Pandoc, Github markdown, MultiMarkdown, Asciidoc and reStructuredText output
  • Simple caching of results
  • Convert to and from IJulia notebooks

Citing Weave: Pastell, Matti. 2017. Weave.jl: Scientific Reports Using Julia. The Journal of Open Source Software.

Weave code and output


You can install the latest release using Julia package manager:

using Pkg


Run from julia using Plots.jl for plots:

#First add depencies for the example
using Pkg; Pkg.add.(["Plots", "DSP"])
#Use Weave
using Weave
weave(joinpath(dirname(pathof(Weave)), "../examples", "FIR_design.jmd"), out_path=:pwd)

If you have LaTeX installed you can also weave directly to pdf.

weave(joinpath(dirname(pathof(Weave)), "../examples", "FIR_design.jmd"),
    out_path=:pwd, doctype="md2pdf")


Documenter.jl with MKDocs generated documentation:

Editor support

Install language-weave to add Weave support to Juno. It allows running code from Weave documents with usual keybindings and allows preview of html and pdf output.


I will probably add new features to Weave when I need them myself or if they are requested and not too difficult to implement. You can contribute by opening issues on Github or implementing things yourself and making a pull request. I'd also appreciate example documents written using Weave to add to examples.


You can see the list of contributors on Github: Thanks for the important additions, fixes and comments.

Example projects using Weave

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.