Laurenz
edff2ae680
Remove template pretty printing
...
Was buggy and pretty useless anyway since it couldn't peek into function templates.
2021-06-09 10:45:49 +02:00
Laurenz
5afb42ad89
Lists with indent-based parsing
...
- Unordered lists with indent-based parsing and basic layout using stacks
- Headings are now also indent based
- Removes syntax functions since they will be superseded by select & transform
2021-06-09 00:37:13 +02:00
Laurenz
d69dfa84ec
Move import parser to appropriate position in the file
2021-06-08 11:51:21 +02:00
Laurenz
f26526ba75
Switch back to hashtags for headings
2021-06-07 18:17:47 +02:00
Laurenz
7218892c72
Refactor path handling
2021-06-01 12:55:07 +02:00
Laurenz
9bdb0bdeff
Fix path hash bug on unix
2021-05-31 22:33:40 +02:00
Martin Haug
37e0846037
Test cases for include and import
2021-05-31 22:33:40 +02:00
Laurenz
00ac68b845
Fix and improve
...
- Set context location to resolved path during module evaluation.
- Dump module diagnostics on import
- Use same-file for more robustness than fs::canonicalize
2021-05-31 22:33:40 +02:00
Laurenz
e023bf2ac9
Module loading system
...
Detects cyclic imports and loads each module only once per compilation.
2021-05-31 22:33:40 +02:00
Martin Haug
9f77f09aac
Parse import and include expressions
...
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-31 22:33:40 +02:00
Laurenz
0bfee5b777
Refactored loading and cache architecture
2021-05-28 12:46:43 +02:00
Laurenz
eabf28f081
Remove hash() from AnyNode since caching is now fully transparent
2021-05-27 14:48:55 +02:00
Laurenz
b886ced408
Switch to N64 type alias
2021-05-27 14:48:45 +02:00
Laurenz
9e0a34c80f
Adapt to pdf-writer update
2021-05-27 14:11:08 +02:00
Martin Haug
8e700606bb
Add a cache for unchanged layouts
...
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-26 23:50:40 +02:00
Martin Haug
e27f6c1014
Add hash impls for all nodes
...
This prepares the incremental PR.
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-26 22:57:29 +02:00
Laurenz
14f093bfee
A few predefined colors for testing
2021-05-23 22:59:25 +02:00
Laurenz
cd25b40281
Stack function
2021-05-23 22:36:34 +02:00
Laurenz
5ced5a69c0
Adapt to pdf-writer update
2021-05-22 20:18:33 +02:00
Laurenz
7b35721011
Move third party notices to NOTICE
2021-05-22 01:34:26 +02:00
Laurenz
a175d37ff2
Refactor parser a bit
2021-05-21 23:58:34 +02:00
Laurenz
6472c1e425
Rename areas to regions
2021-05-21 12:55:36 +02:00
Laurenz
1cb6328d20
Reword some doc comments
2021-05-19 00:33:50 +02:00
Laurenz
118fc1014b
Leaner argument parsing
2021-05-18 21:32:40 +02:00
Laurenz
7025590405
Rename _new to new and typify to value
2021-05-18 16:53:11 +02:00
Laurenz
72434f0695
Min and max functions
2021-05-18 16:31:22 +02:00
Laurenz
6b08862b83
Streamline value comparisons
2021-05-18 15:44:49 +02:00
Laurenz
8b58171d7c
Reorganize test cases
2021-05-18 00:36:11 +02:00
Laurenz
8d67c0ca5e
Convert font units to lengths earlier
2021-05-17 23:06:31 +02:00
Laurenz
c975d0d5e9
Tidy up layouting code
2021-05-17 22:55:31 +02:00
Laurenz
24c4a746bc
Move aspect ratio into stack
2021-05-17 15:23:04 +02:00
Laurenz
1003d320d4
Rename expand to fixed and switch to bools
2021-05-17 15:00:29 +02:00
Laurenz
fbb823964f
Fix compilation on unix
2021-05-14 11:26:50 +02:00
Laurenz
e65c2b949c
Remove resource abstraction and handle images natively
2021-05-14 11:14:28 +02:00
Laurenz
33733fd1ef
Expose units_per_em and raw face id
2021-05-13 11:26:51 +02:00
Laurenz
3e03667c37
Make file system loader serializable 📚
2021-05-05 22:18:33 +02:00
Laurenz
6292d25afb
Reengineer font and resource loading 🏞
2021-04-23 17:46:14 +02:00
Laurenz
72478946c2
Make frames serializable 📚
...
This also makes serialization support non-optional since it's too much feature-management for too little benefit.
2021-04-21 21:17:25 +02:00
Martin
df58a4d89b
Merge pull request #19 from typst/shape-runs 🔀
...
Text work
2021-04-07 13:50:21 +02:00
Laurenz
3d2ee54848
Refactor and comment ♻
2021-04-07 01:08:07 +02:00
Laurenz
076e767b0e
Do binary search and find the outermost glyph with the text index 🔍
...
Co-Authored-By: Martin <mhaug@live.de>
2021-04-07 00:24:42 +02:00
Laurenz
464a6ff75e
Deduplicate ttf-parser and rustybuzz face 🥞
2021-04-06 15:13:20 +02:00
Laurenz
de20a21a58
Reshaping with unsafe-to-break ⚡
...
Co-Authored-By: Martin <mhaug@live.de>
2021-04-05 22:32:09 +02:00
Laurenz
a86cf7bd8c
Refresh all reference images ✅
2021-04-03 21:12:32 +02:00
Laurenz
bfbbe8dcf8
Better paragraph layout tests ✅
2021-04-03 21:12:32 +02:00
Laurenz
9014e83478
Fix multi-page paragraph bugs 🐞
2021-04-03 21:12:32 +02:00
Laurenz
d74c9378b8
New paragraph layout 🚀
...
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-04-03 21:09:17 +02:00
Laurenz
8245b7b736
Baseline alignment ⏏
2021-03-30 21:43:12 +02:00
Laurenz
c00cca3677
Refactor ♻
2021-03-30 16:19:16 +02:00
Laurenz
12a604fec8
BiDi tests ✅
2021-03-30 14:31:50 +02:00