Webserver. Implementation of the Tornado library for the internal preview webserver.
CLI. Implementation of the cli init subcommand.
Epub. Implementation of epub version 3 as document target format.
Documentation. Documentation updates for API changes, added an Overview section with Installation, Quickstart and Features sections.
Builders. Implementation of thread locking and ThreadPoolExecutor for builder threads.
Builders. Implementation of process timeouts.
Templates. CSS updates to
Builder. Implementation of the builder framework for multithreaded and multiprocess compilation of documents and document dependencies.
Dependency Manager. Elimination of the dependency manager, which is now replaced by builders.
Tables. Tags to render tables.
Data. Tags to incorporate data into tables or plots.
Captions. Captions now render in html using the
Figures. Figures now render in html using the
Equations. Refactor image, equation and paragraph tags to automatically identify equations in a block paragraph, without specifying the equation environment (ex:
Feature Boxes. A box with a feature for a text, like an example box (
@examplebox) or a general featurebox (
Headings. The behavior of heading tags to not list the contents of the tag by default. Instead, a label tag is created, and the content of the tag is included if a
@label.titlemacro was included.
- 3.1. tex: Block equations (equations in their own paragraph) are written
without newlines before/after the environment in latex.
books/tufte. Remove indentation before captions.
Feature Boxes. Add the
@exampleboxtags to the language documentation.
Fixed the renaming of filenames with periods in converters. Created a new path utility,
rename, that more intelligently renames files.
Add local path (parent dir) to the search paths for each document
Files are copied both from the local path of a document or subdocument or the project root path.
Imagemagick. Implemented a
Wrap filenames and paths in curly braces for LaTeX
\includegraphicscommand. This is needed to deal with filenames that include special characters, like periods.
Implementation of the
@nexttags with signals
Implementation of a general
Implementation of signals.
Webserver. Implement sanic for preview server.
Heritable tags. Allow tags to be copied and inherited between documents. This enables
@toctags and navigation tags to be shared between a document and its subdocuments.
Navigation tags. Add navigations tags
@nextto add html links for the previous or next page. These are available as the
nextentries in the context.
Click. Implemented Click for the CLI
Flask. Removed the server interface from the project
Flask. Implement Flask web server for viewing the document list and rendered products.
BaseContext. Refactor to copy values from parent_context, rather than use a ChainMap implementation. This significantly speeds up look ups and loading of documents.
BaseContext. Create shallow copies of mutables from the parent_context so that these aren’t modified directly. This is only done for mutables that have
copymethods so that some mutables, like the
DependencyManager, can be preserved by all contexts and documents in a project
ProcessContextHeader. Refactor to use the new implementation of the BaseContext. The
ProcessContextHeadernow does the work of loading templates and loading additional context headers.
Renderers. Simplify the API.
Documentation. Update documentation to use sphinx.
Context. Rewrote context to work like a ChainMapping with inherited entries from a parent_context.
Paths. Allow relative links and urls.
TemplateStrings. Eliminated the TemplateString class with a replace_macro function.
Equation Tags. Implement a new pdf cropping converter to more cleanly crop equation images in targets like
Attributes. Refactored tag attributes to use an ordered dict instead of tuples. The Attributes class now includes useful utility functions, like filter and exclude.
Formats. Refactor the formatting of targets for tags with a new formats sub-module. This module now checks for allowed tags in the settings. The formats submodule also isolates the dependency of external packages, like lxml, to one place instead of multiple places.
Processors. Created a ProcessorABC abstract base class as a chain of command class for objects like tags and context. Included a simple listing of processors in the CLI.
Tags. Eliminate the ast submodule and replaced with a TagProcessor.
Document. Moved context processors to the document submodule and refactor to use the ProcessorABC.
Label Manager. Refactored to simplify the assignment of labels, the resetting of label counters and to minimize the dependency of labels for tags. Also added a set of label processors based on the ProcessorABC.