Commit Graph

1679 Commits

Author SHA1 Message Date
Laurenz a71a2057f2 More type safety for spans 2023-08-29 17:35:35 +02:00
sitandr b2d6cb58dc
Fix weak spacing broken in math (#1966) 2023-08-26 17:36:52 +02:00
Kevin K 45bd58fbaa
Implement `rev()` method on string (#2013) 2023-08-26 17:35:52 +02:00
Sébastien d'Herbais de Thun cd13e55dd1
Fixed numbering hint (#2012) 2023-08-26 16:02:28 +02:00
Beiri22 22b5959608
separate decode from string/bytes for all data functions; and encode for json, toml, yaml via serde (#1935) 2023-08-25 14:31:03 +02:00
lolstork c00fc14905
Initial support for augmented matrices (#1679) 2023-08-25 11:16:03 +02:00
bluebear94 3fcb5ea73c
Render opening smart quote after another opening quote of a different type (#1559) 2023-08-23 14:55:43 +02:00
bluebear94 b59b8bfb35
linebreak_optimized: Handle breakpoints separated only by spaces (#1821) 2023-08-23 13:39:22 +02:00
Laurenz afc95ed19d Virtual path type
Fixes #1937
2023-08-22 14:21:04 +02:00
damaxwell 756bdb623c
Support selectors with and/or followed by before/after (#1883)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-08-22 12:23:55 +02:00
Simon Rask 046029b1e2
Add hint for missing method error for dictionary where a field with a function is present (#1922) 2023-08-21 16:26:05 +02:00
bluebear94 877df549aa
Check for control flow event before let binding (#1912)
Fixes #1906 (trying to destructure the result of `continue`).
2023-08-21 16:21:37 +02:00
Gokul Soumya 5c6434d4ce
Add intersperse() method for arrays (#1897) 2023-08-21 16:01:27 +02:00
Laurenz d52493938e Make bytes joinable 2023-08-21 15:33:03 +02:00
astrale-sharp 99ddbafc09
Wasm plugin system (#1555) 2023-08-21 15:17:16 +02:00
sitandr 2f81089995
Fix single prime in subscript (#1909)
* Fix single prime in subscript (a_' producing wrong result)

* Clippy
2023-08-10 21:36:05 +02:00
sitandr 1e21fac2ce
Fix crashing on empty regexps (#1870) 2023-08-08 14:42:04 +02:00
Laurenz 2ea451b83b Refactor SVG export a bit 2023-08-08 13:00:47 +02:00
Wenzhuo Liu 61e4ad6bba
Add SVG export (#1729) 2023-08-08 12:54:13 +02:00
Matt Fellenz f56060c1b3
Penalize runts (#1858) 2023-08-08 11:27:15 +02:00
Mathias Fischler 800744ed9d
Show warning to user if they use double/empty underscores (italic) (#1871) 2023-08-07 13:47:29 +02:00
Matt Fellenz 823fc5e5c4
Fix incomplete line endings (#1866) 2023-08-06 00:15:29 +02:00
Beiri22 e3115336bf
Decode image (#1810) 2023-08-05 13:58:28 +02:00
damaxwell ba0990f189
Period and slash are ordinary characters in math (#1855) 2023-08-05 12:02:38 +02:00
damaxwell ad55755f33
Correct spacing between closing delimiter and large operators (#1857) 2023-08-05 12:01:53 +02:00
Laurenz b8b0137504 Bytes type
- Moves `Bytes` from `util` to `eval` module
- Accepts bytes in `str` function for bytes -> str conversion
- Adds `bytes` function for str | array -> bytes conversion
- Adds `array` function for bytes -> array conversion
- Adds `len`, `at`, and `slice` methods for bytes
- Adds `encoding` parameter to `read` function
2023-08-04 15:46:46 +02:00
bluebear94 c5a103867d
layout::par::finalize: Bound allotted width when fitting to width (#1828)
Sometimes, optimized line breaking outputs lines that are wider
than the allotted width so that spacing between words can be
narrowed to fit. However, the width calculation for the fit-to-width
case does not account for this, causing the resulting width to exceed
the width of the region. This commit takes the minimum of the
calculated width with the width of the region. Fixes #1825.
2023-08-03 00:45:40 +02:00
damaxwell 20eb284318
Ensure normal weight math font face is consistent (#1774) 2023-08-03 00:34:54 +02:00
damaxwell cd163868f5
large operators have limits in displays; relations have limits always (#1748) 2023-08-03 00:27:33 +02:00
bluebear94 3c94e05ced
Warn if layout doesn't stabilize (#1684) 2023-08-03 00:24:25 +02:00
bluebear94 66df130ca4
Add start parameter to array enumerate (#1818) 2023-07-29 23:11:21 +02:00
Pg Biel 5bd97e218b
Update field mutation error message (#1742) 2023-07-26 23:03:33 +02:00
damaxwell 51a21403ba
Improved #box baselines in math (#1755)
* Improved #box baselines in math

* add a test
2023-07-20 12:59:22 +02:00
damaxwell c72952b512
Center delimiters vertically about the axis (#1756) 2023-07-20 12:50:12 +02:00
damaxwell 6a396ae214
Center large operators on axis (#1735) 2023-07-20 09:47:29 +02:00
Laurenz fc90b72355 Identify state by key only 2023-07-19 13:11:54 +02:00
Laurenz fa9e2c6237 Resolve `place` deltas relative to real container size 2023-07-19 12:59:34 +02:00
Laurenz 3dcd8e6e6b
Positions placed elements relative to real container size (#1745)
This positions placed elements relative to the real container size instead of relative to the base size of the region. This makes its usage more versatile.

Fixes #82
Fixes #685
Fixes #1705
2023-07-19 12:53:36 +02:00
lolstork b37c1e2731
Add infrastructure for compiler warnings (#1731) 2023-07-19 12:52:47 +02:00
damaxwell 8a57395ee4
Support OpenType writing script (#1697) 2023-07-19 12:25:24 +02:00
Laurenz 803ae9309f Support `scope` argument for `eval` 2023-07-18 21:53:42 +02:00
Laurenz f5953887c9 Extract syntax module into typst-syntax crate 2023-07-18 21:04:46 +02:00
damaxwell 7dc605307c
Improved math root layout (#1743) 2023-07-18 15:41:35 +02:00
Sébastien d'Herbais de Thun 0c94d2b34e
Adding `dedup` to `array` (#1738) 2023-07-18 15:23:56 +02:00
damaxwell e43903d625
split attach test (#1744) 2023-07-18 10:26:20 +02:00
damaxwell 7a1cd362aa
Support for bounding box text edges (#1626) 2023-07-17 18:19:46 +02:00
Myriad-Dreamin 9b72ee4d22
Load theme for raw code (#1675) 2023-07-17 16:43:33 +02:00
Liam Murphy e0e797c27d
Classify `dots.c`, `dots.down`, `dots.up` and `dots.v` as normal (#1726)
Fixes #713. They were previously classified by Unicode as relations, which caused a '+' sign after one of them to be treated as a unary operator rather than a binary operator. This PR overrides the Unicode classification and classifies them as normal instead, which causes a '+' sign after one of them to be properly treated as a binary operator.
2023-07-17 16:08:19 +02:00
KG 31efd542cb
Rename math symbols (#1124)
Co-authored-by: Ryan Pitasky <111201305+rpitasky@users.noreply.github.com>
Co-authored-by: Daniel Csillag <15617291+dccsillag@users.noreply.github.com>
2023-07-17 15:54:26 +02:00
Pg Biel 9b1a2b41f0
Add fields and methods to several primitives (#790) 2023-07-11 16:11:18 +02:00
MALO 507efc3a1c
Do not take empty lines into account when computing `raw` block dedent (#1676) 2023-07-10 18:23:14 +02:00
Laurenz 78f96f844b Basic floating placement 2023-07-10 18:16:59 +02:00
sitandr dfe361ec6a
Better primes in math (#1614) 2023-07-10 12:09:09 +02:00
Eric Biedert be0f8fe6d7
Customizable math classes (#1681) 2023-07-10 11:00:12 +02:00
Laurenz db09a5a712 Better error messages for `#` expressions 2023-07-06 16:01:23 +02:00
Laurenz adcc6e5506 Better error messages for keywords in place of identifiers
Fixes #1123
2023-07-06 15:16:41 +02:00
Sébastien d'Herbais de Thun 07553cbe71
Raw syntax definition loading (#1655) 2023-07-06 13:51:28 +02:00
bluebear94 cba200d4ec
Handle single and alternate substs for single glyphs in math mode (#1592) 2023-07-06 10:11:42 +02:00
bluebear94 a4756d8576
Add support for weak elements in math (#1633) 2023-07-06 09:37:19 +02:00
Mathias Fischler 5bdad06d92
Parser hints infrastructure (#1570) 2023-07-05 16:25:26 +02:00
Pg Biel d37217aaa4
Add heading `bookmarked` toggle (#1566) 2023-07-05 16:16:00 +02:00
Lynn 9a9da80665
Color mixing function (#1332)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-07-05 11:26:50 +02:00
LingMan 224e1df8e5
Disable `binary` feature of `oxipng` (#1640)
The `oxipng` crate contains a binary target in addition to the library target. Said binary has
additional dependencies which are not needed by users of the library. Since Cargo unfortunately
doesn't currently offer a good way to express such binary-only dependencies, they are enabled by
default via the `binary` feature. Avoid downloading and building these unnecessary crates by disabling the `binary` feature.
2023-07-04 15:51:18 +02:00
Laurenz ebfdb1dafa Move everything into `crates/` directory 2023-07-02 20:07:43 +02:00
Laurenz 65f11dc364 Minor improvements 2023-06-30 09:59:58 +02:00
Laurenz 04bffc4f12 Reintroduce `--root` 2023-06-28 10:36:53 +02:00
Laurenz 7b92bd7c34 Basic package management 2023-06-27 18:40:17 +02:00
damaxwell 9eb350d7de
support optical sizes for script/scriptscript when available (#1580) 2023-06-26 13:51:27 +02:00
damaxwell 1861ceb179
math under/overline now draws simple lines based on parameters in math font table (#1568) 2023-06-26 13:42:38 +02:00
MALO 33803b1614
Make footnotes referenceable (#1546) 2023-06-26 13:40:52 +02:00
bluebear94 9ef4643ba1
shape_tofus: respect text direction when inserting tofus (#1519)
This ensures that the ranges of the shaped glyphs are monotonically
decreasing in right-to-left-text, thus avoiding nonsensical results
in find_safe_to_break that later causes a panic (see #1373).
Additionally, debug assertions have been added to catch non-monotonic
glyph ranges.
2023-06-26 13:40:21 +02:00
Laurenz f1025071ed Tidy up 2023-06-24 15:05:59 +02:00
MALO b96b7b7ee1
Use third person in documentation (#1560) 2023-06-24 14:33:17 +02:00
sitandr c5e82b3fa8
Added argument to disable limits in inline math, closes #1522 (#1552) 2023-06-24 14:28:36 +02:00
Tom Binford fa42a26f6f
Improve image rendering under rotation when exporting to PNG (#1547) 2023-06-24 14:28:02 +02:00
bluebear94 622cef8e00
layout::par::collect: Treat linebreak element as whitespace (#1542)
Fixes #1540.
2023-06-24 14:26:06 +02:00
Mathias Fischler 2e03fb34cb
Add infrastructure to enrich errors with hints (#1486) 2023-06-24 14:18:21 +02:00
bluebear94 ececd07424
Make factorial take precedence over fraction in math expressions (#1487)
Fixes #1475.
2023-06-20 16:59:42 +02:00
sitandr 03675fc429
Created new system for limits (fixes #1443) (#1452) 2023-06-20 16:58:22 +02:00
Laurenz c5cdbaeaf8 Fix bug with extra table lines
Fixes #183
2023-06-12 17:48:30 +02:00
Laurenz 6720d8c301 Fix bug with missing table row
Fixes #1388
2023-06-12 17:20:54 +02:00
Laurenz 378ebe5f56 Delayed errors
Fixes #785. Thanks to @Dherse for the idea!
2023-06-12 15:42:01 +02:00
Zachary Capalbo 19bf1f5894
Clear page to Even Or Odd (#1427)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-06-12 14:28:25 +02:00
Luis David Licea Torres 3284e7fac7
Support for inside and outside margins (#1308)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-06-12 12:46:34 +02:00
Mathias Fischler 93e6638bfe
Resolve #1141: Add hint for missing numbering, improve hint format consistency (#1456) 2023-06-12 12:46:08 +02:00
Pg Biel c58a8fbd1d
Add `outline.entry` (#1423) 2023-06-12 11:50:59 +02:00
Laurenz c65aaa9137 Undo regex type rename
Unnecessary breaking change for now
2023-06-09 15:52:31 +02:00
Laurenz 3bedf8d0d1 Translate TOML datetime properly 2023-06-09 15:45:16 +02:00
Laurenz 7ece53ae0c Adjust outline indent option 2023-06-09 14:50:29 +02:00
Laurenz 903f440b28 Rename `cramp` to `cramped` 2023-06-09 14:48:23 +02:00
Alex Saveau 635ef03273
Treat function-looking code in attachment as function (#985) 2023-06-09 11:36:44 +02:00
Alex Saveau 61effc350a
Don't type check matrices (#1442) 2023-06-09 10:25:12 +02:00
Laurenz 56f7ede964 Improve footnote handling for multi-page blocks 2023-06-08 15:51:22 +02:00
Laurenz 2b812259c2 Fix footnote in columns
Fixes #1433
2023-06-08 12:24:47 +02:00
Laurenz a1b0a41883 Fix a bug with footnotes in blocks/lists/etc.
This still not gives the "footnote and entry" are on same page invariant for blocks, but at least we do not get random extraneous page breaks anymore.

Relevant issues: #1275, #1433
2023-06-08 11:51:42 +02:00
Laurenz f3e3061a7f Fix a bug in footnote together-keeping logic 2023-06-08 11:21:35 +02:00
Laurenz 10ae0a2c2b Fix line alignment
Fixes #1398. How this works for the other shapes is a hack, but the line was missing from that hack.
2023-06-08 10:20:24 +02:00
Jett Chen c87f802cf6
add calc.exp, calc.ln (#1299)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-06-07 14:44:07 +02:00
Yang Hau 0dc1776202
refactor: Replace once_cell to std lib (#1402) 2023-06-07 14:42:58 +02:00
Laurenz fd417da04f Improve value casting infrastructure 2023-06-06 22:06:16 +02:00
Laurenz 219f14355b Rename `into_u16` to `as_u16` 2023-06-06 19:06:56 +02:00
Peng Guanwen a54cde71cb
Bugfix of CJK punctuation adjustment (#1384) 2023-06-01 15:14:56 +02:00
Sung Jeon 08b49291bc
Add NumberingKind variants for Korean (#1360)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-05-30 18:42:24 +02:00
Erik Bünnig b805c5f100
Unicode code point conversion (#1068) (#1132) 2023-05-30 18:11:30 +02:00
Lynn 7e07b61046
Add a base parameter to str() (#1362) 2023-05-30 18:05:15 +02:00
Peng Guanwen e2bf2327b5
Use icu4x for linebreaking algorithm (#1355) 2023-05-30 17:53:10 +02:00
Laurenz 25e94cef03 Fix doc links 2023-05-30 14:50:43 +02:00
Laurenz f90fcd664b Fix pagebreak before `place`
Fixes #1368
2023-05-30 14:36:34 +02:00
Gabriel Wu 87ee97ae5e
Support syntax highlighting for more languages (#771)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-05-30 10:46:56 +02:00
Pg Biel 47f81f0da5
Custom outline indenting (#1157) 2023-05-30 10:46:39 +02:00
MALO 644bbf9914
Add `fields` method to content (#1340) 2023-05-30 10:13:27 +02:00
Pg Biel e4557f6639
Fix `.at(default: ...)` for strings and content (#1339) 2023-05-29 20:15:32 +02:00
Leedehai 31dfe32242
Add regression test for fix 3eb1f31 (#1320) 2023-05-29 20:14:31 +02:00
Laurenz 017027bf39 Rework delimiter errors
Fixes #572
2023-05-24 16:58:51 +02:00
Laurenz 363836a28e Fix layout panic in rounded rectangle
Fixes #1216 both by hardening the rounded rectangle against negative size and by ensuring that the negative size doesn't occur in the first place for this case.
2023-05-23 15:30:28 +02:00
Eric Biedert ff903674f9
Fix tests on windows (#1222) 2023-05-23 12:36:54 +02:00
sitandr 5dbc15ef0c
Forced size command in math (#1128) 2023-05-23 11:22:27 +02:00
Laurenz Stampfl 752817ae74
Add support for date & time handling (#435) 2023-05-23 10:41:20 +02:00
Laurenz f4fd6855e7 Fix and simplify reference supplements
- Fixes #873 by properly handling `none` supplement for`ref`.
- Fixes #523 by adding a `supplement` parameter to `math.equation`
- In the future, we can remove supplement functions in favor of show-set rules with fine-grained selectors. Currently, this is not possible because show-set + synthesis doesn't play well together
2023-05-22 20:56:30 +02:00
Laurenz 183997d5fe Don't hide introspection metadata
Fixes #622
2023-05-22 16:45:23 +02:00
Laurenz 8aa0ae197d Fix field access on styled element
Fixes #1197
2023-05-22 13:49:09 +02:00
Laurenz 3d83960322 Fix removal order for dictionary
Switches to `shift_remove` for now. In the future, we should look into a more efficient implementation. Fixes #1258.
2023-05-22 13:10:48 +02:00
Laurenz 08870d4a4c Clearer error messages for failed comparisons
Fixes #1231
2023-05-22 13:06:33 +02:00
Laurenz 1321862cd5 Footnotes 2023-05-20 21:36:24 +02:00
Laurenz 7bb69c0902 Check crate docs in CI 2023-05-20 10:48:25 +02:00
Naim A d61a839188
resolve #510: reverse quote direction in RTL languages (#1183) 2023-05-19 16:49:16 +02:00
sitandr 42c3a6fa72
Fixed symbol style reset in stretching (#1195) 2023-05-19 15:33:15 +02:00
Leedehai 84b9d9c990
Print the string that is not castable to number (#1207) 2023-05-19 14:54:44 +02:00
Leedehai 8d4f9304c0
Update string doc: index can be negative (#1198) 2023-05-19 14:41:58 +02:00
Laurenz 551ea99d05 Show default values in documentation
Fixes #169
Fixes #1102
2023-05-17 14:41:46 +02:00
Laurenz d14d1e867f Fix figure detection 2023-05-17 12:55:25 +02:00
Laurenz 88cb8c2626 Bump comemo 2023-05-16 16:43:35 +02:00
Peng Guanwen 659f27bf6a
Do not hang CJK punctuation (#1211) 2023-05-15 08:57:17 +02:00
sitandr 4b17c3f5c6
Show rules for symbols (fixes #1130) (#1175) 2023-05-12 12:26:26 +02:00
jassler fd84d23ade
Support for align parameter in table to take an array (#1087) (#1149) 2023-05-12 12:26:14 +02:00
Pg Biel a8728be9b0
Initial support for breakable figures (#1121) 2023-05-12 11:00:55 +02:00
Leedehai e8de8a49c5
Adjust attach() per TeXbook Appendix G 18a (#1129) 2023-05-11 17:38:04 +02:00
Pg Biel 1a6224f566
Default enum number alignment to 'end' (#1042) 2023-05-11 16:36:41 +02:00
Pg Biel b5ad2468ad
Improve alignment of text inside raw blocks (#1034) 2023-05-11 16:32:46 +02:00
Peng Guanwen d19a4124de
Implement sophisticated CJK punctuation adjustment (#954) 2023-05-11 15:02:52 +02:00
Alex Saveau e472b0347f
Alternate between right/left alignment in equations (#936) 2023-05-11 14:56:17 +02:00
Laurenz 2f0b5eeae0 More efficient introspection
Switches from a mutable locator to one based on tracked chains and optimizes query performance.
2023-05-11 11:27:00 +02:00
Laurenz 47dff3765d Remove 'static bound on `World`
Thanks to improvements in comemo, tracked types don't need to be 'static anymore. This means that the 'static bound on the `World` is now lifted and that the `Route` doesn't need to use unsafe code anymore to manage its lifetime.
2023-05-11 10:50:30 +02:00
Pg Biel f88ef45ee6
Function scopes (#1032) 2023-05-03 14:20:53 +02:00
Marmare314 db6a710638
Parameter pattern bug (#1062) 2023-05-03 12:42:26 +02:00
Michael Lohr ffad8516af
Implement default values for at() (#995) 2023-05-03 12:34:35 +02:00
dvdvgt be3c4d7876
[Feature] Allow function as argument for string.replace (#944) 2023-05-03 11:41:50 +02:00
Marmare314 edc0632d8c
Add shorthand for root operation (#929) 2023-05-03 11:16:38 +02:00
HarmoGlace 856557353b
Add rust minimum version in `Cargo.toml` (#902) 2023-05-03 10:37:44 +02:00
Laurenz ad347632ab Make ligatures copyable and searchable
Fixes #479
Fixes #1040
2023-05-03 10:33:18 +02:00
Alberto Vilches bcc014c4e1
fix: typos (#1074) 2023-05-02 20:45:18 +02:00
Martin Haug 17cef8dcee
Add ICC profiles to images in PDF and update `usvg`, `svg2pdf` (#822) 2023-05-02 13:53:20 +02:00
chris-02 407d8a3ab2
Fix smartquotes in outline (#1047)
Fixes #1041.
2023-05-01 13:29:40 +02:00
Leedehai ecd589a84f
Add a test checking equations can embed function-built pieces (#1033) 2023-04-29 20:51:29 +02:00
Marmare314 8fa1af8ac8
check index on placeholder (#1005) 2023-04-28 18:49:21 +02:00
Pg Biel 0d8c3254b7
Initial fix for spacing on decorated math operators (#1023) 2023-04-28 18:49:02 +02:00
Alex Saveau 1235d52c52
Make ast == ast.op (fixes #1004) (#1017) 2023-04-27 22:34:46 +02:00
Leedehai 605b0b5f73
Remove trailing blankspaces (#1001) 2023-04-27 11:27:38 +02:00
Alexander Seiler c941baa7ee
Correct some typos (#987) 2023-04-27 11:26:43 +02:00
Laurenz b1e0de0078 Version bump 2023-04-26 15:54:05 +02:00
Laurenz 3680c854a2 Touch up docs 2023-04-26 15:37:21 +02:00
Marmare314 59957746e9
Pattern as parameter (#854) 2023-04-26 11:32:11 +02:00
HarmoGlace 6134e3f4ee
Add toml support (#807) 2023-04-26 11:31:32 +02:00
HarmoGlace 7cb63d1aae
Fix overflows with operators (#904) 2023-04-26 11:30:16 +02:00
pan93412 a6df909a8d
Allow passing `region` to LocalName (#926) 2023-04-26 11:30:03 +02:00
Alex Saveau 1d42d6674c
Upgrade a bunch of deps and remove two unused ones (#968) 2023-04-26 11:22:43 +02:00
jdierkes 249d5fe515
Fix grid-cell misalignment bug (#963) (#978)
Having a table span multiple pages can cause an alignment bug in the
table itself. If the first region in a cell in a grid row is empty, all
other cells in this row will skip the first region. A misalignment bug
can occur, since the calculation of all region sizes happen before the
skip. The overall size allocated for the content of a cell with multiple
regions and content in the first region thus is too little.
Fixes #963
2023-04-26 11:22:35 +02:00
Pg Biel ae4accc071
Fix alignment of list markers & enum numbers (#988) 2023-04-26 10:03:34 +02:00
Alex Saveau f740c0b03f
Support picking the last subtest by using a random big number (#970) 2023-04-26 10:02:17 +02:00
Leedehai 62361b4127
Support indices preceding the base symbol, revamping #699 (#825)
Breaking change: abbreviate attach() attachment params, top -> t, bottom -> b
2023-04-25 11:24:07 +02:00
Alex Saveau fb99090208
Support implicit alignment (#749) 2023-04-25 11:22:32 +02:00
Laurenz Stampfl f38989358e
Add a zip method to arrays (#947) 2023-04-25 11:22:20 +02:00
Marmare314 d5d98b67a8
Destructuring assign (#703) 2023-04-25 11:22:12 +02:00
SekoiaTree efad1e71fa
Add sum and product to arrays (#966) 2023-04-25 11:18:27 +02:00
Marmare314 12129f0170
hint for unknown variable containing dash (#924) 2023-04-24 19:08:07 +02:00
Alex Saveau bc802bd8fb
Fix broken matrices with alignment and optimize code while we're at it (#935) 2023-04-24 11:16:13 +02:00
Alex Saveau 5ccc687619
Obey alignment in matrices (#892) 2023-04-24 11:04:04 +02:00
Luis David Licea Torres e5ea3ecbbb
Spanish quote marks (#941) 2023-04-24 10:33:56 +02:00
Laurenz ff1e4049d1 Support show-set for outline and bibliography headings 2023-04-23 15:06:42 +02:00
Pg Biel e9a0cf9741
Fix 0pt strokes (#923) 2023-04-23 14:38:12 +02:00
Alex Saveau b75cad2d3b
Parallelize tests (#900) 2023-04-23 14:35:18 +02:00
Pg Biel a4075f8b9b
Implement math `cancel` function (#793) 2023-04-21 11:28:46 +02:00
astrale-sharp 4cea7007d0
use clap for parsing tests. (#876) 2023-04-21 11:16:32 +02:00
Alex Saveau 851b154a6c
Convert math alignment to single-pass algorithm (#891) 2023-04-20 19:48:11 +02:00
HarmoGlace 42b93b7b53
Add `quo`, `trunc` and `fract` calculation methods and rename `mod` to `rem` (#890) 2023-04-20 16:09:41 +02:00
Martin Haug 2a682f0008
Add alt text to image function and PDF (#823) 2023-04-20 11:23:03 +02:00
Marmare314 4524539c2b
forbid underscore as identifier closes #513 (#837) 2023-04-20 11:05:11 +02:00
Alex Saveau c505a0f5dc
Add UPDATE_EXPECT envvar to update tests (#748) 2023-04-20 10:47:31 +02:00
Alex Saveau b285bea41d
Make `dot` be multiplication and add `dot.period` for periods (#747) 2023-04-19 19:08:59 +02:00
Laurenz f08ae95b9d Fix argument sinks
Fixes #886.
2023-04-19 17:51:33 +02:00
Laurenz 5a6330dbfc Fix math hiding once more 2023-04-19 16:51:47 +02:00
Johannes Wolf 981c578ff9
path: Use close_path() for closing paths (#801) 2023-04-19 16:30:27 +02:00
HarmoGlace 1e934def56
Add `gcd` and `lcm` calculation methods (#789) 2023-04-19 16:18:31 +02:00
Leedehai dc3017955a
Give more specific error messages (#881) 2023-04-19 13:26:55 +02:00
Laurenz f8966f9e86 Fix realize in math 2023-04-19 11:06:52 +02:00
Laurenz d10b53df0b Clippy 2023-04-18 19:16:13 +02:00
Laurenz 35302d2004 Handle SVG with text 2023-04-18 19:04:46 +02:00
Laurenz b51cb131bd Bump comemo 2023-04-17 19:59:45 +02:00
Peng Guanwen 480ad7670b
More Chinese punctuation adjustment (#836)
and also general linebreak improvements
2023-04-17 18:20:59 +02:00
Laurenz 9bdc4a7de0 Write PDF outline 2023-04-17 13:26:49 +02:00
Alex Saveau e5f942172d
Add comment at end of line test (#783) 2023-04-13 21:22:34 +02:00
HarmoGlace 29b36d4876
Fix `pow` overflow (#784) 2023-04-13 21:08:54 +02:00
Alex Saveau 6d596da72b
Make math punctuation tests more complete (#782) 2023-04-13 21:03:00 +02:00
Marmare314 0105eb7382
Fix function sinks (#638) 2023-04-13 16:07:58 +02:00
Birk Tjelmeland d1cd814ef8
Add support for more complex strokes (#505) 2023-04-13 16:05:56 +02:00
Laurenz 46ce9c94e3 Fix linebreak after inline objects with metadata 2023-04-13 15:52:20 +02:00
Laurenz 9025ecb2ee Better error spans in `calc` 2023-04-13 15:13:31 +02:00
HarmoGlace e11bd2a193
Add factorial, permutation and binomial to calculation functions (#639) 2023-04-13 14:38:51 +02:00
Laurenz 89cf4054d6 Reduce amount of hashing 2023-04-13 14:23:46 +02:00
Peng Guanwen ff16f3fb37
Refine linebreak algorithm for better Chinese justification (#701) 2023-04-13 10:44:39 +02:00
Alex Saveau 03d2ec9f81
Strip trailing line breaks in math equations (#750) 2023-04-13 10:42:03 +02:00
Chen a066a3d283
More flexible capability to control showing reference (#646) 2023-04-13 10:41:42 +02:00
Sébastien d'Herbais de Thun 1198e0cd38
Selector rework (#640) 2023-04-12 12:47:51 +02:00
Laurenz fe2640c552 Version bump 2023-04-11 22:34:25 +02:00
Laurenz 12be8fe070 Let dictionaries respect insertion order 2023-04-11 21:59:02 +02:00
Laurenz 6dcb65e3a3 Improve documentation 2023-04-11 21:54:13 +02:00
Marmare314 72d8785abe
fix parenthesized binding (#707) 2023-04-11 18:44:17 +02:00
Laurenz 9984e73ff3 Fix highlighting of identifiers before brackets 2023-04-11 17:26:00 +02:00
Laurenz 9720424884 Fix duplicate error message for destructuring 2023-04-11 16:50:26 +02:00
Laurenz 74fce3fc78 Fix square sizing
Fixes #85.
2023-04-11 16:26:26 +02:00
Eric Biedert c7db709da5
Allow treating ratios as floats (#681) 2023-04-11 14:13:01 +02:00
Daniel Csillag a8087a9dbb
Array sorting by key (#584) 2023-04-11 12:48:17 +02:00
Laurenz 75461675c4 Fix numbering test 2023-04-06 15:55:28 +02:00
SteamedFish ebb995feca
Add Chinese numbering (#565) 2023-04-06 15:50:15 +02:00
Laurenz 4ba3b9da80 Fix block sizing test 2023-04-06 15:49:40 +02:00
Pg Biel ca71081d05
Add 'layout' function to obtain the size of the outer container (#557) 2023-04-06 15:36:36 +02:00
Alex Sayers 5cb226026e
Add Iroha-style numbering (+ bugfix) (#555) 2023-04-06 15:31:17 +02:00
Marmare314 0f8219b392
Unpacking syntax (#532)
Closes #341
2023-04-06 15:26:09 +02:00
Laurenz a73149767c Fix block child spacing 2023-04-06 15:13:26 +02:00
Laurenz 4f4af02ace Fix path and polygon strokes 2023-04-06 12:58:27 +02:00
Laurenz f9b9be16f9 Fix box and block sizing 2023-04-06 12:26:39 +02:00
SekoiaTree 52b92a9d35
Path support (#536) 2023-04-06 12:10:49 +02:00
astrale-sharp 085282c138
Appends a hint if length is expected but hint provided. (#580) 2023-04-05 16:47:12 +02:00
Raphaël CV d569f6b33b
Fix inversion cal frak R (#593) 2023-04-05 13:37:54 +02:00
Daniel Csillag f548223663
Fix hiding of math (#587) 2023-04-05 12:04:11 +02:00
Laurenz b3faef4b80 Bump version 2023-04-05 01:41:15 +02:00
Laurenz e13c72b301 Fix first line indent with styled text 2023-04-05 00:15:51 +02:00
Sébastien d'Herbais de Thun f347ed4314
Improved figure numbering, labelling and referencing (#491) 2023-04-04 19:21:25 +02:00
Laurenz 5b0297464e Rename bibliography styles 2023-04-04 18:29:18 +02:00
Laurenz 570c528b3e Integers with different bases 2023-04-04 15:46:09 +02:00
Laurenz e77abf842d Make error messages a bit more consistent 2023-04-04 14:33:43 +02:00
HarmoGlace 4aa5e0a4a3
Make behavior of calculation functions consistent (#515) 2023-04-04 14:33:26 +02:00
Alex Sayers 2c735294cd
Improve justification of Chinese/Japanese text (#542) 2023-04-03 15:56:23 +02:00
Sébastien d'Herbais de Thun cca9ea8249
Make all counters start at zero (#533) 2023-04-02 20:01:19 +02:00
Laurenz b469f30c83 Fix block spacing 2023-04-02 19:47:42 +02:00
Laurenz e1ecb8cabe Simplify `pow` function 2023-04-01 23:31:23 +02:00
Naim A 66a22b5555
Hebrew numbering (#446) 2023-04-01 16:05:06 +02:00
Birk Tjelmeland ed79ecbb44
Add support for cliping content in `block` and `box` (#431) 2023-04-01 16:04:38 +02:00
P-Andersson 387bcc3879
add support for loading data from yaml files (#447) 2023-04-01 14:33:42 +02:00
Lars Wrenger 631ba40e57
Support for multiple bib files in a bibliography (#296) 2023-03-31 18:41:17 +02:00
Chris Ohk 418bd89ba4
Correct minor typos (#474) 2023-03-31 16:51:12 +02:00
frozolotl ed36ef3312
Add support for more characters in links (#379) 2023-03-30 21:26:43 +02:00
Johannes Wolf 4d9c6b28d0
cli: Allow reading every path not of type dir (#414) 2023-03-30 00:36:22 +02:00
Naim A 2ed4212c76
bail! when #symbol is called without parameters (#440) 2023-03-29 23:07:08 +02:00
Laurenz 72fb155403 Link to label 2023-03-29 20:10:23 +02:00
Laurenz 24e26b8c77 Fix styling of text operators 2023-03-29 19:21:01 +02:00
frozolotl e13fc04c3e
Fix parsing of language in single-tick raw literals (#401) 2023-03-28 17:04:27 +02:00
Laurenz d1ff94a3b5 A bit more polygon docs 2023-03-28 17:00:02 +02:00
Olle Lögdahl 44165d09a9
Add polygon drawing primitive (#314) 2023-03-28 16:43:16 +02:00
Laurenz e84df1a036 Fix tests on Windows
Fixes #386.
2023-03-28 14:30:21 +02:00
Laurenz e83e05d541 Term list separator changes 2023-03-27 22:31:29 +02:00
Laurenz 66de90437f Update fibonacci example and add `round` function 2023-03-27 20:23:37 +02:00
Laurenz e724d04253 Update changelog 2023-03-27 16:51:03 +02:00
Laurenz c5fb34123c Fix parsing of unbalanced delimiters in math 2023-03-27 16:09:26 +02:00
Laurenz d71c933cca Bump dependencies 2023-03-27 15:49:04 +02:00
Laurenz 1336219690 Fix numeric bibliography ordering 2023-03-27 15:21:18 +02:00
Laurenz 13ece5ec26 Allow disabling vector and matrix delimiters 2023-03-27 14:52:25 +02:00
Laurenz 51d972ec24 Fix matrix delimiters
Fixes #200.
2023-03-27 13:14:21 +02:00
Laurenz 2c7f2c005a Parse decimals as a unit
Fixes #257.
2023-03-27 12:50:00 +02:00
Laurenz a5c88c19b3 Fix enum parsing and allow zero in numberings
Fixes #353.
2023-03-27 12:12:57 +02:00
Alexander Ekdahl 766d1be72b
Newton's notation for derivatives (#281) 2023-03-25 13:32:25 +01:00
Ryan Pitasky 8b1852cffb
Replace infinite repeat layout panic with error (#235)
When a page has auto width and there were no other constraints on the repetition width, this would previously panic. Now, there is an explicit check with a new error and test case.
2023-03-24 09:15:24 +01:00
Kian-Meng Ang 25acefeb5b
Fix typos (#115)
Found via `codespell -S target -L
crate,ist,thi,alle,dedented,ue,tung,nd,ende,overriden,dependant`
2023-03-22 09:02:51 +01:00
Laurenz b934a2fd83 Embed standard fonts in binary 2023-03-21 23:18:56 +01:00
Laurenz 53b57d8294 Fix show rule colon error message 2023-03-21 13:08:18 +01:00
Laurenz 2d16f9434f Documentation for citation, bibliography, and content 2023-03-20 22:09:10 +01:00
Laurenz ab43bd802e Renaming and refactoring 2023-03-19 22:39:19 +01:00
Laurenz 0ba99ab8aa Measurement and introspection rework 2023-03-19 10:19:34 +01:00
Laurenz c7f4d6b12e Equation numbering 2023-03-18 19:54:00 +01:00
Laurenz a69b587455 Rename formula to equation 2023-03-18 19:27:31 +01:00
Laurenz a16726ae66 Architecture description 2023-03-18 18:27:22 +01:00
Laurenz f2b0c5e08d Fix page counter 2023-03-18 16:28:39 +01:00
Laurenz af7fe4d760 Hover and autocomplete in show rules 2023-03-17 18:18:47 +01:00
Laurenz 6d64d3e8e9 Query 2023-03-17 16:04:14 +01:00
Laurenz c47e4cb496 State 2023-03-17 16:04:12 +01:00
Laurenz 312197b276 Counters 2023-03-17 11:45:57 +01:00
Laurenz ecb5543985 Node links 2023-03-15 12:33:38 +01:00
Laurenz 89f44f220d Bibliography and citations 2023-03-14 22:53:54 +01:00
Laurenz e50189cfa7 Allow keywords as fields 2023-03-14 22:31:05 +01:00
Laurenz 2bacbaf2bd Hanging indent 2023-03-14 22:30:21 +01:00
Laurenz 724e9b140c Locatability and synthesis improvements 2023-03-13 21:41:33 +01:00
Laurenz ad05ba5925 Spans in math 2023-03-12 13:20:36 +01:00
Martin Haug 2720a44b96 Merge branch 'main' into ng 2023-03-12 09:58:47 +01:00
Laurenz 1a390deaea Figures 2023-03-11 20:01:56 +01:00
Laurenz 529d3e10c6 Section references 2023-03-11 18:29:48 +01:00
Laurenz a9fdff244a Expose content representation more 2023-03-10 21:19:50 +01:00
Laurenz 902c2ea121 Fix y offset in shaper 2023-03-10 14:25:04 +01:00
Laurenz 62f35602a8 New #[func] macro 2023-03-10 12:55:21 +01:00
Laurenz 2c13ff9bfe Make render background color configurable 2023-03-09 13:07:36 +01:00
Laurenz d7a65fa26d Rework style chain access 2023-03-08 14:35:33 +01:00
Laurenz e5eab73374 Streamline field names 2023-03-08 11:02:27 +01:00
Laurenz 1b2b53ecb9 Require font to be a named argument 2023-03-08 10:44:24 +01:00
Laurenz 25b5bd1175 Fully untyped model 2023-03-07 15:17:13 +01:00
Laurenz 6ab7760822 Split up `model` module 2023-03-01 16:33:28 +01:00
Laurenz 7597b99789 New default style 2023-02-25 20:04:30 +01:00
Laurenz 09077d6382 Fix more bad font names 2023-02-24 15:08:00 +01:00
Laurenz 448844d66c Allow multiple authors 2023-02-24 14:09:38 +01:00
Laurenz affb353453 Merge main back 2023-02-23 14:38:45 +01:00
Laurenz 6e65ebf236 Panic function 2023-02-19 21:08:01 +01:00
Laurenz c1637054a4 Fix semicolon parsing 2023-02-17 16:41:21 +01:00
Laurenz 028632a3a1 Fix error handling after hashtag 2023-02-17 16:32:48 +01:00
Laurenz dd5f07eb91 Add `clusters` and `codepoints` methods 2023-02-17 10:53:47 +01:00
Laurenz 585f656487 Check char boundaries in string methods 2023-02-17 10:20:52 +01:00
Laurenz 56b6a2a908 Impl `Eq` for syntax tree types 2023-02-17 10:01:40 +01:00
Laurenz 67b4540397 Dissolve utility category 2023-02-16 14:43:38 +01:00
Laurenz 942fa6636d Fix raw block highlighting 2023-02-15 09:52:08 +01:00
Laurenz b9c0fd87d3 Fix grid sizing 2023-02-14 12:34:16 +01:00
Laurenz cc9b52ddd4 Better table lines 2023-02-14 12:08:05 +01:00
Laurenz 17e9805b34 Let `eval` take code instead of markup 2023-02-13 17:45:08 +01:00
Laurenz 28b5c55cd5 Configurable markers for nested lists 2023-02-13 17:15:20 +01:00
Laurenz 05c8c6045c Configurable numbering for nested enums 2023-02-13 16:54:05 +01:00
Laurenz 8f68bc7a8e Dissolve basics folder 2023-02-13 16:50:57 +01:00
Laurenz b1b4e52af9 Block sizing 2023-02-13 16:04:25 +01:00
Laurenz 72b60dfde7 Fill and stroke properties for containers 2023-02-13 12:18:34 +01:00
Laurenz fd90736fb6 Support fractional width for `box` 2023-02-12 22:04:27 +01:00
Laurenz d99359dede Add `baseline` argument to `box` 2023-02-12 21:14:21 +01:00
Laurenz d689d706ea Vertically center non-math content in math by default 2023-02-12 21:14:12 +01:00
Laurenz 7b2cdb9d95 Require colon in show rule 2023-02-12 20:25:24 +01:00
Laurenz 3ffa7393f0 Make all nodes block-level 2023-02-12 19:57:28 +01:00
Laurenz ebbee6274c Fix square base 2023-02-12 16:38:18 +01:00
Laurenz 6260878245 Let line have an extent 2023-02-12 15:01:40 +01:00
Laurenz 2b26e08128 Fix set document bug 2023-02-12 13:23:48 +01:00
Laurenz 8cbc2ac483 Fix place base 2023-02-12 13:23:40 +01:00
Laurenz 01a62a690b Make grid RTL aware 2023-02-12 12:57:40 +01:00
Laurenz 8951b1923a Skip grid region if one cell is empty 2023-02-12 12:57:35 +01:00
Laurenz e873468ea7 Change grid base for auto columns 2023-02-12 11:38:42 +01:00
Laurenz 03cbdea4b4 Fix "not in" precedence 2023-02-12 10:17:35 +01:00
Laurenz ebe919220d Fix flow bugs 2023-02-11 13:30:55 +01:00
Laurenz 7d28e6499e Set Typst versions to `0.0.0` 2023-02-06 11:53:49 +01:00
Laurenz 2e87dcdbe0 More fonts 2023-02-06 11:48:16 +01:00
Laurenz ec05ed7e06 Move assets 2023-01-31 15:05:42 +01:00
Laurenz 9a99beec94 Fix `array.pop()` 2023-02-05 17:47:33 +01:00
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
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 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