Commit Graph

987 Commits

Author SHA1 Message Date
Laurenz
93138e2d4b Fix font switch in math 2023-02-03 17:47:05 +01:00
Laurenz
9e918d06ad Fix function call highlighting 2023-02-03 17:46:53 +01:00
Laurenz
15bc932ec1 Rename infinity symbol 2023-02-02 22:34:53 +01:00
Laurenz
2bb0135d2a Fix inconsistency between text and idents in math 2023-02-02 22:33:12 +01:00
Laurenz
255044e04e Ignore accent when positioning superscript 2023-02-02 21:21:04 +01:00
Laurenz
3f85d005bb Fix root index placement again 2023-02-02 19:50:14 +01:00
Laurenz
10675cd6d5 Merge text and math symbols 2023-02-02 19:50:06 +01:00
Laurenz
e9ff2d6463 More robust automatic math spacing 2023-02-02 16:47:10 +01:00
Laurenz
e6400861ab Matrix baseline alignment 2023-02-02 14:40:34 +01:00
Laurenz
bb12624e8e Fix heading and list markers 2023-02-02 14:27:31 +01:00
Laurenz
5f5c659279 Math tests 2023-02-02 14:13:56 +01:00
Laurenz
afa344f33d Fix raw show rule 2023-02-01 13:32:05 +01:00
Laurenz
c2bd114914 Symbol improvements 2023-01-31 13:00:20 +01:00
Laurenz
69985e59bc Make lowercase greek italic 2023-01-31 02:05:53 +01:00
Laurenz
0ef1b02ee0 Add calc constants 2023-01-30 21:29:03 +01:00
Martin Haug
0287b98ef3 Add calc module 2023-01-30 21:04:34 +01:00
Laurenz
1ea0a93325 User-defined symbols 2023-01-30 19:45:10 +01:00
Laurenz
d9d2c021d6 Fix inline math bounding box 2023-01-29 20:44:33 +01:00
Laurenz
0911c709a8 Fix tests 2023-01-29 18:00:28 +01:00
Laurenz
406de22ee5 Remove method call syntax kind 2023-01-28 18:32:58 +01:00
Laurenz
4809e685a2 More capable math calls 2023-01-28 15:36:32 +01:00
Laurenz
28c554ec21 Rework math attachments and accents 2023-01-28 12:14:03 +01:00
Laurenz
2e039cb052 Fix math spacing bugs 2023-01-27 15:32:05 +01:00
Laurenz
43ef60c09c Tracing-based expression tooltips 2023-01-27 12:05:12 +01:00
Laurenz
1de53730bc Symbol values and modules 2023-01-27 12:04:36 +01:00
Laurenz
a8fd64f928 Hashtags everywhere! 2023-01-27 11:54:30 +01:00
Laurenz
4653ffebb4 Math module 2023-01-23 15:23:52 +01:00
Laurenz
2b8426b1b3 Interpret methods on modules as functions in modules 2023-01-23 13:26:10 +01:00
Laurenz
87a89e77e5 Some fixes 2023-01-22 13:48:49 +01:00
Laurenz
6f7e8dd497 Add Fira Math font 2023-01-22 13:16:25 +01:00
Laurenz
eabbbf7eae Name handling for New Computer Modern Math 2023-01-22 13:16:03 +01:00
Laurenz
dd331f007c Rewrite parser 2023-01-20 14:05:35 +01:00
Laurenz
40561e57fb Remove most fields from SyntaxKind enum 2023-01-15 12:40:27 +01:00
Laurenz
ab03f32240 Reorganize syntax module 2023-01-14 12:34:17 +01:00
Laurenz
29b31c4a5a New import syntax 2023-01-03 12:32:17 +01:00
Laurenz
7c683db367 Merge MarkupNode and MathNode into Expr 2022-12-31 09:52:14 +01:00
Laurenz
a6d90c1bf1 Numbering functions 2022-12-30 20:00:50 +01:00
Laurenz
f70cea508c Remove index syntax in favor of accessor methods 2022-12-30 16:45:41 +01:00
Laurenz
fe1f440069 Clamp shape radii 2022-12-30 10:07:46 +01:00
Laurenz
94cf7005e9 Forbid division by zero 2022-12-30 10:01:37 +01:00
Laurenz
68c6160a14 Recursion with max depth 2022-12-30 09:48:30 +01:00
Martin Haug
bc535f7b71 read function 2022-12-29 11:49:01 +01:00
Laurenz
8527517258 Rename desc to terms 2022-12-22 18:25:29 +01:00
Laurenz
4c92ab4ace Rename the create category to construct 2022-12-21 23:51:15 +01:00
Laurenz
038f9b015e Document line function 2022-12-21 16:32:14 +01:00
Laurenz
31f904a2c4 Split up and document shapes 2022-12-21 16:19:46 +01:00
Laurenz
ba294e2670 Split up list type into three separate types and document them 2022-12-21 12:50:33 +01:00
Laurenz
ee732468c7 Document text category 2022-12-21 00:26:20 +01:00
Laurenz
38a0404050 Document underline, strikethrough, and overline 2022-12-20 18:20:19 +01:00
Laurenz
f5f7df7247 Documentation 2022-12-20 16:11:37 +01:00
Laurenz
b4b022940b Syntax and example sections 2022-12-19 01:16:35 +01:00
Laurenz
35b16e545b Document parameters in comment 2022-12-17 16:24:29 +01:00
Laurenz
b6202b646a Reflection for castables 2022-12-15 23:11:20 +01:00
Laurenz
9ba4d2c134 New macro setup 2022-12-14 10:09:44 +01:00
Laurenz
4c73456fc1 Move highlighting into new IDE module 2022-12-14 10:02:19 +01:00
Laurenz
ad66fbdfa2 Detect infinite loops 2022-12-14 09:56:24 +01:00
Laurenz
c38d55614a A few math fixes 2022-12-09 21:22:23 +01:00
Laurenz
cd089b6194 Align set rule 2022-12-09 10:21:11 +01:00
Laurenz
11c7ceb29e Extend math library 2022-12-07 14:01:20 +01:00
Laurenz
5a0053c729 Vectors and cases 2022-12-07 11:30:17 +01:00
Laurenz
b2572f9d48 Math shorthands 2022-12-06 15:37:17 +01:00
Laurenz
3ecb0c754b More math syntax 2022-12-06 12:37:08 +01:00
Laurenz
c2e458a133 Symbol notation 2022-12-05 12:25:37 +01:00
Laurenz
f57ce86431 Heading numbering and outline 2022-12-02 15:53:01 +01:00
Laurenz
56923ee472 Multi-part numbering patterns 2022-12-02 15:47:25 +01:00
Laurenz
9bc90c371f Introspection 2022-12-02 15:45:18 +01:00
Laurenz
5110a41de1 Introduce virtual typesetter 2022-12-02 13:21:36 +01:00
Laurenz
bdf06c9c61 Fix auto column shrinking behaviour 2022-11-30 14:49:55 +01:00
Laurenz
579dac3c91 Strong delta 2022-11-29 14:57:05 +01:00
Laurenz
0efe669278 Reorganize library and tests 2022-11-29 14:18:13 +01:00
Laurenz
836692e73c Widow and orphan prevention 2022-11-28 17:57:16 +01:00
Laurenz
989d170dc7 Fragments 2022-11-28 12:40:16 +01:00
Laurenz
6bafc63910 Document metadata 2022-11-26 23:52:01 +01:00
Laurenz
0579fd4409 Reorganize library base 2022-11-26 17:13:31 +01:00
Laurenz
36490f7f7b Make text and space nodes unselectable 2022-11-26 15:09:03 +01:00
Laurenz
7af46fc025 Dynamic labels 2022-11-26 13:41:27 +01:00
Laurenz
3cdd8bfa40 Extract numbering pattern from list node 2022-11-26 12:51:15 +01:00
Laurenz
96f72eee6c Separate typesetting and compilation 2022-11-24 17:51:07 +01:00
Laurenz
5ae81971f2 Introduce Library 2022-11-23 16:07:54 +01:00
Laurenz
b2a3d3f235 More general evaluation interface 2022-11-23 12:00:06 +01:00
Laurenz
2ce727fc95 Make inner node and node data private 2022-11-22 14:40:56 +01:00
Laurenz
dd9c323941 Show with set 2022-11-21 17:12:16 +01:00
Laurenz
c28d2130dd Don't display functions 2022-11-21 17:11:40 +01:00
Laurenz
1d7e082d1d Labels 2022-11-21 16:12:24 +01:00
Laurenz
ddada45097 Tracepoints for show rules 2022-11-20 23:32:30 +01:00
Laurenz
72361106bc Add flag for model printing 2022-11-20 21:39:19 +01:00
Laurenz
321121c6c3 Move font folder 2022-11-20 18:14:13 +01:00
Laurenz
8eeb4ad8f6 Rename margins to margin 2022-11-19 23:33:33 +01:00
Laurenz
1937d746ab Show everything! 2022-11-19 22:40:42 +01:00
Laurenz
9b8c1dc19f Pass text node to text show rule instead of string 2022-11-18 14:31:51 +01:00
Laurenz
bf59c08a0a New interaction model 2022-11-12 23:46:26 +01:00
Laurenz
010cc2effc New block spacing model 2022-11-09 18:20:02 +01:00
Laurenz
a7a4cae294 Less style properties 2022-11-08 11:45:59 +01:00
Laurenz
0a41844cc4 Selectors 2022-11-07 14:43:13 +01:00
Laurenz
efd1853d06 Show it!
- New show rule syntax
- Set if syntax
- Removed wrap syntax
2022-11-07 12:46:05 +01:00
Laurenz
eb951c008b Style changes 2022-11-04 11:38:09 +01:00
Laurenz
33928a00dc Tidy up library 2022-11-03 16:50:26 +01:00
Laurenz
46921a8c28 Separate test crate
This removes the not-really-cyclic dependency that confuses rust-analyzer. See also: https://github.com/rust-lang/rust-analyzer/issues/2414
2022-11-03 16:13:35 +01:00
Laurenz
37a7afddfa Split crates 2022-11-03 13:35:39 +01:00
Laurenz
f547c97072 Reduce usage of finalize 2022-10-31 15:47:49 +01:00
Laurenz
636bdb9e43 Rename RoleMap to LangItems 2022-10-31 09:11:56 +01:00
Laurenz
95e9134a3c Refactor geom module 2022-10-28 16:43:38 +02:00
Laurenz
c0e972b91a Reduce dependencies from compiler on library 2022-10-18 00:04:12 +02:00
Laurenz
e218226655 Merge some modules 2022-10-17 20:04:22 +02:00
Laurenz
fd8160f374 Remove SpanPos in favor of ErrorPos 2022-10-05 13:15:02 +02:00
Laurenz
ec884ec1d8 Refactor syntax module 2022-10-05 12:49:39 +02:00
Laurenz
5a8534a395 Parse basic math syntax 2022-10-04 13:45:16 +02:00
Laurenz
7ef6cb31df Bump ttf-parser 2022-09-30 11:23:09 +02:00
Laurenz
abafb39041 Fix bad list interaction
Fixes #87
2022-09-26 16:25:40 +02:00
Laurenz
704f2fbaf1 Description lists, link syntax, and new enum syntax 2022-09-26 16:12:57 +02:00
Laurenz
2661f1a506 Round to nearest u8 instead of flooring 2022-09-25 21:46:54 +02:00
Martin Haug
b14274d1e4 Methods to modify colors 2022-09-25 20:04:33 +02:00
Laurenz
f6adc45638 XML reading 2022-09-25 18:20:39 +02:00
Laurenz
fffb55f79a JSON reading 2022-09-25 17:37:16 +02:00
Laurenz
ddd3b6a82b Tracked memoization 2022-09-21 20:25:57 +02:00
Laurenz
3760748fdd Refactor error handling 2022-09-20 19:49:47 +02:00
Laurenz
757a701c1a A New World 2022-09-20 16:37:15 +02:00
Laurenz
e29f55bb29 Remove font store 2022-09-19 17:44:40 +02:00
Laurenz
30be75c668 Renaming
`Face` -> `Font`
`FaceId` -> `FontId`
`SourceFile` -> `Source`
2022-09-19 11:36:59 +02:00
Laurenz
4ec3bcee48 Remove pins and memoization 2022-09-19 11:16:05 +02:00
Laurenz
e5f958b921 Handle line comments nested in block comments
Fixes #76
2022-09-19 11:05:25 +02:00
Laurenz
b98004330b Handle non-breaking spaces during justification 2022-09-19 10:28:06 +02:00
Laurenz
0d12f2ab23 [WIP] Label and reference syntax 2022-09-07 11:07:17 +02:00
Laurenz
9362c279de CSV reading 2022-07-27 00:09:15 +02:00
Laurenz
fc574b3945 New Str type with methods 2022-07-26 23:27:44 +02:00
Laurenz
1e9a5eda48 Rework array methods 2022-07-26 23:24:30 +02:00
Laurenz
0dacb2d151 Fix error messages on Windows 2022-06-14 18:18:28 +02:00
Laurenz
20b990d297 Anti-aliased image rendering 2022-06-14 17:20:31 +02:00
Laurenz
7a6c2cce77 Make radius configuration unconfusing 2022-06-14 17:17:54 +02:00
Laurenz
6832ca2a26 Ensure expressions can continue after a multiline block 2022-06-14 14:05:46 +02:00
Laurenz
c81e2a5f56 Many fixes 2022-06-14 13:53:02 +02:00
Laurenz
2fe549c1ec Fix inline math formula frame size 2022-06-13 14:07:48 +02:00
Laurenz
7660978ee5 Move Arc into Frame 2022-06-12 20:51:31 +02:00
Laurenz
6e3b1a2c80 Make all fields of Frame private 2022-06-12 17:26:18 +02:00
Laurenz
ed6550fdb0 Bump dependencies 2022-06-10 23:54:16 +02:00
Laurenz
94b375ce55 Incremental renumbering 2022-06-01 13:49:02 +02:00
Laurenz
0a9172cb15 Enforce and make use of span ordering 2022-05-31 13:19:09 +02:00
Laurenz
9bbebd69dd Numbered spans 2022-05-31 12:37:05 +02:00
Laurenz
08a6188123 Remove green/red distinction 2022-05-31 10:40:30 +02:00
Martin Haug
755d468198 Fix inline nodes and decorations
Also Code Review 👯‍♂️
2022-06-01 11:43:03 +02:00
Martin Haug
4e3036afcb Sub- and superscripts
Fixes to PDF export I guess
Also improved rendition for non-Latin scripts
2022-05-31 22:56:08 +02:00
Laurenz
ccb4753e24 Find optionally takes function instead of value 2022-05-30 10:33:51 +02:00
Laurenz
90be79dc86 Page background and foreground 2022-05-28 00:26:24 +02:00
Laurenz
1a7ce3da02 Luma color 2022-05-27 16:09:43 +02:00
Laurenz
d4e59d4be1 Make justified break work for last line 2022-05-27 15:54:54 +02:00
Laurenz
736289b064 Ensure me is always contained in all 2022-05-27 14:20:05 +02:00
Laurenz
ae68a15a46 Print function for debugging 2022-05-27 14:19:58 +02:00
Laurenz
806d9f0d9a Pure functions! 2022-05-26 17:14:44 +02:00
Laurenz
22214a1e0a Test groups 2022-05-27 14:23:05 +02:00
Laurenz
66d8f4569a Locate me! 2022-05-26 11:59:53 +02:00
Martin Haug
99cb655832 Intra-document links 2022-05-27 12:56:20 +02:00
Laurenz
c010cbc17d Move route from context to VM 2022-05-25 13:59:06 +02:00
Laurenz
3309ff9fe5 Slim down context 2022-05-25 11:16:03 +02:00
Laurenz
018860da9c Parse math fonts only once 2022-05-24 19:30:09 +02:00
Laurenz
08554380f8 Fix generated strong and emphasized text 2022-05-19 13:11:00 +02:00
Laurenz
5a7c901f21 Switch to New Computer Modern Math 2022-05-19 12:59:39 +02:00
Laurenz
3965e10281 Hack in ReX for now 2022-05-18 19:09:57 +02:00
Laurenz
242b01549a Safe eval function 2022-05-16 20:22:48 +02:00
Laurenz
a741bd6b83 Absolute paths 2022-05-16 17:56:36 +02:00
Laurenz
6536e9e069 Table fill closure 2022-05-16 16:04:40 +02:00
Laurenz
bc1bc91a33 Allow adding none and anything 2022-05-16 15:55:50 +02:00
Laurenz
1df621868f Fix control flow bug 2022-05-13 16:39:41 +02:00
Laurenz
05c27a581e Automatically display value in more places 2022-05-13 16:27:44 +02:00
Laurenz
3e9c63d685 Underline headings in raw theme 2022-05-13 13:52:26 +02:00
Laurenz
778aa4e7df Mutable field access 2022-05-09 00:11:03 +02:00
Laurenz
1927cc86da Set, show, wrap in code blocks 2022-05-09 00:03:57 +02:00
Laurenz
bfaf5447a7 Cast content from string 2022-05-06 10:05:11 +02:00
Laurenz
15ef72cca4 Fix empty heading 2022-05-04 23:34:02 +02:00
Laurenz
1bca9ccecb Improve diagnostics 2022-05-04 23:26:15 +02:00
Laurenz
2a45650dcc Keyed pairs 2022-05-04 23:12:31 +02:00
Laurenz
e674fd7e90 New raw theme & nicer debug representation 2022-05-04 22:14:57 +02:00
Laurenz
75472fee1a Division for lengths 2022-05-04 22:14:51 +02:00
Laurenz
ba5622b7b9 Move smallcaps into separate function 2022-05-04 13:21:31 +02:00
Laurenz
507c5fc925 Text replacement show rules 2022-05-04 00:14:31 +02:00
Laurenz
e18a896a93 Test recursive show rules 2022-05-03 16:43:44 +02:00
Laurenz
d59109e8ff Support recursive show rules 2022-05-03 15:58:15 +02:00
Martin Haug
6a8a0ec6ec Code Review: Heap is Stack. Unsafe is Good.
Spaghetti Code is Style.
2022-05-03 12:59:41 +02:00
Martin Haug
33213abe7d New page margins API 2022-05-02 18:48:32 +02:00
Martin Haug
9b4397cdab Tests for the new shape API 2022-05-02 18:25:53 +02:00
Martin Haug
7b6f3a0ab9 A new Cast implementation for Sides
Reinstate circle
2022-05-02 16:35:11 +02:00
Martin Haug
84a4961a5d Outset; fix folding 2022-05-01 14:56:07 +02:00
Laurenz
f9e115daf5 New block spacing model 2022-04-30 14:12:28 +02:00
Martin Haug
649c101f07 Add blind text function 2022-04-25 14:20:47 +02:00
Laurenz
7163b4a6c5 Soft pagebreak 2022-04-24 21:58:45 +02:00
Laurenz
2f33ad0e0a Rename soft linebreak to justified linebreak 2022-04-24 21:38:23 +02:00
Laurenz
8fbb11fc05 Extract model module 2022-04-24 15:47:42 +02:00
Laurenz
04fb8b288a Show rules with type ascribed object 2022-04-23 21:55:58 +02:00
Laurenz
7a2cc3e7d2 Field access 2022-04-19 16:37:16 +02:00
Laurenz
255d4c620f Automatic frame merging 2022-04-19 13:54:04 +02:00
Laurenz
a302105b9f Fix duplicate RTL text and alignment + fr bugs 2022-04-18 12:37:22 +02:00
Laurenz
db820ae9aa Repeat function 2022-04-17 12:11:00 +02:00
Laurenz
4494b443bb Ellipsis 2022-04-16 23:06:47 +02:00
Laurenz
c5b3f8ee98 Switch to unscanny 2022-04-16 22:23:57 +02:00
Laurenz
2db4b603db Fix bug with enums starting at zero 2022-04-14 13:24:48 +02:00
Laurenz
b274155c6d Improve language and add region controls 2022-04-13 16:01:24 +02:00
Laurenz
d025854457 Make language non-optional with english as default 2022-04-13 15:01:19 +02:00
Laurenz
67e9313b91 Soft breaks and shy hyphens 2022-04-13 14:48:19 +02:00
Laurenz
2279c26543 Smart quotes
Co-Authored-By: Martin Haug <mhaug@live.de>
2022-04-13 13:08:46 +02:00
Laurenz
e8dd842c66 Fix bug with basically empty paragraph 2022-04-13 11:59:05 +02:00
Laurenz
002b6c5b3e Don't hang quotes 2022-04-13 11:24:42 +02:00
Laurenz
c3a387b8f7 Segment by script 2022-04-12 22:23:08 +02:00
Laurenz
1101a8370f Negative array indexing 2022-04-11 16:30:34 +02:00
Laurenz
cd62792c0a Prevent duplicate named arguments and dictionary keys 2022-04-11 16:11:16 +02:00
Laurenz
938b0af889 Spreading into arrays and dictionaries 2022-04-11 15:52:57 +02:00
Laurenz
34fa8df044 Move language-related properties from par to text
Closes #67
2022-04-10 23:36:36 +02:00
Laurenz
29eb13ca62 Sum color and length into stroke 2022-04-09 12:02:35 +02:00
Laurenz
712c00ecb7 Em units 2022-04-08 15:45:14 +02:00
Laurenz
977ac77e6a Start & end alignment 2022-04-08 15:01:55 +02:00
Laurenz
4bb6240b40 Make Relative generic 2022-04-07 18:04:29 +02:00
Laurenz
1192132dc0 Rename length-related types
`Fractional` => `Fraction`
`Relative` => `Ratio`
`Linear` => `Relative`
2022-04-07 16:19:51 +02:00
Laurenz
eb22eed31b Make chinese justification less bad 2022-04-07 12:51:03 +02:00
Laurenz
3d52387eea Rework style chains 2022-04-07 11:07:00 +02:00
Laurenz
20b4d590b3 Fix wrong search_range computation 2022-04-05 17:03:24 +02:00
Laurenz
b8233a9e01 Don't allow empty lists and enums 2022-04-05 15:10:15 +02:00
Laurenz
b865accae6 Don't allow headings to span multiple lines 2022-04-05 15:04:31 +02:00
Laurenz
23d108c8e0 Font fallback 2022-04-03 13:55:58 +02:00
Laurenz
beca01c826 Methods 2022-03-18 23:43:58 +01:00
Laurenz
77d153d315 Add in and not in operators 2022-03-15 15:27:36 +01:00
Laurenz
ae0a56cdff Non-returning error macro 2022-03-15 11:30:13 +01:00
Martin Haug
6f5b721fe5 CR: I'm gonna make him a refactor he can't refuse 2022-03-17 10:50:51 +01:00
Martin Haug
4d617bcd67 LineNode 2022-03-16 12:36:50 +01:00
Laurenz
288a926fea Knuth-Plass and MicroType 2022-03-14 20:52:32 +01:00
Laurenz
2890a156d2 Remove classes and improve naming 2022-03-12 14:24:24 +01:00
Laurenz
5ac7eb3860 Rename template to content 2022-03-11 23:36:06 +01:00
Laurenz
e6b532391d More restructuring 2022-03-11 11:58:56 +01:00
Laurenz
b71113d37a Hyphenation 2022-03-08 19:49:26 +01:00
Laurenz
3ca5b23823 Reorganize library 2022-02-28 23:54:34 +01:00
Martin Haug
4f09233bda Enable join collection for control flow constructs 2022-02-28 15:41:38 +01:00
Martin Haug
8e0f5993f1 Make loops and functions react to control flow 2022-02-28 13:41:15 +01:00
Laurenz
b0f4b13f6d Basic justification 2022-02-25 20:48:38 +01:00
Laurenz
efde5cac88 Lower and upper on templates 2022-02-24 19:56:01 +01:00
Laurenz
ecd2bca606 List above & below 2022-02-24 19:15:49 +01:00
Laurenz
49c0bac44d First-line indents
Co-Authored-By: Martin Haug <mhaug@live.de>
2022-02-24 19:15:11 +01:00
Laurenz
e1f29d6cb9 Rework the core context 2022-02-23 14:53:55 +01:00
Laurenz
2bf32c51bc Remove layout cache 2022-02-22 12:42:02 +01:00
Laurenz
c7e52f2048 Refactor paragraph layout 2022-02-21 16:47:06 +01:00
Laurenz
61d1e1a683 Remove layout-cache feature 2022-02-18 17:33:13 +01:00
Laurenz
e01970b20a Basic show rules 2022-02-18 16:57:53 +01:00
Laurenz
05ec0f993b Headers and footers 2022-02-18 01:07:50 +01:00
Laurenz
acae6e2a54 List label styling 2022-02-18 01:06:20 +01:00
Laurenz
980f898d55 Automatic list numbering 2022-02-17 23:00:30 +01:00
Laurenz
261f387535 Accept closures for heading styling 2022-02-17 18:12:13 +01:00
Laurenz
35610a8c6a Fallible layout 2022-02-17 17:41:45 +01:00
Laurenz
c5e67af22b Merge eval and layout contexts into Vm 2022-02-17 17:32:56 +01:00
Laurenz
c7a9bac992 Better debug implementations for numeric types 2022-02-17 12:14:50 +01:00
Laurenz
5965515a1e Allow escaping of - and . 2022-02-10 13:19:03 +01:00
Laurenz
e089b6ea40 Set rules for everything 2022-02-09 12:34:19 +01:00
Laurenz
68503b9a07 Redesigned template layout 2022-02-07 20:00:21 +01:00
Laurenz
5d05c3f68a Refactor and fix style folding 2022-02-05 12:41:42 +01:00
Laurenz
20a1fd8bc7 Remove root node 2022-02-02 20:33:19 +01:00
Laurenz
d3ccd55d4b Split up styled and sequence template 2022-02-02 16:18:10 +01:00
Laurenz
bdb1c008f2 Allow set & show only directly in markup 2022-02-02 11:28:31 +01:00
Martin Haug
fe70db1f4c New color stuff
- CMYK function
- More default colors
- Interpret RGB values as sRGB
2022-02-08 21:12:09 +01:00
Martin Haug
9a9c6f22c4 Add evasion of glyph shape for under- and overlines 2022-02-04 00:30:23 +01:00
Martin Haug
bd0d0e10d8 Harmonize non-negative int arguments 2022-02-03 11:32:16 +01:00
Martin Haug
3f76aadb1a Add modulo 2022-02-03 11:32:16 +01:00
Martin Haug
e6a0447f9d Add roman numeral and footnote formatting 2022-02-03 11:32:15 +01:00
Laurenz
20b1a38414 Switch from Rc to Arc 2022-01-31 16:47:00 +01:00
Laurenz
fa57d86ed9 Fix another parser bug 2022-01-31 13:57:15 +01:00
Laurenz
8f37189d6f Fix incremental parsing bugs 2022-01-31 13:26:52 +01:00
Laurenz
8d1ce390e2 Rework strong and emph
- Star and underscore not parsed as strong/emph inside of words
- Stars/underscores must be balanced and they cannot go over paragraph break
- New `strong` and `emph` classes
2022-01-30 22:46:59 +01:00
Laurenz
d7072f378f Also debug print syntax tree 2022-01-30 11:16:57 +01:00
Laurenz
aeb036f4dc Fix that templates don't create a scope 2022-01-29 22:32:57 +01:00
Laurenz
44ebefbec2 Add hide class 2022-01-29 22:32:01 +01:00
Laurenz
24d513d891 Enable for loop over captured args 2022-01-29 21:36:25 +01:00
Laurenz
5c53b9ff60 Support for wrap 2022-01-28 22:32:53 +01:00
Laurenz
9c906f92c5 Parse break, continue and return expression 2022-01-28 21:01:36 +01:00
Laurenz
3a07603b66 Remove unnecessary group 2022-01-28 20:17:30 +01:00
Laurenz
76b1d4a93f Parse show and wrap expressions 2022-01-28 20:02:42 +01:00
Martin Haug
4f66907d08 Add Code Block syntax highlighting 2022-01-27 22:04:45 +01:00
Laurenz
3739ab7720 Export into rendered images 2022-01-24 17:39:49 +01:00
Laurenz
db158719d6 Simplify CLI 2022-01-24 16:44:52 +01:00
Laurenz
36cae88799 Fix table panic 2022-01-18 13:46:56 +01:00
Laurenz
0c5243fa80 Basic tables 2022-01-17 16:01:01 +01:00
Laurenz
b3062ee880 Make use of new Rust 1.58 formatting feature 2022-01-13 18:43:18 +01:00
Laurenz
c7f52ed048 Add even and odd functions 2022-01-13 14:14:00 +01:00
Laurenz
e74ae6ce70 Make all nodes into classes 2022-01-08 00:20:48 +01:00
Laurenz
0b62439090 Scoped styles 2022-01-07 13:26:51 +01:00
Laurenz
af014cfe5e Tidy up styling 2022-01-07 10:46:55 +01:00
Laurenz
f7e8624b4c Refactor 2022-01-05 15:06:42 +01:00
Martin Haug
c994cfa7d8 Code Review: Your parsers were so preoccupied with whether they could 2022-01-04 00:21:33 +01:00
Martin Haug
98c96ba1cb Fix parser / space / error bug 2022-01-02 14:46:08 +01:00
Martin Haug
5f114e18eb Added a test framework for incremental parsing
Fix several errors:

