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
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
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
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
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
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
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
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
c25c6a35b2
Simpler and more versatile row and column gutter arguments
2021-10-02 19:35:02 +02:00
Laurenz
0e89facb53
Allow linear values for text edges
2021-09-28 10:53:54 +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
c18321a4c2
Bugfix and tidying
2021-09-15 13:05:00 +02:00
Laurenz
f592662aa0
Rename `Arguments` to `Args`
2021-09-10 12:27:33 +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
17ea0d4ba9
Make font fallback disableable
2021-08-27 14:08:31 +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
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
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
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
144f208821
Add file information to spans
2021-08-13 14:33:58 +02:00
Laurenz
eaa3cbaa9c
Array and dictionary indexing
2021-08-12 13:56:23 +02:00
Laurenz
8207c31aec
Minor refactorings
...
- Reorder parser methods and use `Pos` everywhere
- Remove tab special handling for columns and adapt heading/list/enum indent handling
- Don't panic when a file has an empty path
2021-08-10 11:28:12 +02:00
Laurenz
3932bb2cb9
New source loading architecture
2021-08-09 11:26:41 +02:00