Pillar is a markup syntax and tool-suite to generate documentation, books, websites and slides. Pillar is not new, it was invented around 2000 as a supporting language for SmallWiki: one of the first wiki using OOP for real. Its ancestor was the markup for the Pier CMS and we extracted it from Pier to make it more applicable to different domains. The Pillar syntax is similar to markdown but its emphasis is on publishing and how it handles different types of links.
Now in the latest version Pillar we are supporting Microdown syntax and migrating all the support to Microdown while supporting the Pillar syntax for backward compatibility reasons. We can migrate automatically books from Pillar syntax to Microdown syntax (compatible with markdown).
In the future Pillar will be the name of the compilation chain and the syntax language will be Microdown.
For HTTPS setup, execute the build.sh
script found in the scripts
directory:
$ git clone https://github.com/pillar-markup/pillar.git
$ cd pillar
$ git checkout v10.1.0
$ chmod a+x ./scripts/build.sh
$ ./scripts/build.sh
$ git clone https://github.com/pillar-markup/pillar.git
$ cd pillar
$ git checkout v9.0.1
$ chmod a+x ./scripts/build.sh
$ ./scripts/build.sh
$ git clone https://github.com/pillar-markup/pillar.git
$ cd pillar
$ git checkout v8.3.2
$ chmod a+x ./scripts/build.sh
$ ./scripts/build.sh
The script will create a build
directory in your current working directory with the pillar installation.
$ ls
LICENSE README.md appveyor.yml archetypes ==>>build<<== download.sh scripts src
You can then proceed to install that pillar build where you want. For example, you can place it in a hidden directory in your home directory:
$ cd ..
$ mv pillar ~/.pillar
Then add that directory to the PILLAR_HOME
and HOME
environment variables, for example, by modifying your .bashrc
with
export PILLAR_HOME="$HOME/.pillar"
To make the pillar
command available in your shell you can:
- either symlink the
pillar
script into your~/bin
(or~/.local/bin
on some environments) folder using:
ln -s $PILLAR_HOME/build/pillar ~/bin/pillar
- or add the build folder into the your
PATH
environment variable, for example by adding into your.bashrc
(or shell startup):
export PATH="$PATH:$PILLAR_HOME/build"
You need to have a LaTeX
installation in your machine. The simplest is to do a full installation, otherwise read below for a more tailored solution.
The simplest installation is to do a full Mactex installation. Just follow the instructions in https://www.tug.org/mactex/
The simplest way to install LaTeX
on unix is to install texlive-full in your system using your preferred package manager.
Install a LaTeX
distribution such as MiKTeX and install the dependencies specified below using the provided package manager. Then, make sure the bin directory is in your PATH environment variable. For example this could be the following value:
Producing pdf documents with Pillar requires a LaTeX
installation with certain packages.
Pillar 7.7.3 introduced the possibility to use LaTeX 2018 or the rolling version of 2019.
Check the ensure-deps.sh files and the support/latex.
To create a book, you can start by installing the book archetype in a directory where you want to manage it:
$ mkdir my-new-book
$ cd my-new-book
$ pillar archetype bod-book
You can then edit the pillar files and the pillar configuration file pillar.conf
.
Finally, you can generate your book in pdf using.
$ pillar build pdf
Or in html:
$ pillar build html
The resulting pdf or html site will be written into the _result
directory.
Add the -h
flag to get documentation.
pillar build
It builds by default the export format found in pillar.conf
at defaultExport
target.
pillar archetype
pillar updateTemplate
pillar serve
The current pillar version is being developped using Pharo12. To contribute, the easiest way to to follow the previous scripts and send PullRequests. Use the latest dev as a root for your changes.
First remove existing packages from the Pharo distribution.
#( 'Microdown' 'BeautifulComments' 'DocumentBrowser' ) do: [ :name |
(IceRepository repositoryNamed: name)
ifNil: [ self inform: 'Project not found: ' , name ]
ifNotNil: [ :found |
found
unload;
forget ] ]
The following script can be useful if you develop using the launcher and want to try to execute the image as from a pillar command
/Users/ducasse/Documents/Pharo/vms/100-x64/Pharo.app/Contents/MacOS/Pharo /Users/ducasse/Documents/Pharo/images/P11-PillarRealReference/P10-PillarRealReference.image clap build pdf index.pillar
The development of Pillar and Microdown are now in Pharo 12.
- V10.1.0 Introduces new template for slides - microdown-mooc (based on extension <!slide...!>) and microdown-headerformat-mooc (using top-level header as slide definition marker. It sses Microdown v2.5.5.
- v10.0.1 Introduce figure arguments in caption instead of url for better integration with Github.
- v10.0.0 bug fix with some links problems due to new inline parser.
- v9.0.1 Fixing link problems.
- v9.0.0 loading in Pharo 11.
- v8.3.2 fixed baseline and updated readme
- 8.3.0 full support for microdown and pillar books using MD v2.3.1
- 8.2.7 [Bogus] full support for microdown and pillar books (but it did load the correct version of microdown)
- 8.2.6 [Bogus] full support for microdown and pillar books (but it did load the correct version of microdown)
- 8.2.4-5 introduced hooks for file include in Pillar and microdown
- 8.2.3 remove temporary PRMicrodownWriter (since it was ported to MicrodownV2)
- 8.2.2 -- cache table of contents to avoid quadratic search -- Ready for P10 SubOSProcess 1.4, ifError:
- 8.2.1 remove pillar before loading
- 8.2.0 Change microdownDev to Microdown 1.0.0
- 8.0.15
- 8.0.12 Tagged versions from 8.0.4 to 8.0.12 excluded got broken due to a class renaming. 8.0.12 is now green tests and loads. It is the future candidate for stable.
- 7.7.4 Last version before moving to P8.
- 7.7.3 introduces the possibility to use LaTeX 2018 or the rolling version of 2019. Check the ensure-deps.sh and companion travis file in the support/latex of the archetype.
- 7.7.0 cleaned useless features, plus travis builds.
- 7.5.0 introduces environments (${begin:card|x=12}$ ...
${end:card}$ - 7.4.1 introduces element-based templating (templates found in a given folder are used to output one given element).
- Take advantage of booktester
- Check Macrodown and Foliage
- Stronger support for math
- Use Templating for LaTeX
- Integration with Citezen
- Better templates for Web
- New markup for natural nesting (not forcing closing markup)
Read the documentation at https://github.com/SquareBracketAssociates/Booklet-PublishingAPillarBooklet. Please note that chapter on "Pharo a web Perspective" is obsolete since it refers to Pharo 60.