- Indented markup is now reparsed right
- All end group errors will now fail a reparse
- Rightmost errors will always fail a reparse
2022-01-02 00:46:19 +01:00
Laurenz
f174134aa2 Style chains 2021-12-30 12:12:19 +01:00
Laurenz
5d5d8a21cf Bump and lock dependencies 2022-01-01 12:23:00 +01:00
Martin Haug
7f7e14d95f Minor changes to columns 2021-12-28 00:23:42 +01:00
Martin Haug
37328f11ed Adjust column size and expansion handling 2021-12-27 19:01:36 +01:00
Martin
7efdcdf247 Apply simple suggestions from code review
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-12-27 12:33:53 +01:00
Martin Haug
b22ce6f8b8 Introduce equal-width columns 2021-12-26 15:59:24 +01:00
Laurenz
438255519e Review One: A Set Rules Story 2021-12-22 19:19:32 +01:00
Laurenz
11565a40b3 Set Rules Episode IX: The Rise of Testing 2021-12-21 00:20:24 +01:00
Laurenz
2a3d0f4b39 Set Rules Episode VII: The Set Awakens 2021-12-15 20:27:41 +01:00
Laurenz
244ad386ec Set Rules Episode VI: Return of the Refactor 2021-12-15 12:49:20 +01:00
Laurenz
57f5c0a1b1 Set Rules Episode V: The Tests Strike Back 2021-12-15 11:12:38 +01:00
Laurenz
ae38be9097 Set Rules Episode IV: A New Fold 2021-12-15 11:11:57 +01:00
Laurenz
40b87d4066 Set Rules Episode II: Attack of the properties 2021-12-07 16:36:39 +01:00
Martin Haug
7c829c5c1b Bump pdf-writer, svg2pdf and error messages
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-12-07 00:06:54 +01:00
Martin Haug
f15ee7efb6 Add SVG capabilities 2021-12-06 14:58:57 +01:00
Laurenz
bfa9962632 Remove baseline weirdness 2021-12-02 14:48:12 +01:00
Laurenz
e915cc4ef0 No more duplicate debug prints due to incremental tests 2021-11-29 23:22:53 +01:00
Laurenz
e4e4c1876f Fix square and circle width & height 2021-11-29 16:13:53 +01:00
Laurenz
cae60ea0cc Go back to wrapping inline nodes 2021-11-29 13:12:50 +01:00
Laurenz
e36b8ed374 Layout bugfixes 2021-11-29 12:06:38 +01:00
Laurenz
3a15922d2f X/Y abstractions 2021-11-26 16:32:06 +01:00
Laurenz
393d74f9bb Layout improvements 2021-11-25 20:51:16 +01:00
Laurenz
8a88f71cb1 Transformations 2021-11-23 22:04:08 +01:00
Laurenz
c77c5a0f0a Simpler alignment resolving 2021-11-23 14:25:50 +01:00
Laurenz
4f9e5819bb 2d alignments with plus operator 2021-11-23 12:45:20 +01:00
Laurenz
d3f6040ced Horizon alignment 2021-11-23 11:58:16 +01:00
Laurenz
0a974d86ba Welcome to Tigerland 2021-11-22 15:26:56 +01:00
Laurenz
ed50661378 Castable optional and smart values 2021-11-29 16:47:35 +01:00
Laurenz
cef46e6c40 Strokes 2021-11-20 15:51:07 +01:00
Laurenz
70c0dd7674 Small fixes 2021-11-19 13:16:43 +01:00
Laurenz
5a59bb4821 Page fill 2021-11-18 12:50:28 +01:00
Laurenz
b2e6a29789 Refactoring 2021-11-18 00:58:32 +01:00
Laurenz
d9c529347d Configurable paragraph alignment 2021-11-17 23:54:43 +01:00
Laurenz
095fa52be5 Placed node 2021-11-17 23:09:23 +01:00
Laurenz
89f2e71852 Align node 2021-11-17 17:09:19 +01:00
Laurenz
9a800daa82 Image fit modes 2021-11-16 21:32:29 +01:00
Laurenz
79638d4bbd Don't wrap already layoutable nodes into flows/pars unnecessarily 2021-11-16 12:47:14 +01:00
Laurenz
0e0f340502 Revert page and inline levels 2021-11-16 10:41:30 +01:00
Laurenz
210c4d9373 Move lang functionality into par 2021-11-16 00:37:33 +01:00
Laurenz
0ad0fa5a05 RTL tracking test 2021-11-20 13:26:28 +01:00
Martin Haug
c020707ebc Add tracking to font function 2021-11-20 12:36:03 +01:00
Laurenz
38c5c36241 Final touches 2021-11-08 13:06:11 +01:00
Laurenz
75fffc1f9b Fine-grained capturing 2021-11-08 11:52:09 +01:00
Laurenz
515fe89c5e Style changes
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:42 +01:00
Martin Haug
cf2e527a02 Code Review: No Patrick, question marks are not an instrument 2021-11-05 13:46:41 +01:00
Martin Haug
5c952d56d0 New error handling 2021-11-05 13:46:41 +01:00
Laurenz
65fac0e57c Refactoring
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:41 +01:00
Martin Haug
1c0ac793d2 Slim NodeKind memory footprint 2021-11-05 13:44:49 +01:00
Martin Haug
4875633acf Change parser 2021-11-05 13:44:49 +01:00
Laurenz
c4a87e5e7c Number style -> type 2021-11-02 10:39:45 +01:00
Laurenz
072e7c710c Reduce namespace pollution 2021-11-02 10:39:45 +01:00
Martin Haug
8ccb7d6f15 Smallcaps, sub- and superscript, ligature ctrls... 2021-11-02 10:39:45 +01:00
Laurenz
5b344b663a Reorganize modules
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-10-31 15:52:35 +01:00
Laurenz
564cb7e989 Fix panic in pad node 2021-10-31 13:51:28 +01:00
Laurenz
1af194f383 Dedent code blocks 2021-10-29 16:26:47 +02:00
Laurenz
de6786eb28 Allow multiple template bodies 2021-10-29 16:04:55 +02:00
Laurenz
d1ecb7e52e Add move function 2021-10-28 16:51:57 +02:00
Laurenz
fb0cd3df6e Fr in stack and par 2021-10-26 14:56:10 +02:00
Laurenz
1ca4ff69e2 Trim mailto: and tel: from links 2021-10-26 14:51:57 +02:00
Laurenz
3968181622 Replace .. syntax with range function 2021-10-25 13:38:32 +02:00
Laurenz
adf52a873f Drop iso- prefix for A papers 2021-10-23 22:52:40 +02:00
Laurenz
5becb32ba4 Introduce page / block / inline levels 2021-10-23 20:23:47 +02:00
Laurenz
c627847cb3 Remove directions from grid 2021-10-23 20:22:47 +02:00
Laurenz
6690bc2354 Revise block node contract
Frames produced by block nodes are now always treated as exactly one per
given region and a frame must not be larger than its respective region.
Any overflow must be handled internally. This means that stack and grid
don't need to search for fitting regions anymore, since the child has
already does that for them. This commit further moves stack spacing into
a new `SpacingNode`.
2021-10-23 20:22:47 +02:00
Laurenz
1e74f7c407 New ShapeNode
Replaces `BackgroundNode` and `FixedNode`
2021-10-23 20:22:47 +02:00
Laurenz
5f4dde0a6b Remove inline alignment from stack
The current inline alignment is very broken and leads to lots of subtle weirdness. Getting rid of it simplifies the stack's interface a lot. At a later point either:
- inline alignment will be added back in a better way, or
- all nodes will be able to expand or align themselves, meaning that the stack's children take care of their alignment
2021-10-23 20:22:47 +02:00
Laurenz
9ac125dea8 Rename State to Style and move it into its own module 2021-10-10 21:04:10 +02:00