Hi Gour,

It seems that I have some similar quest to you, so I will try to answer about my approximation to documentation in the Pharo worl, even with the existance of Pillar (but being by no means any kind of expert on it, and of course this is my own experience, your mileage may vary).

On 25/12/15 11:02, Saša Janiška wrote:
Hiya,

I see that Pharo project has embraced Pillar system for documentation
purposes and my first question was "Why Pillar?" since, iirc, comparison
was made with e.g Markdown which is, obviously, not sufficient for eg.
authoring books, but there are more capable markups with 'standard'
implementations like rst/Sphinx and Asciidoc(tor).

Then I thought it must be some deeper reason, iow. something suitable to
work more closely with Pharo itself.

Now I have two questions:

1) Can someone answer in more detail "Why Pillar?" and

Seems that the reasons exposed in this tread are: It predated markdown, so was already used inside the community, and gives us finer control on the overall markup language, including exporting formats. I have tested several light markup languages for documentation including markdown, reST, AsciiDoc, dokuwiki, wikimedia, tiddly wiki, text2tags (t2), among others. There are several features that are desirable in many of them, like nice evoking notations of t2t and dokuwiki, wide support for exporting formats of reST, readability of AsciiDoc regarding extending features, the spread of Media wiki or nice modular approach to documentation of tiddly wiki. Surely the two reasons for pillar are also good ones. How do you balance this options?

Before reentering Pharo I was thinking in something like an extensible light markup language, like t2t, but instead of using regular expression (t2t uses them), it would use something like yaml[1] and a processor of these serialized data for different exporters. The idea of combining light markup languages for documentation and data serialization seems to become more popular these days. Two projects implement this idea Pandoc[2] and Grav[3] and both use a combination of markdown and yaml.

[1] https://en.wikipedia.org/wiki/YAML
[2] http://pandoc.org/
[3] http://getgrav.org/

So, how this could be combined with the offerings of Pharo? My bet is on pandoc (markdown+yaml) for writing almost anything, with some advantages over pillar:

a. It has a bigger momentum with projects like scholarly markdown ([4] http://scholmd.org/) b. It has support for bibliographic references, footnotes a a more complete feature set.

The finer control would be offered by using abstract syntax trees (AST) for more detailed manipulation, which is already used to extend pandoc with languages like ruby, lua, perl (see examples in [5] http://pandoc.org/scripting.html) and could be used, theoretically with Pharo. That's where metamodels used by Pillar could be used, so we could extend pandoc inside Pharo, while using markdown + yaml as a common language to write prose with other authors beyond this community, because Pillar is used only here, while markdown is becoming more used as a cross-community language for documentation, including Jupyter notebooks that combine documentation with languages like R, Julia, Haskell or Python.

This lead me to your next point:


2) For some time I was considering whether to settle on using rst or
AsciiDoc for *all* my writings, which means blog posts, my study notes,
preparing books, writing articles etc.

Since I've settled to use Python-powered static-site-generator (Nikola)
along with reStructuredText markup which can call external 'compilers'
to process blog posts written in specific markup, I wonder if it would
be possible to use Pillar markup with it since it seems there is cli for
it?

I have been using Nikola myself and keeping myself under a more cohesive python environment for making my publishing and scripting/programming exploration. That changed after knowing Pharo/Roassal/Moose and now I try to "live inside" these technologies most of the time for my own interactive documentation and visualization project[6] and connect with the external world via standards & formats like Json, cvs, yaml and markdown. That's why now I'm using grav instead of Nikola for my web publishing. Ecstatic have more powerful things like a logic-less approach to templating via mustache, that is neutral to the underlaying language, while grav templating is tied to php, but grav seems more developed and with more ready to use templates or skeletons for web publishing, so, once installed, you barely touch any underlaying technology beyond markup languages. More details on the transition/combination of grav/nikola can be found on [7].

[6] http://mutabit.com/grafoscopio/index.en.html
[7] http://mutabit.com/offray/blog/es/entry/2015-10-06-grav-nikola-both

So, while I think that choosing Pharo technologies is better for making them more mature, tested and used, I also think that is important to choose proper balance to know which combination of Pharo technologies and external ones is adequate. That depends on each user. In my case, living inside Pharo for almost anything and choosing markdown + yaml for writing and publishing (via pandoc and grav) have worked very well and could be a working combination for you also. That doesn't preclude further exploration and use of other related Pharo technologies like Pillar and Ecstatic, but this could be made in the future via metamodels/ASTs or as a way to extend/modify the way Pharo interacts or integrates with the external world... well I'm getting kind of philosophical here, but that would be my middle term approach on publishing and markup languages.

Cheers,

Offray

Ps: Would you mind to share more details about your project. The questions you're asking for it are pretty interesting.

Reply via email to