summaryrefslogtreecommitdiff
path: root/src/library/spacing.rs
AgeCommit message (Collapse)Author
2022-02-28Reorganize libraryLaurenz
2022-02-23Rework the core contextLaurenz
2022-02-17Merge eval and layout contexts into `Vm`Laurenz
2022-02-09Set rules for everythingLaurenz
2022-02-07Redesigned template layoutLaurenz
2022-02-03Better debug representation for templateLaurenz
2022-02-02Rename `Node` to `Template`Laurenz
2022-01-08Make all nodes into classesLaurenz
2022-01-05Lift styles out of individual nodesLaurenz
2021-12-30Style chainsLaurenz
2021-12-28TidyingLaurenz
2021-12-22Review One: A Set Rules StoryLaurenz
2021-12-15Set Rules Episode IV: A New FoldLaurenz
2021-12-05Set Rules Episode I: The Phantom StyleLaurenz
2021-11-25Layout improvementsLaurenz
2021-11-15Make clippy happier and remove `Str`Laurenz
2021-11-02Smallcaps, sub- and superscript, ligature ctrls...Martin Haug
2021-10-31Reorganize modulesLaurenz
Instead of separating functionality into layout and library, everything lives in the library now. This way, related things live side by side and there are no duplicate file names in the two directories.
2021-06-26Cleanse libraryLaurenz
- Remove doc-comments for Typst functions from library - Reduce number of library source files
2021-06-18Remove eat_ prefixLaurenz
2021-06-11Remove props in favor of using state for everythingLaurenz
2021-05-18Leaner argument parsingLaurenz
2021-03-27Better space coalescing logic ๐ŸŒงLaurenz
This creates a smaller state machine helper type for softness coalescing, which does not own the resulting nodes. While this creates a bit more duplication in stack and par builder, it makes it a lot easier to integrate additional logic into the paragraph builder. Furthermore: - Line breaks are now "hard", that is, not coalesced with each other. - Text nodes with equal style are now merged allowing for example `f{}i` to form a ligature.
2021-03-25Refactor alignments & directions ๐Ÿ“Laurenz
- Adds lang function - Refactors execution context - Adds StackChild and ParChild enums
2021-03-24Text shaping ๐Ÿš€Laurenz
- Shapes text with rustybuzz - Font fallback with family list - Tofus are shown in the first font Co-Authored-By: Martin <mhaug@live.de>
2021-03-22More consistent documentation ๐Ÿ“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-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-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-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-10Move around library types ๐ŸššLaurenz
2020-11-25Merge some modules ๐ŸฅžLaurenz
2020-10-13BoxAlign and Flow aliases โœLaurenz
2020-10-13Rename geometric eval and apply to resolve โœLaurenz
2020-10-10Refactor text state ๐Ÿ†ŽLaurenz
2020-10-10Switch back to custom geometry types, unified with layout primitives ๐ŸžLaurenz
2020-10-07Evaluation and node-based layouting ๐Ÿš€Laurenz
2020-10-06Typesafe conversions in stack & line layouters ๐ŸฎLaurenz
2020-10-06Rename secondary/primary to main/cross โœLaurenz
2020-10-04Small improvements ๐ŸชLaurenz
2020-10-04Better argument parsing ๐Ÿฅ™Laurenz
2020-10-04Style nits ๐ŸŽˆLaurenz
2020-10-04Separate state and constraints ๐ŸงถLaurenz
2020-10-03Int, Float, Relative and Linear values ๐Ÿ‰Laurenz
2020-10-01Generalize layouting primitives ๐Ÿ›คLaurenz
2020-10-01Rename table to dict โœLaurenz
2020-08-30Format everything with rustfmt! ๐Ÿ’šLaurenz
2020-08-17Tidy up library functions ๐ŸงบLaurenz