summaryrefslogtreecommitdiff
path: root/src/layout
AgeCommit message (Collapse)Author
2021-07-08Rename Fill to PaintLaurenz
2021-07-08Rename some library argumentsLaurenz
- font - color -> fill - shorthands for families and size - decoration functions - color -> stroke - strength -> thickness - position -> offset - invert offsets: now positive goes downwards just like the rest of typst
2021-06-30Make clippy a bit happierLaurenz
2021-06-30No more collisions between syntax::Tree and layout::TreeLaurenz
2021-06-30Bump dependenciesLaurenz
2021-06-29Put incremental compilation behind featureMartin Haug
2021-06-27Code review: Reverse temperatureMartin Haug
2021-06-27Adjust commentsMartin
Co-authored-by: Laurenz <laurmaedje@gmail.com> Update tests/typ/layout/stack.typ Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-06-27Code review, new stack testMartin Haug
2021-06-27Apply suggestions from code reviewMartin
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-06-27Testing for incrementalMartin Haug
Also, constraint bugfixes.
2021-06-26Cleanse libraryLaurenz
- Remove doc-comments for Typst functions from library - Reduce number of library source files
2021-06-18Ref count the framesMartin
2021-06-18LevelsMartin
2021-06-17Setter methodLaurenz
2021-06-17Constraints (#31)Martin
2021-06-15Refactor grid row layoutLaurenz
2021-06-13Refactor column resolvingLaurenz
2021-06-12Give up on not implementing Eq and OrdLaurenz
2021-06-12Allow grid cells to span multiple regions. (#30)Martin
2021-06-11Push some nodes directly into the stackLaurenz
2021-06-11Remove props in favor of using state for everythingLaurenz
2021-06-10Text decorationsMartin Haug
2021-06-09Tidy upLaurenz
2021-06-09Add a grid layouterMartin Haug
2021-05-31Module loading systemLaurenz
Detects cyclic imports and loads each module only once per compilation.
2021-05-28Refactored loading and cache architectureLaurenz
2021-05-27Remove hash() from AnyNode since caching is now fully transparentLaurenz
2021-05-27Switch to N64 type aliasLaurenz
2021-05-26Add a cache for unchanged layoutsMartin Haug
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-26Add hash impls for all nodesMartin Haug
This prepares the incremental PR. Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-21Rename areas to regionsLaurenz
2021-05-19Reword some doc commentsLaurenz
2021-05-17Convert font units to lengths earlierLaurenz
2021-05-17Tidy up layouting codeLaurenz
2021-05-17Move aspect ratio into stackLaurenz
2021-05-17Rename expand to fixed and switch to boolsLaurenz
2021-05-14Remove resource abstraction and handle images nativelyLaurenz
2021-04-23Reengineer font and resource loading 🏞Laurenz
2021-04-21Make frames serializable 📚Laurenz
This also makes serialization support non-optional since it's too much feature-management for too little benefit.
2021-04-07Refactor and comment ♻Laurenz
2021-04-07Do binary search and find the outermost glyph with the text index 🔍Laurenz
Co-Authored-By: Martin <mhaug@live.de>
2021-04-06Deduplicate ttf-parser and rustybuzz face 🥞Laurenz
2021-04-05Reshaping with unsafe-to-break ⚡Laurenz
Co-Authored-By: Martin <mhaug@live.de>
2021-04-03Fix multi-page paragraph bugs 🐞Laurenz
2021-04-03New paragraph layout 🚀Laurenz
The previous paragraph layout algorithm had a couple of flaws: - It always produced line break opportunities between runs although on the textual level there might have been none. - It didn't handle trailing spacing correctly in some cases. - It wouldn't have been easily adaptable to Knuth-Plass style optimal line breaking because it was fundamentally structured first-fit run-by-run. The new paragraph layout algorithm fixes these flaws. It proceeds roughly in the following stages: 1. Collect all text in the paragraph. 2. Compute BiDi embedding levels. 3. Shape all runs, layout all children and store the resulting items in a reusable (possibly even cacheable) `ParLayout`. 3. Iterate over all line breaks in the concatenated text. 4. Construct lightweight `LineLayout` objects for full lines instead of runs. These mostly borrow from the `ParLayout` and only reshape the first and last run if necessary. The design allows to use Harfbuzz's UNSAFE_TO_BREAK mechanism to make reshaping more efficient. The size of a `LineLayout` can be measured without building the line's frame. 5. Build only the selected line's frames and stack them.
2021-03-30Baseline alignment ⏏Laurenz
2021-03-30Refactor ♻Laurenz
2021-03-30BiDi reordering 🔃Laurenz
Co-Authored-By: Martin <mhaug@live.de>
2021-03-30Fix space/newline trimming 🐞Laurenz
Co-Authored-By: Martin <mhaug@live.de>