Go to file
Matti Pastell 97f309af19 Fix test cleaning on windows 2017-03-14 21:45:46 +02:00
bin Improved error handling for Pandoc 2016-04-28 16:11:45 +03:00
doc Update news and bump docs version 2017-03-14 18:15:49 +02:00
examples More tests for 0.6 2017-03-14 21:27:26 +02:00
paper Added JOSS paper 2017-03-06 17:57:45 +02:00
src More tests for 0.6 2017-03-14 21:27:26 +02:00
templates Fix to tex template 2016-12-17 00:25:56 +02:00
test Fix test cleaning on windows 2017-03-14 21:45:46 +02:00
.gitattributes Fix handling of \r #72 2016-12-22 21:40:07 +02:00
.gitignore Fix CRLF in rest of the files 2016-12-23 10:54:48 +02:00
.travis.yml Add 0.6 to Travis 2017-03-13 21:00:20 +02:00
LICENSE.md Update LICENSE.md 2017-03-13 18:38:06 +02:00
NEWS.md Fix mimetype order for md2html 2017-03-14 18:54:03 +02:00
README.md Add info about depencies #85 2017-03-14 18:08:15 +02:00
REQUIRE Use compat for abstract types 2017-03-10 13:09:13 +02:00
appveyor.yml Fix tests for 0.6 2017-03-13 23:14:25 +02:00

README.md

Weave

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

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

Note about Julia 0.6: Weave has been updated to support 0.6, but most of the depencies and plotting libraries have not. Plotting currently (14th March 2017) only works using PyPlot master.

Weave code and output

Installation

You can install the latest release using Julia package manager:

Pkg.add("Weave")

Usage

Run from julia using Gadfly for plots:

#First add depencies for the example
Pkg.add.(["Cairo", "Fontconfig", "Gadfly"])
#Use Weave
using Weave
weave(Pkg.dir("Weave","examples","gadfly_sample.mdw"))

If you have Pandoc installed you can also weave directly to html and pdf.

weave(Pkg.dir("Weave","examples","gadfly_md_sample.jmd"), informat="markdown",
  out_path = :pwd, doctype = "md2html")

Documentation

Documenter.jl with MKDocs generated documentation:

Editor support

I have made language-weave package for Atom to do the syntax highlighting correctly.

Noweb documents work well with ESS as well, to set doc-mode for .mdw files to markdown and code to Julia you can do:

(defun mdw-mode ()
       (ess-noweb-mode)
       (setq ess-noweb-default-code-mode 'ess-julia-mode)
       (setq ess-noweb-doc-mode 'markdown-mode))

(setq auto-mode-alist (append (list (cons "\\.mdw$" 'mdw-mode))
                   auto-mode-alist))

Contributing

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.

Contributors

You can see the list of contributors on Github: https://github.com/mpastell/Weave.jl/graphs/contributors. Thanks for the important additions, fixes and comments.