Skip to content

bennyboer/letter

Repository files navigation

Letter - Document layout engine

This is the successor of the Thaw prototype to be written in Rust

Development Progress

A "Walking skeleton" is currently being developed. Check out the project page for an overview: https://github.com/bennyboer/letter/projects/2

Idea

A document essentially is a hierarchical structure of data with common elements like headlines, paragraphs, images, tables, and so on. Most layout engines fall to the idea that documents are a linear sequence of elements, which is not the case.

For example a book consists of chapters, which consist of sections, which consist of paragraphs, which consist of sentences, which consist of words, which consist of letters. A table consists of rows, which consist of cells. Also, a section may be a child of another section, which is called a subsection. When having a subsection all headlines are by default smaller than those of the parent section.

In HTML they have several elements for headlines of different sizes, whereas in Letter there is only one. In LaTeX there is a macro for a chapter, a section, a subsection and a subsubsection, but not below. In Letter there is only one element for a section which you may nest to any depth you want. Want a subsubsubsubsubsubsection? Why not.

Process

  • Parsing the input files (*.lsc for document structure and content, *.lst for styles, *.lmd for metadata and variables) to a document
  • Laying out the document (see here)
  • (optionally) Rendering the document (PDF, ...)

About

Document layout engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages