Frundis: FAQ

1 General Questions

1.1 Why a new markup language?

Authoring of novels can benefit from a language that allows both quality PDF and EPUB exports, semantic markup capabilities to ease maintenance and refactorings, a lightweight enough and simple syntax that plays nice with external tools, line comments, some basic user defined macro capabilities for conveniency and to abstract output-format or language specific code, and good error messages to enable quick fixes and provide assurance on the result’s quality.

Most markup languages that allow for the appropiate exports fail to satisfy some of the other criterias. For example markdown fails on all criterias except for the “lightweight enough”, HTML is verbose, lacks macros without external tools and does not facilitate good PDF export, and LaTeX only provides excellent PDF quality, comments and semantic markup capabilities among all the criterias. Asciidoctor, a language with lightweight -though not so simple- syntax and a very large set of features, satisfies many of the criterias, but while it has something called “macros”, those refer to something different than user defined macros, and the tool lacks support for good warning reporting and catching markup typos. Scribble, the Racket documentation tool, also checks many of the boxes, but has more of a focus on documentation, and its extension capabilities are tightly coupled with the Racket programming language, increasing the learning curve and limiting its potential audience.

1.2 Is there any editor support for frundis?

There is a syntax file for vim in the doc/vim/syntax folder. Otherwise, the mode for roff documents in most editors should be good enough.

1.3 Is there a way to program with loops and arithmetic?

No, you have to use a programming language to programmatically generate frundis content if you need these features. The programming facilities provided by frundis only aim to cover the most common uses and are limited on purpose, so as to keep the language simple and preserve its good error reporting. Moreover, frundis syntax is well-suited for markup, but not for programming.