Laurenz
d3ccd55d4b
Split up styled and sequence template
2022-02-02 16:18:10 +01:00
Laurenz
a7b403fd74
Rename `Node` to `Template`
2022-02-02 16:02:23 +01:00
Laurenz
0a1916c1e4
Remove width from backlog and last region
2022-02-02 15:25:43 +01:00
Laurenz
bdb1c008f2
Allow set & show only directly in markup
2022-02-02 11:28:31 +01:00
Laurenz
7c33c1e691
Make `Add` for `Node` a bit more efficient
2022-02-02 10:40:33 +01:00
Laurenz
a3f151df82
Fix filename
2022-02-02 10:40:26 +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
144c2957e1
Le Rêfectéur
2022-02-04 11:28:39 +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
Martin Haug
e32e9faa53
Fix incremental group bug
2022-02-03 11:31:53 +01:00
Laurenz
6a6753cb69
Better function representation
2022-02-01 12:26:13 +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
b1a82ae22d
Remove `markup_while`
2022-01-31 11:16:31 +01:00
Laurenz
490819a3d0
Reorder succession rules
2022-01-31 11:05:59 +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
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
3cad6bf607
Allow to add `none` and node
2022-01-29 18:14:51 +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
Laurenz
c183ed3c15
Mutex comes from tex and we don't want any
2022-01-27 23:07:10 +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
cd7630415f
Don't do font fallback for unshapable newlines
2022-01-17 16:48:16 +01:00
Laurenz
0c5243fa80
Basic tables
2022-01-17 16:01:01 +01:00
Laurenz
4abdafcd15
Faster byte/utf-16 offset conversions
2022-01-13 19:55:32 +01:00
Laurenz
b3062ee880
Make use of new Rust 1.58 formatting feature
2022-01-13 18:43:18 +01:00
Laurenz
8013a0d0e6
More heading configuration
2022-01-13 14:14:34 +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
5fd9c0b0d7
Lift styles out of individual nodes
2022-01-05 23:55:06 +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
Martin Haug
289122e83c
Deal with offside rule and remove RightWhitespace
2021-11-29 12:06:41 +01:00
Laurenz
12f7335ac3
Clarity and bugfix
...
Fixes a bug where validation would wrongly reject an atomic primary reparse due to trailing whitespace.
Co-Authored-By: Martin <mhaug@live.de>
2021-11-28 22:32:20 +01:00
Martin Haug
e05eb5fda5
Code Review: Parser, I can't let you do this
2021-11-28 18:18:45 +01:00
Martin Haug
edc686d738
Make incremental parsing simpler and move it somewhere else
2021-11-27 16:10:22 +01:00
Martin Haug
fdb9d0743d
Refactoring and bugfixes
2021-11-18 16:21:45 +01:00
Martin Haug
3162c6a83a
Comments and neighbors
2021-11-10 20:41:10 +01:00
Martin Haug
91f2f97572
Multiple replacements, escapes
2021-11-09 13:34:23 +01:00
Martin Haug
7a631d8b09
Simplify node mode management
2021-11-09 13:07:55 +01:00
Martin Haug
9141cba6a9
Deal with the effects of keywords
2021-11-08 12:01:35 +01:00
Martin Haug
0663758fbb
Tests
...
- length updates
- dealing with keywords and comments
2021-11-07 19:43:01 +01:00
Martin Haug
eba7fc34ef
Incremental-safety based approach
2021-11-06 16:07:21 +01:00
Martin Haug
7016ab0d12
Make stuff more elegant
2021-11-03 11:03:00 +01:00
Martin Haug
1e4cab393e
Introduce incremental parsing
2021-11-02 12:06:22 +01:00
Laurenz
179a9f4798
Clarifications and small improvements
2021-12-30 17:02:19 +01:00
Laurenz
f174134aa2
Style chains
2021-12-30 12:12:19 +01:00
Laurenz
f5dcb84e36
Make clippy a bit happier
2021-12-30 12:00:12 +01:00
Laurenz
bd304b99e5
Tidying
2021-12-28 13:41:26 +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 Haug
accf70949d
Make column child frames expand horizontally
2021-12-27 14:04:25 +01:00
Martin Haug
ee12bf6716
Iterate over target regions instead in columns loop
2021-12-27 13:41:57 +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
958f74f777
Set Rules Episode VIII: The First Macro
2021-12-16 14:43:02 +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
fe21c4d399
Set Rules Episode III: Revenge of the packer
2021-12-09 13:42:52 +01:00
Laurenz
40b87d4066
Set Rules Episode II: Attack of the properties
2021-12-07 16:36:39 +01:00
Laurenz
26bdc1f0f6
Set Rules Episode I: The Phantom Style
2021-12-05 12:54:03 +01:00
Martin Haug
738ff7e1f5
Reduce the size of the `FramesEntry` struct and bump edition
2021-12-13 15:56:14 +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
2982020480
Bump pdf-writer
2021-12-04 21:55:23 +01:00
Martin Haug
d971ac9a8c
Add a producer info for the PDF
2021-12-02 17:24:52 +01:00
Laurenz
bfa9962632
Remove baseline weirdness
2021-12-02 14:48:12 +01:00
Laurenz
f3bdc9d3da
Syntax highlighting
2021-11-30 18:55:50 +01:00
Laurenz
e4e4c1876f
Fix square and circle width & height
2021-11-29 16:13:53 +01:00
Laurenz
67705e2038
Fix vertical image expansion
2021-11-29 15:09:29 +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
50bd863471
More independent placed node
2021-11-26 23:51:18 +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
304d9dd110
Small style changes
2021-11-24 17:00:10 +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
02f114d072
Remove decorum
2021-11-22 15:50:35 +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
e869c899bc
More intuitive auto image sizing in grid
2021-11-17 22:29: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
0cdf17216f
Abstraction for fr resolving
2021-11-16 18:15:47 +01:00
Laurenz
79638d4bbd
Don't wrap already layoutable nodes into flows/pars unnecessarily
2021-11-16 12:47:14 +01:00
Laurenz
73c4701749
Introduce `SizedNode`
2021-11-16 11:40:42 +01:00
Laurenz
0e0f340502
Revert page and inline levels
2021-11-16 10:41:30 +01:00
Laurenz
bc118634ac
Remove alignment from stack
2021-11-16 10:22:46 +01:00
Laurenz
210c4d9373
Move `lang` functionality into `par`
2021-11-16 00:37:33 +01:00
Laurenz
370802de13
Simplify `FlowNode` a bit
2021-11-16 00:32:41 +01:00
Laurenz
972c940e07
Introduce `FlowNode`
2021-11-16 00:12:43 +01:00
Martin Haug
bcde4a3e51
Fix a grid constraint
2021-11-27 15:05:26 +01:00
Martin Haug
5677766715
Fix some comments
2021-11-24 20:07:44 +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
63c274e7f6
Make clippy happier and remove `Str`
2021-11-15 17:06:43 +01:00
Laurenz
8a38899c98
Tidying
2021-11-14 15:06:34 +01:00
Laurenz
14048937b8
Search for fonts in the project directory
2021-11-14 13:13:27 +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
95866d5fc9
Tidy up AST
2021-11-08 01:37:49 +01:00
Laurenz
8117ca9950
Deduplicate trivia search
2021-11-06 15:49:39 +01:00
Laurenz
41bdafb578
Faster parser
2021-11-06 15:49:39 +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
f0c9635db5
Notes
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
42afb27cef
Add documentation
2021-11-05 13:44:50 +01:00
Martin Haug
49fb3cd4e2
Code Review: Life is Like a Box of Iterators
2021-11-05 13:44:50 +01:00
Martin Haug
7d34a548cc
Reorganize syntax module
2021-11-05 13:44:50 +01:00
Martin Haug
2e7d359e59
Unicode escape error moved to tokenizer
2021-11-05 13:44:49 +01:00
Martin Haug
c569e14c07
Improve error handling
2021-11-05 13:44:49 +01:00
Martin Haug
1c0ac793d2
Slim `NodeKind` memory footprint
2021-11-05 13:44:49 +01:00
Martin Haug
84d35efee3
Less owning, more iterating
2021-11-05 13:44:49 +01:00
Martin Haug
4875633acf
Change parser
2021-11-05 13:44:49 +01:00
Laurenz
ea6ee3f667
Fix page breaks in lists and enums
2021-11-02 10:42:32 +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
feff013abb
More useful `Spec` helpers
2021-10-31 14:40:15 +01:00
Laurenz
564cb7e989
Fix panic in pad node
2021-10-31 13:51:28 +01:00
Laurenz
4645d1a517
Switch to borrowed strings in `split_lines`
2021-10-29 16:36:09 +02: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
5c534fb428
Simplify node construction
2021-10-26 17:14:11 +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
b42ecbd6a6
Simplify decorations
2021-10-23 20:24:35 +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
Laurenz
d4cc8c775d
Move paint and colors into `geom`
2021-10-10 20:26:58 +02:00
Laurenz
f4ed775df0
Make `none` spreadable
2021-10-10 12:16:28 +02:00
Laurenz
c0f5cd011f
Slim down and organize paper sizes
...
Co-Authored-By: Martin <mhaug@live.de>
2021-10-07 14:11:56 +02:00
Laurenz
61fdc85b13
Refactor a bit
2021-10-05 23:23:09 +02:00
Laurenz
b69c0355ec
Don't fit images to remaining height
...
Makes them really small if there's only little space left ...
2021-10-05 20:05:15 +02:00
Laurenz
3d0dcbea18
Error on out-of-range values in `rgb`
2021-10-05 19:55:15 +02:00
Laurenz
25b053ed93
Rename `length` to `size` in `square()`
2021-10-05 19:55:00 +02:00
Laurenz
ae05dc0876
Always use first positional argument in `expect()`
...
This changes `#h(100)` from "missing argument: spacing" to "expected linear, found integer".
2021-10-05 19:45:38 +02:00
Laurenz
0a23bfbc23
Add `assert` function
2021-10-05 19:37:38 +02:00
Laurenz
58d1cc68d9
Let `h`, `v` and `pagebreak` return template
2021-10-05 19:30:12 +02:00
Laurenz
155673c15e
Paper longhand for page function
2021-10-05 19:23:45 +02:00
Laurenz
4ff1519bea
Fill shorthand for font function
2021-10-05 19:19:55 +02:00
Laurenz
5e06941c63
Iterate over grapheme clusters instead of chars
2021-10-05 17:57:30 +02:00
Laurenz
00be5d36c4
Change indent requirements to allow alignment
...
Previously the following wouldn't work correctly because "Fourth" would have been a child of "Third".
```
3. Third
⎵. Fourth
```
2021-10-05 17:25:58 +02:00
Laurenz
4b2c6334d0
Change precedence of range expression
2021-10-05 17:19:48 +02:00
Laurenz
c25c6a35b2
Simpler and more versatile row and column gutter arguments
2021-10-02 19:35:02 +02:00
Laurenz
1d60525690
Fix panic in grid due to empty auto row
2021-10-02 18:41:03 +02:00
Laurenz
2818ceee44
New default fonts
2021-09-30 22:50:14 +02:00
Laurenz
30f302f7ff
Treat lone hashtag as text
2021-09-30 19:41:28 +02:00
Laurenz
9e78dbe525
Better function and closure pretty printing
2021-09-30 19:07:17 +02:00
Laurenz
6d26e15fbe
Support `else if`
2021-09-30 19:07:06 +02:00
Laurenz
9e95502622
No hashtag before else anymore
2021-09-30 18:28:25 +02:00
Laurenz
989d344d3d
Implement `Display` for `Tracepoint`
2021-09-29 00:10:39 +02:00
Laurenz
a0065eef86
Make file system loader serializable
2021-09-29 00:10:21 +02:00
Laurenz
0e89facb53
Allow linear values for text edges
2021-09-28 10:53:54 +02:00
Laurenz
f1ab290572
Refactor line reordering from callback to iterator
2021-09-27 22:45:29 +02:00
Laurenz
ed0c804017
Add spacing capabilities to stack function
...
- Named argument `spacing` controls spacing between any two template arguments
- Arbitrary linears in the list can produce arbitrary spacing
2021-09-27 22:23:26 +02:00
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