{"id":13770442,"url":"https://github.com/pillar-markup/pillar","last_synced_at":"2025-12-28T17:54:39.550Z","repository":{"id":1635517,"uuid":"41843105","full_name":"pillar-markup/pillar","owner":"pillar-markup","description":"Markup syntax and associated tools to write and generate documentation, books and slides","archived":false,"fork":false,"pushed_at":"2025-02-20T12:52:33.000Z","size":11431,"stargazers_count":52,"open_issues_count":256,"forks_count":38,"subscribers_count":13,"default_branch":"dev","last_synced_at":"2025-03-30T04:09:48.514Z","etag":null,"topics":["markup","markup-language","pharo","pillar"],"latest_commit_sha":null,"homepage":"","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pillar-markup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-03T05:16:04.000Z","updated_at":"2025-02-20T12:52:37.000Z","dependencies_parsed_at":"2023-07-05T18:32:35.624Z","dependency_job_id":"15643dd8-2a59-46e9-b066-18e9d61b7cfe","html_url":"https://github.com/pillar-markup/pillar","commit_stats":{"total_commits":1726,"total_committers":31,"mean_commits":55.67741935483871,"dds":"0.49362688296639634","last_synced_commit":"59b16db09dc90a719452dabb9538d61910326dad"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pillar-markup%2Fpillar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pillar-markup%2Fpillar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pillar-markup%2Fpillar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pillar-markup%2Fpillar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pillar-markup","download_url":"https://codeload.github.com/pillar-markup/pillar/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247436395,"owners_count":20938554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markup","markup-language","pharo","pillar"],"created_at":"2024-08-03T17:00:37.528Z","updated_at":"2025-12-28T17:54:39.544Z","avatar_url":"https://github.com/pillar-markup.png","language":"Smalltalk","funding_links":[],"categories":["Data interexchange format"],"sub_categories":[],"readme":"# Pillar\n\n\u003ca href=\"https://www.pharo.org\"\u003e\n    \u003cimg alt=\"Pharo\" src=\"https://img.shields.io/static/v1?style=for-the-badge\u0026message=Pharo\u0026color=3297d4\u0026logo=Harbor\u0026logoColor=FFFFFF\u0026label=\" /\u003e\n\u003c/a\u003e\n\nPillar is a documentation compilation chain taking documents written in Microdown (and Pillar) and producing books and slides.\n\nPillar is now the name of the compilation chain and the syntax language is Microdown. \n\n## History\n\nPillar was a markup syntax and tool-suite to generate documentation, books, websites and slides. Pillar as a markup is not new, it was invented around 2000 as a supporting language for [SmallWiki](https://www.slideshare.net/esug/smallwiki-smalltalk-wiki-towards-cms): one of the first wiki using OOP for real. Its syntax was based on the one of the original Wiki from Ward Cunningham. From SmallWiki it became the markup of the Pier CMS (which was an application server written in Seaside). \nThen we extracted it from Pier to make it more applicable to different domains. \nIn recent years we migrated all the transformation logic (parser, asts, visitors to Microdown). \nThe Pillar markup has been retired from the compilation chain. Now Pillar edition chain only supports Microdown syntax.\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://img.shields.io/badge/license-MIT-blue.svg)\n\n## Installation\n\n### 1. Building from sources\nFor HTTPS setup, execute the `build.sh` script found in the `scripts` directory:\n\n### Here is the latest version for Pharo 13.\n\nLean Pillar only Microdown format\n```bash\n$ git clone https://github.com/pillar-markup/pillar.git\n$ cd pillar\n$ git checkout v11.0.1\n$ chmod a+x ./scripts/build.sh\n$ ./scripts/build.sh\n```\n\n\nWith pillar format support\n```bash\n$ git clone https://github.com/pillar-markup/pillar.git\n$ cd pillar\n$ git checkout v10.4.5\n$ chmod a+x ./scripts/build.sh\n$ ./scripts/build.sh\n```\n\n\n### Here is the latest version for Pharo 12.\n```bash\n$ git clone https://github.com/pillar-markup/pillar.git\n$ cd pillar\n$ git checkout v10.4.3\n$ chmod a+x ./scripts/build.sh\n$ ./scripts/build.sh\n```\n\n### Here is the latest version for Pharo 11.\n```bash\n$ git clone https://github.com/pillar-markup/pillar.git\n$ cd pillar\n$ git checkout v9.0.1\n$ chmod a+x ./scripts/build.sh\n$ ./scripts/build.sh\n```\n\n\n### Here is the latest version for Pharo 10.\n```bash\n$ git clone https://github.com/pillar-markup/pillar.git\n$ cd pillar\n$ git checkout v8.3.2\n$ chmod a+x ./scripts/build.sh\n$ ./scripts/build.sh\n```\n\n\nThe script will create a `build` directory in your current working directory with the pillar installation.\n\n```bash\n$ ls\nLICENSE  README.md  appveyor.yml  archetypes  ==\u003e\u003ebuild\u003c\u003c==  download.sh  scripts  src\n```\n\n### 2. Setting up the environment\n\nYou can then proceed to install that pillar build where you want.\nFor example, you can place it in a hidden directory in your home directory:\n\n```bash\n$ cd ..\n$ mv pillar ~/.pillar\n```\n\nThen add that directory to the `PILLAR_HOME` and `HOME` environment variables, for example, by modifying your `.bashrc` with\n\n```bash\nexport PILLAR_HOME=\"$HOME/.pillar\"\n```\n\nTo make the `pillar` command available in your shell you can:\n- either symlink the `pillar` script into your `~/bin` (or `~/.local/bin` on some environments) folder using:\n```bash\nln -s $PILLAR_HOME/build/pillar ~/bin/pillar\n```\n- or add the build folder into your `PATH` environment variable, for example by adding into your `.bashrc` (or shell startup):\n```bash\nexport PATH=\"$PATH:$PILLAR_HOME/build\"\n```\n\n### 3. Install external dependencies\n\nYou 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.\n\n#### Installing `LaTeX` on OSX\n\nThe simplest installation is to do a full Mactex installation. Just follow the instructions in https://www.tug.org/mactex/\n\n#### Installing `LaTeX` on *nix\n\nThe simplest way to install `LaTeX` on unix is to install texlive-full in your system using your preferred package manager.\n\n#### Installing `LaTeX` on Windows\n\nInstall a `LaTeX` distribution such as [MiKTeX](https://miktex.org/) 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:\n\n#### Tailored installation (for non-full lovers)\nProducing pdf documents with Pillar requires a `LaTeX` installation with certain packages.\nCheck the ensure-deps.sh files and the support/latex.\n\n## Getting started\n\nTo create a book, you can start by installing the book archetype in a directory where you want to manage it:\n\n```\n$ mkdir my-new-book\n$ cd my-new-book\n$ pillar archetype bod-book\n```\n\nYou can then edit the pillar files and the pillar configuration file `pillar.conf`.\nFinally, you can generate your book in pdf using.\n\n```\n$ pillar build pdf\n```\n\nOr in html:\n\n```\n$ pillar build html\n```\n\nThe resulting pdf or html site will be written into the `_result` directory.\n\n#### All commands\n\nAdd the `-h` flag to get documentation.\n\n**pillar build**\nIt builds by default the export format found in `pillar.conf` at `defaultExport` target.\n\n**pillar archetype**\n\n**pillar updateTemplate**\n\n## Contributing to Pillar\n\nThe current pillar version is being developed using [Pharo13](www.pharo.org).\nTo contribute, the easiest way to to follow the previous scripts and send PullRequests.\nUse the latest dev as a root for your changes.\n\n### Cleaning first \n\nFirst remove existing packages from the Pharo distribution.\n\n```\n#( 'Microdown' 'BeautifulComments' 'DocumentBrowser' ) do: [ :name |\n\t\t(IceRepository repositoryNamed: name)\n\t\t\tifNil: [ self inform: 'Project not found: ' , name ]\n\t\t\tifNotNil: [ :found |\n\t\t\t\tfound\n\t\t\t\t\tunload;\n\t\t\t\t\tforget ] ].\n\nSmalltalk globals\n\tat: #BaselineOfMicrodown \n\tifPresent: [ :c | c removeFromSystem ].\n\n```\n\nThe following script can be useful if you develop using the launcher and want to try to execute the image as from a pillar command\n\n```\n/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\n```\n\n\n## History\n\nThe development of Pillar and Microdown are now in Pharo 13.\n\n\n### For Pharo 13\n- v10.4.5 [ Pharo 13 - Pillar \u0026 Microdown syntax ]\n\t- Revisit all commands and make them work in Pharo13\n \t- Latest version with Pillar syntax\t \t\n\n- v10.4.4 bogus\n### For Pharo 12 \n\n- v10.4.3 [Use MicWriter for HTML output]\n\n- v10.4.2 [Last version supporting Pillar documents]\n\t- Use Microdown generators\n\t- Mustache v1.3\n\t- Microdown v2.9.2\n- v10.4.0\n\t- Cleaned archetypes\n  \t- New documentation inside the bod-book template with the full syntax explained. \n\t- Uses Microdown V2.7.1: introduces new elements to support Foliage and web generation. It improves the document checker. Now the following analyses are reported: duplicated anchors, references to unexisting anchors, unreferenced figures, missing figure files, and missing input files.\n\t- It has been tested with the bod-book updated archetype.\n\t\n- v10.2.0\n\t- New book checkers: checks for undefined or duplicated anchors, bogus inputfile\n\t- Support for slides as header e.g. # a nice title\n\t- Conversion of slides from pillar to Microdown\n\t- Nicer support for extension e.g. {!comment|contents=sd thinks there is something fishy!} now can be expressed as {!comment|sd thinks there is something fishy!}`\n\t- Cleaned book. Now pillar archetype bod-book can fully build on GH - check the workflows files that are automatically installed.\n\t- Two new archetypes are proposed: microdown-mooc and microdown-headerformat-mooc.\n\t- Support for github actions with LaTeX.\n\n- v10.1.0 \nIntroduces new template for slides - microdown-mooc (based on extension \u003c!slide...!\u003e) and microdown-headerformat-mooc (using top-level header as slide definition marker. It uses Microdown v2.5.5.\n- v10.0.1 Introduces figure arguments in caption instead of url for better integration with Github.\n- v10.0.0 bug fix with some links problems due to new inline parser.\n\n### For Pharo 11 \n- v9.0.1 Fixing link problems.\n- v9.0.0 loading in Pharo 11.\n\n### For Pharo 10\n- v8.3.2 fixed baseline and updated readme\n- 8.3.0 full support for microdown and pillar books using MD v2.3.1\n- 8.2.7 [Bogus] full support for microdown and pillar books (but it did load the correct version of microdown)\n- 8.2.6 [Bogus] full support for microdown and pillar books (but it did load the correct version of microdown)\n- 8.2.4-5 introduced hooks for file include in Pillar and microdown\n- 8.2.3 remove temporary PRMicrodownWriter (since it was ported to MicrodownV2)\n- 8.2.2 \n-- cache table of contents to avoid quadratic search\n-- Ready for P10 SubOSProcess 1.4, ifError:  \n- 8.2.1 remove pillar before loading\n- 8.2.0 Change microdownDev to Microdown 1.0.0\n- 8.0.15 \n- 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.\n- 7.7.4 Last version before moving to P8.\n- 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.\n- 7.7.0 cleaned useless features, plus travis builds.\n- 7.5.0 introduces environments (${begin:card|x=12}$ ... ${end:card}$\n- 7.4.1 introduces element-based templating (templates found in a given folder are used to output one given element).\n\n## Planned development\n- Take advantage of booktester\n- Check Macrodown and Foliage\n- Stronger support for math\n- Use Templating for LaTeX\n- Integration with Citezen\n- Better templates for Web\n- New markup for natural nesting (not forcing closing markup)\n\n## Old and obsolete documentation\n\nRead the documentation at [https://github.com/SquareBracketAssociates/Booklet-PublishingAPillarBooklet](https://github.com/SquareBracketAssociates/Booklet-PublishingAPillarBooklet).\nPlease note that chapter on \"Pharo a web Perspective\" is obsolete since it refers to Pharo 60.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpillar-markup%2Fpillar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpillar-markup%2Fpillar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpillar-markup%2Fpillar/lists"}