A minimal publishing system based on Pandoc, Substance and eLife Lens. It powers substance.io.
A minimal publishing solution based on Pandoc Markdown and Substance.
- Node.js >=0.10.x
- Pandoc >= 1.12.02 (for Markdown cross-compiling)
Substance.IO comes as a ready-to-use NPM module:
$ sudo npm install -g substance-io
To view a document library (such as Substance Documents) call:
$ cd /path/to/library $ io
Or alternatively you can point to that folder using:
$ io <path-to-library-folder>
Documents are managed by convention in a directory structure having folders for collections and subfolders for documents. For example:
mylibrary/substance # collection folder mylibrary/substance/index.json # collection metadata mylibrary/substance/about # document folder mylibrary/substance/about/index.json # document metadata mylibrary/substance/about/content.md # source markdown
This would define a library with one collection with id
substance having one document with id
For development we use a setup based on our Screwdriver command line utility. It's just a little helper that makes dealing with our many modules easier.
$ git clone https://github.com/substance/screwdriver.git $ cd screwdriver $ sudo python setup.py install
Clone the io repo.
$ git clone https://github.com/substance/io.git
Run the update command, which pulls in all the sub-modules and dependencies.
$ cd io $ substance --update
Finally start the server and point your browser to
$ substance <path-to-library-folder>