sile-typesetter / sile

The SILE Typesetter — Simon’s Improved Layout Engine
https://sile-typesetter.org
MIT License
1.67k stars 98 forks source link

Publish manual as a website #1692

Open nawordar opened 1 year ago

nawordar commented 1 year ago

I'm just trying SILE and I stumbled upon the same problem as with TeX, LuaTeX, ConTeXt etc. — the documentation is only available as PDF which is not easily searchable. I understand that PDF allows to show off the typesetter capabilities, but it's just not very practical for software documentation. I see that SILE supports creating custom outputters, so maybe an HTML outputter could be created for that?

Related issue: #1337 (leet!) — this one is for developer documentation, but I think that manual could benefit from being available as a website too.

alerque commented 1 year ago

We've certainly considered this and from time to time it still crosses my mind, but there is a huge problem with the idea: the developer docs with Lua APIs are a little bit different, but as far as end user facing document commands and classes go the thing we are documenting is specifically designed for output to PDF / print. Having the documentation in PDF allows the techniques to de demonstrated inline. The alternative would be we need to generate HTML or some other markup and also generate a million illustration images that are snippets of PDF's converted to images so the examples can be seen. Even at that the result would not be nearly as informative as seeing the changes inline in the PDF.

It's not off the table entirely, but even if we were to write up a new outputter which mimicked the PDF output in some other markup environment, the results would inevitably be different and lead to confusion.

nawordar commented 1 year ago

You're right, this is more complicated than I thought. I've just started learning SILE and I haven't read the whole manual yet, so maybe I created this issue too soon.

Maybe the ConTeXt approach isn't that bad: have a wiki for quick information and a PDF for more in-depth knowledge? I see that there is already wiki enabled on this repository, but it mentions that it's aimed at developers

nawordar commented 1 year ago

I've just learned that TikZ has an unofficial HTML documentation at https://tikz.dev. It is converted from LaTeX using lwarp. I haven't yet looked at how that package works, but the results look really good. Just saving it for the future reference, so maybe I will look into it later.

hegjon commented 10 months ago

Not sure if if it is possible to convert the PDF into a input format that Pandoc supports? https://pandoc.org/MANUAL.html#general-options

Specify input format. FORMAT can be:

Omikhleia commented 10 months ago

@hegjon

Not sure if if it is possible to convert the PDF into a input format that Pandoc supports

No, not really, because (as @alerque actually mentions above), the current manual in many places demonstrates things that result from processing, and would lose that in the conversion process from the source.

As mentioned, an HTML outputter could be created (I have a raw experimental one actually -- but there would be a lot more things needed to make it useful)...

Or, of couse, one could make a subset of the documentation without the actual demonstrations...

alerque commented 10 months ago

As @Omikheia says..

On the flip side, we can use code snippets to generate images to embed the demonstration output into a web version of the docs.

Any such attempt to retool should come after the more approachable step of generating API docs for Lua and Rust APIs. These would be much more technical and coding oriented (the expected arguments and variables) than design oriented and would be much easier to present in a web format while still keeping the "Manual" in a typeset format that much more readily demonstrates concepts instead of just talking about them.

hegjon commented 10 months ago

No, not really, because (as @alerque actually mentions above), the current manual in many places demonstrates things that result from processing, and would lose that in the conversion process from the source.

I discovered the same when playing around with converting the manual.