Skip to content

Chunked HTML Manual #78

Description

@tajmone

We need to start experimenting with HTML chunking — i.e. splitting the single-file book into one file per chapter.

Currently, the only viable options seems the asciidoctor-chunker tool, created by @wshito.


Overview

Splitting the single file The ALAN Manual into one file per chapter would allow us to achieve the following goals:

  1. Publish the book on the GitHub Pages repository website in a more orderly manner.
  2. Create an executable eBook for Windows (using a commercial eBook compiler, I have a few of them already).

Roadmap

We need to carry out some local tests first, and once (if) we get good results, we could start looking into automating the whole process of chunking the output book and updating the GH Pages website via some CI service (of course, the eBook creation will have to be done locally).

If we get to that stage, we could then think of publishing all ALAN-related documents (including the StdLib Manual, by fetching a pre-processed "coalesced" single-doc AsciiDoc source and build it inside this repo, since they share common assets).

A Few Side Notes

  1. Installing asciidoctor-chunker under Windows also requires installing additional dependencies:

    1. Roswell — Common Lisp environment setup Utility.
    2. Scoop — A command-line installer for Windows.

    Unfortunately there doesn't seem to be any shortcut to this, since asciidoctor-chunker depends on a Roswell script, so there's no standalone binary version at the end of the line.

    Once we've tested enough to come up with a safe "recipe" on how to use asciidoctor-chunker, we should be able to unload the burden on some CI service — but for creating the executable eBook I'll still need to have asciidoctor-chunker running locally, because of the proprietary book compiler software.

  2. Maybe in the future, when we have more time at hand (and successfully managed to publish the chunked book both online and as an exe-book) we might look into creating a standalone binary tool to chunk the HTML documents, which possibly could be tailored to our needs.

This shouldn't be too hard, but it will definitely take time. I've peeked at the Lisp sources of asciidoctor-chunker, and the tasks it carries out are fairly straight forward (obviously, relying on some external libraries). So, we could use any language that supports similar libraries for parsing XML/HTML documents (e.g. Expat), etc.

  1. Also, we should really get rid of the highlight.js dependency before taking this step, and use a static highlighter — e.g. Highlight or Rogue. Regarding the current problems which are preventing the switch to Highlight for the ALAN Manual, see Issues Switch to Highlight #49, ALAN Manual: Switch to Highlight #50, and Enable Callouts in AsciiDoc Extension for Highlight #36 (in particular).

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    📖 Alan ManualIssues relating to "The Alan Language Manual"💡 enhancementA new feature or enhancement request/proposal👑 HTML FormatIssues with conversion to HTML format🔨 AsciidoctorTool: Asciidoctor🔨 GH PagesTool: GitHub Pages (repo website)🔬 researchIssue requires further researching⚠️ neededPriority: Medium

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions