A minimal publishing system based on Pandoc, Substance and eLife Lens. It powers substance.io.
Want to see pretty graphs? Log in now!
npm install substance-io
|6||downloads in the last week|
|14||downloads in the last month|
|Last Published By|
|Version||0.2.0 last updated 5 months ago|
|Keywords||static site generator, markdown|
|Dependencies (21)||underscore, express, substance-application, substance-article, substance-data, substance-document, substance-commander, substance-chronicle, substance-converter, substance-library, substance-nodes, substance-operator, substance-reader, substance-regexp, substance-surface, substance-test, substance-toc, substance-util, lens-article, lens-outline, lens-converter|
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>
Managing collections and documents
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>