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