GoBG#

Previous name

This project was originally known as WiPyBG.

Go(lang) Book Generator is, as the name suggests, a book generator that aims to provide a quick and reliable way to produce HTML and/or \(\LaTeX\) books, being given a series of (enhanced) markdown documents.

Under the hood, it uses the IMD1 engine, which provides both a quick and reliable way of writing articles.

The project was specifically created primarily to aid the writing of my numerical methods book, but it was later used to ((re)re)create v-vintila.com.

Why I wrote my own solution?#

Q: There are many book/article generators out there, why build one from scratch?

The question isn't without merit, so I might as well address it. I wanted to write an open‑source book and I didn't find the tools I needed - in my case, a markdown IMD1 converter that generates a simple web interface (no node.js, no php etc.).

I also wanted to extend markdown's basic functionality and allow for complex math equations, code listings, figures with captions and more.

How does it work?#

A Python Go script will read a YAML configuration file that contains the basic structure of the book. Depending on the user's intention, the script can either generate said structure in a hierarchical file order, or it can take such a structure and convert it into HTML or even \(\LaTeX\) (which can then be converted to PDF via pdflatex).

For the HTML output, in order to display code listings, it uses highlight.js. For math equations, \(\KaTeX\) is being used as a drop-in replacement for \(\LaTeX\).

Source code#

As soon as the book is ready to ship, the project will become freely available on GitHub under the GNU GPLv3 License.

Thank you for your interest and patience!

WiPyBG#

Previously, this project was written in Python and used a normal Markdown engine. However, when upgrading to IMD1, I've ran into multiple issues that couldn't be fixed, so I've migrated everything to IMD1's native language, Go.