summaryrefslogtreecommitdiff
path: root/src/library
AgeCommit message (Collapse)Author
2021-03-22More consistent documentation ๐Ÿ“Laurenz
2021-03-22Fix bug with line spacing after headings โœ…Laurenz
2021-03-21Syntax functions ๐Ÿš€Laurenz
This adds overridable functions that markup desugars into. Specifically: - \ desugars into linebreak - Two newlines desugar into parbreak - * desugars into strong - _ desugars into emph - = .. desugars into heading - `..` desugars into raw
2021-03-20Square, circle and ellipse ๐Ÿ”ตLaurenz
2021-03-19Text colors ๐Ÿฆฉ (#18)Martin
2021-03-19Scheduled maintenance ๐Ÿ”จLaurenz
- New naming scheme - TextNode instead of NodeText - CallExpr instead of ExprCall - ... - Less glob imports - Removes Value::Args variant - Removes prelude - Renames Layouted to Fragment - Moves font into env - Moves shaping into layout - Moves frame into separate module
2021-03-19Add basic paragraph function ๐Ÿ“‘Laurenz
Allows to change: - (paragraph) spacing - leading - word-spacing
2021-03-19Configurable font edges โš™Laurenz
Adds top-edge and bottom-edge parameters to the font function. These define how the box around a word is computed. The possible values are: - ascender - cap-height (default top edge) - x-height - baseline (default bottom edge) - descender The defaults are chosen so that it's easy to create good-looking designs with vertical alignment. Since they are much tighter than what most other software uses by default, the default leading had to be increased to 50% of the font size and paragraph spacing to 100% of the font size. The values cap-height and x-height fall back to ascender in case they are zero because this value may occur in fonts that don't have glyphs with cap- or x-height (like Twitter Color Emoji). Since cap-height is the default top edge, doing no fallback would break things badly. Removes softness in favor of a simple boolean for pages and a more finegread u8 for spacing. This is needed to make paragraph spacing consume line spacing created by hard line breaks.
2021-03-17Formatting and documentation โœจLaurenz
2021-03-17Switch from name to ratio for font stretch parameter ๐Ÿ“Laurenz
2021-03-17Rename box to rect and color to fill โœLaurenz
2021-03-13Factor out alignment deduplication into separate function โ™ปLaurenz
2021-03-12Fix pagebreak-in-box bug โœ”Laurenz
2021-03-12Refactor execution context ๐Ÿ—Laurenz
- The execution context is a lot more structured: Instead of a magic stack of arbitrary objects there are static objects for pages, stacks and paragraphs - Page softness/keeping mechanic is now a lot simpler than before
2021-03-12Rename ChildAlign to LayoutAligns โœLaurenz
2021-03-11Better expansion behaviour ๐ŸชLaurenz
This makes expansion behaviour inheritable by placing it into the area and passing it down during layouting instead of computing some approximation of what we want during execution.
2021-03-10Pad function ๐Ÿ”ฒLaurenz
2021-03-10Move around library types ๐ŸššLaurenz
2021-03-03Closures and function definitions ๐Ÿš€Laurenz
Supports: - Closure syntax: `(x, y) => z` - Shorthand for a single argument: `x => y` - Function syntax: `let f(x) = y` - Capturing of variables from the environment - Error messages for too few / many passed arguments Does not support: - Named arguments - Variadic arguments with `..`
2021-02-18Show repr in monospace ๐Ÿ“Laurenz
2021-02-12Cleaning ๐ŸงนLaurenz
2021-02-09Add arguments value ๐Ÿ“Laurenz
2021-02-09Split evaluation and execution ๐Ÿ”ชLaurenz
2021-02-07Dry-clean visitor with a macro ๐ŸœLaurenz
2021-02-06Generalize child of NodeBackground ๐ŸผMartin Haug
2021-02-06Merge `rect` and `box` ๐ŸฆšMartin Haug
2021-02-04Add rectangle function ๐ŸŽ›Martin Haug
2021-01-30Capture variable by slot instead of value ๐ŸŽฃLaurenz
2021-01-22Many more expressions ๐Ÿฅ—Laurenz
Boolean, equality, comparison and assignment expression parsing and evaluation.
2021-01-20If expressions ๐Ÿ”€Laurenz
2021-01-15Split state and scopes, less ref-counting ๐Ÿ”€Laurenz
2021-01-13Unbounded pages ๐ŸŒŒLaurenz
2021-01-10Braced content -> Bracketed templates โœLaurenz
2021-01-04Better value representations, type function ๐ŸŒLaurenz
2021-01-03Move and rename many things ๐Ÿš›Laurenz
2021-01-02Dynamic values, Types, Arrays, and Dictionaries ๐Ÿš€Laurenz
- Identifiers are now evaluated as variables instead of being plain values - Constants like `left` or `bold` are stored as dynamic values containing the respective rust types - We now distinguish between arrays and dictionaries to make things more intuitive (at the cost of a bit more complex parsing) - Spans were removed from collections (arrays, dictionaries), function arguments still have spans for the top-level values to enable good diagnostics
2021-01-01A few small improvements โ™ปLaurenz
2020-12-27Refresh function call and dictionary syntaxLaurenz
- No colon between function name and arguments, just whitespace - "Named" arguments (previously "keyword" arguments) use colon instead of equals sign
2020-12-27Add color enum ๐ŸŽจLaurenz
2020-12-21Add error cases for [font] ๐ŸงฏLaurenz
2020-12-21Allow only a few predefined font classes in [font] ๐ŸšงLaurenz
2020-12-21Restructure value conversions ๐ŸงฑLaurenz
2020-12-17Test [font] ๐ŸงฃLaurenz
2020-12-17Test [rgb] ๐ŸŽจLaurenz
2020-12-17Test [page] function ๐Ÿ“•Laurenz
- Make page break behaviour more consistent - Allow skipping reference image testing for single tests with `// compare-ref: false` (useful for tests which only check error messages)
2020-11-30Compress images in PDFs โš™Laurenz
2020-11-28Export alpha channel into PDF ๐ŸงŠLaurenz
2020-11-27Basic environment and resource loader ๐ŸžLaurenz
2020-11-27Export images in PDF ๐Ÿ–ผLaurenz
2020-11-25Switch to tiny-skia ๐ŸŽจLaurenz