Foliant is an all-in-one single-source documentation authoring tool. It lets you produce standalone documents in pdf and docx, build static websites and upload pages to Confluence, all from single Markdown source.
Foliant is a higher order tool, which means it uses other programs to do its job. For building pdf and docx, it can use Pandoc or md-to-pdf, for websites MkDocs, Aglio or Slate.
Foliant preprocessors let you reuse parts of your documents, show and hide content with flags, render diagrams from text, and much more.
Foliant is highly extensible, so if it lacks some functions or output formats you can always make a plugin for it or request one from our team.
Foliant Documentation website.
Foliant is written in Python and requires Python 3.6.
To install Foliant, use pip:
$ pip install foliant
Backends, extensions, and preprocessors are installed with pip as well. For the Quickstart, you'll need the MkDocs backend and init CLI extension:
$ pip install foliantcontrib.mkdocs foliantcontrib.init
To build pdf and docx, install the Pandoc backend:
$ pip install foliantcontrib.pandoc
$ foliant init
Enter the project name: Hello Foliant
✓ Generating Foliant project
─────────────────────
Project "Hello Foliant" created in /path/to/hello-foliant
This command creates a basic Foliant project:
hello-foliant/
├── foliant.yml
└── src
└── index.md
1 directory, 2 files
foliant.yml
is the project config file, src
is the directory that contains the project source files (initially, just one file index.md
).
$ foliant make site -p hello-foliant/
✓ Parsing config
✓ Applying preprocessor mkdocs
✓ Making site with MkDocs
─────────────────────
Result: Hello_Foliant-0.1.0-2017-11-24.mkdocs
$ cd Hello_Foliant-0.1.0-2017-11-24.mkdocs
$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
$ foliant make pdf -p hello-foliant/
✓ Parsing config
✓ Applying preprocessor mkdocs
✓ Making pdf with Pandoc
─────────────────────
Result: Hello_Foliant-0.1.0-2017-11-24.pdf
Important
To produce pdf, Pandoc first converts Markdown to tex and then coverts it to pdf. To convert pdf > from tex, you need to have a LaTeX distribution installed: