Giter VIP home page Giter VIP logo

weave.jl's Introduction

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

Citing Weave: Pastell, Matti. 2017. Weave.jl: Scientific Reports Using Julia. The Journal of Open Source Software. http://dx.doi.org/10.21105/joss.00204

Note about Julia 0.6: Weave has been updated to support 0.6. PyPlot, Gadfly and Plots now all work, tests still need to be updated (15th May 2017).

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.

weave.jl's People

Contributors

bramtayl avatar c42f avatar davidanthoff avatar dmbates avatar gragusa avatar maximsch2 avatar michaelhatherly avatar mpastell avatar sje30 avatar staticfloat avatar tkelman avatar tpapp avatar wildart avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.