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
61761604e4
Page style list fix
2022-02-20 23:54:46 +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
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
ab95627d87
Switch to const generics for nodes
2022-02-17 13:28:04 +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
f9d3802492
Better debug representation for template
2022-02-03 14:27:20 +01:00
Laurenz
20a1fd8bc7
Remove root node
2022-02-02 20:33:19 +01:00
Laurenz
c5e05ac0ea
Rename `into_block` to `pack`
2022-02-02 17:17:41 +01:00
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
26bdc1f0f6
Set Rules Episode I: The Phantom Style
2021-12-05 12:54:03 +01:00
Laurenz
cae60ea0cc
Go back to wrapping inline nodes
2021-11-29 13:12:50 +01:00
Laurenz
50bd863471
More independent placed node
2021-11-26 23:51:18 +01:00
Laurenz
393d74f9bb
Layout improvements
2021-11-25 20:51:16 +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
095fa52be5
Placed node
2021-11-17 23:09:23 +01:00
Laurenz
89f2e71852
Align node
2021-11-17 17:09:19 +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
972c940e07
Introduce `FlowNode`
2021-11-16 00:12:43 +01:00
Laurenz
63c274e7f6
Make clippy happier and remove `Str`
2021-11-15 17:06:43 +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
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
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
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
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
7f48e8fe66
Make user-facing "debug" representation use Debug instead of Display
2021-08-31 16:25:12 +02:00
Laurenz
e4e79990da
Allow body for font function once again
2021-08-29 15:09:54 +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
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
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
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
9462fb17b3
Convert single-field structs to tuple structs
2021-08-16 19:15:03 +02:00
Laurenz
6ae6d86b9c
Separate type for string values
2021-08-14 15:55:39 +02:00
Laurenz
eaa3cbaa9c
Array and dictionary indexing
2021-08-12 13:56:23 +02:00