# Sharing Documents & Archiving Versions

I've added two new features this past week to http://www.knode.io —archiving versions and sharing documents with collaborators.  To access these features, go to the editor and click on the sprocket icon in Figure 1.  You will then see a set of controls, among which the one you see in Figure 2 below. Versions To save … Continue reading Sharing Documents & Archiving Versions

# Building the MiniLatex the Parser

MiniLatex Demo App In this article we discuss the overall design of the MiniLatex parser. Its function is to translate source text into an abstract syntax tree (AST). This is a recursive, tree-like structure that "understands" the grammar of LaTeX.  Recursiveness is what makes it possible to have environments nested with environments which may themselves have … Continue reading Building the MiniLatex the Parser

# Using Macros in MiniLatex


# Handling Latex Errors: Emulating Elm

One of the many things that I admire about Elm as a programming language is the quality of the compiler's error messages.  The "hooks" for providing good error messages are provided by the Error data structure in the elm-tools/parser package.  The goal, then, is to make MiniLatex producs as informative and helpful as does Elm.  This work … Continue reading Handling Latex Errors: Emulating Elm

# Bibliographies

Today I posted changes to MiniLatex that allow users to create bibliographies in the customary way using \cite in the body of the document and \bibitem for entries in the bibliography.  Whenever the user presses the full-render button, the citations are resolved in the text as live links in the HTML rendered on-screen.  Since the syntax used … Continue reading Bibliographies

# Building MiniLatex

The goal of the MiniLatex project is to put a defined subset of LaTeX in the browser.  This means being able to "live edit" LaTeX in a web app and to immediately see the result rendered as web page -- well, if not immediately, at least very, very quickly!  Another goal is to never, ever … Continue reading Building MiniLatex