772 Commits

Author SHA1 Message Date
Laurenz
e10b3d838a Fix panic due to bad alignments in stack function 2021-09-27 13:45:18 +02:00
Laurenz
ff37a2893d More useful incremental checks
Co-Authored-By: Martin <mhaug@live.de>
2021-09-27 11:40:28 +02:00
Laurenz
1982a0639e Expand all but last region for broken up auto rows 2021-09-27 11:39:31 +02:00
Laurenz
6c478face4 Fix paragraph constraints
Co-Authored-By: Martin <mhaug@live.de>
2021-09-27 11:38:18 +02:00
Laurenz
19e17cc6ac Simplify decoration handling 2021-09-26 12:43:45 +02:00
Laurenz
a493b9533a More useful Debug impls 2021-09-26 12:24:24 +02:00
Laurenz
72eb243e26 Simplify source file loading logic 2021-09-25 23:44:33 +02:00
Laurenz
5594868f8b Prevent paragraph from overflowing due to trailing linebreak 2021-09-25 23:35:27 +02:00
Laurenz
cdb9867e0d Highlight dots in variables 2021-09-25 21:53:56 +02:00
Laurenz
ea921aca5d Blocks directly in template also scope 2021-09-15 13:12:07 +02:00
Laurenz
5de791d9e6 Rename SyntaxTree to Markup
Also `SyntaxNode` -> `MarkupNode`.
2021-09-15 13:05:01 +02:00
Laurenz
c18321a4c2 Bugfix and tidying 2021-09-15 13:05:00 +02:00
Laurenz
87e776fceb Add BoolExt trait with flip method 2021-09-14 12:27:21 +02:00
Laurenz
18190f377a Reimplement Debug for layout nodes 2021-09-10 15:10:35 +02:00
Laurenz
b0b4607725 Set the correct base for grid cells 2021-09-10 15:10:34 +02:00
Laurenz
50a464488c Fix fr rows in infinite region 2021-09-10 15:10:34 +02:00
Laurenz
f592662aa0 Rename Arguments to Args 2021-09-10 12:27:33 +02:00
Laurenz
d2618acd8d Bump pdf-writer 2021-09-09 12:16:55 +02:00
Laurenz
7f48e8fe66 Make user-facing "debug" representation use Debug instead of Display 2021-08-31 16:25:12 +02:00
Laurenz
3481d8cc81 More utility functions
- join("a", "b", "c", sep: ", ")
- int("12")
- float("31.4e-1")
- str(10)
- sorted((3, 2, 1))
2021-08-31 12:59:53 +02:00
Laurenz
ee84bf7408 Add abs() function 2021-08-30 16:59:09 +02:00
Laurenz
ff25573224 Lower- and uppercase string conversion functions 2021-08-30 16:39:16 +02:00
Laurenz
e4e79990da Allow body for font function once again 2021-08-29 15:09:54 +02:00
Laurenz
411aba5b6f Subset CFF subrs referenced by FD array 2021-08-29 14:46:51 +02:00
Laurenz
d101612414 Primitive CFF1 subsetting
The subsetting strategy is somewhat crazy for now: Simply zero the glyph data for all unused glyphs. While the CFF table itself doesn't shrink, the actual embedded font is compressed and greatly benefits from the repeated zeros.

This already compresses the fonts a lot (~90% for NotoSerifCJK), but they are still quite large.

Therefore, the plan of action:
- First, find more data that can be zeroed out.
- Then _maybe_ see whether we can instead properly rebuild the subsetted font.
2021-08-28 23:53:46 +02:00
Laurenz
73b63ffb99 Refactor subsetter
- Gracefully handle failed subsetting of one table
- Remove need for creating a ttf-parser face
2021-08-27 14:11:49 +02:00
Laurenz
dff2175558 Subset post table 2021-08-27 14:08:32 +02:00
Laurenz
fab8bedd29 Primitive raster glyph drawing 2021-08-27 14:08:32 +02:00
Laurenz
17ea0d4ba9 Make font fallback disableable 2021-08-27 14:08:31 +02:00
Laurenz
7eeafbd464 Font family things
- Better default font family order
- Remove weird leading dots from font family names
- Public API for retrieving all found font families
2021-08-27 14:08:31 +02:00
Laurenz
0001a965d7 Parse command line arguments with pico-args 2021-08-27 14:08:17 +02:00
Laurenz
0471e51bc4 Compress all PDF streams 2021-08-25 13:45:49 +02:00
Laurenz
f2882bf854 Support decoding of mac roman names
This allows discovery of Apple fonts without unicode name entries.
2021-08-25 13:24:30 +02:00
Laurenz
821536b253 Subset glyf and loca tables 2021-08-25 12:12:47 +02:00
Laurenz
6f84cf3c22 Basic subsetting architecture
Constructs a brand new font file where only necessary tables are contained.
2021-08-24 23:43:51 +02:00
Laurenz
7a2e3c80b5 PDF bug fixes
- Write correct subtype for CID Font
- Write CIDToGIDMap attribute
- Deduplicate CMap pairings
- Bump pdf-writer for string primitive fix
2021-08-24 17:18:50 +02:00
Laurenz
148a06c070 Switch from state to decorations for underline/strikethrough/overline 2021-08-24 00:41:15 +02:00
Martin
d546453880
Links! (#43)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-08-23 23:56:33 +02:00
Laurenz
0806af4aec Kerned PDF output 2021-08-23 13:21:44 +02:00
Laurenz
c0377de653 Shorter/clearer field name for geometry types
Size { width, height } => Size { w, h }
Spec { horizontal, vertical } => Spec { x, y }
Gen { cross, main } => Gen { inline, block }
2021-08-21 19:08:47 +02:00
Laurenz
0dd4ae0a7a Prune derives 2021-08-21 17:30:21 +02:00
Laurenz
f38eb10c2b Make better use of existing variables in grid 2021-08-21 15:28:44 +02:00
Laurenz
f71c38b38d Turn backlog into iterator 2021-08-21 15:28:26 +02:00
Laurenz
a6f260ca39 Refactor layouting a bit
Notably:
- Handle aspect ratio in fixed node
- Inline constraint inflation into pad node
2021-08-19 15:52:15 +02:00
Martin
fdab7158c9
Pattern properties (#42)
Included in this package are:
* Code review I: The unnamed review.
* Code Review II: How I met your review.
* Code Review III: Code, the final frontier. These are the voyages of the USS Review ...
2021-08-19 15:07:11 +02:00
Martin
c44ecbfbd2
Move to exclusively oneshot benchmarks with Iai fork (#41) 2021-08-18 18:12:26 +02:00
Laurenz
011865ab5c Memory loader 2021-08-18 14:25:49 +02:00
Laurenz
594809e35b Library functions behave more imperatively
- Templates scope state changes
- State-modifying function operate in place instead of returning a template
- Internal template representation contains actual owned nodes instead of a pointer to a syntax tree + an expression map
- No more wide calls
2021-08-17 22:20:37 +02:00
Laurenz
c53d98a22f More logical ordering and naming 2021-08-17 12:49:48 +02:00
Laurenz
9a798ce6f6 Make percentages for h and v relative to area instead of font size 2021-08-17 00:17:28 +02:00