33 Commits

Author SHA1 Message Date
Laurenz
5afb42ad89 Lists with indent-based parsing
- Unordered lists with indent-based parsing and basic layout using stacks
- Headings are now also indent based
- Removes syntax functions since they will be superseded by select & transform
2021-06-09 00:37:13 +02:00
Laurenz
f26526ba75 Switch back to hashtags for headings 2021-06-07 18:17:47 +02:00
Martin Haug
9f77f09aac Parse import and include expressions
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-31 22:33:40 +02:00
Laurenz
5e08028fb3 Syntax functions 🚀
This adds overridable functions that markup desugars into. Specifically:
- \ desugars into linebreak
- Two newlines desugar into parbreak
- * desugars into strong
- _ desugars into emph
- = .. desugars into heading
- `..` desugars into raw
2021-03-21 17:50:56 +01:00
Laurenz
264a7dedd4 Scheduled maintenance 🔨
- New naming scheme
  - TextNode instead of NodeText
  - CallExpr instead of ExprCall
  - ...
- Less glob imports
- Removes Value::Args variant
- Removes prelude
- Renames Layouted to Fragment
- Moves font into env
- Moves shaping into layout
- Moves frame into separate module
2021-03-19 17:57:31 +01:00
Laurenz
84cdc85ca7 Refresh parser 🌊 2021-02-18 15:06:00 +01:00
Laurenz
e143fd36ef Refresh tokenizer 🌊 2021-02-18 15:05:49 +01:00
Laurenz
db1659a987 Rename any template to func template ✏ 2021-02-12 23:14:29 +01:00
Laurenz
06ca740d01 Split evaluation and execution 🔪 2021-02-09 19:46:57 +01:00
Laurenz
d86a5e8a1f Tidy up raw blocks 🧹
- Better trimming (only trim at the end if necessary)
- Fixed block-level layouting
- Improved pretty printing
- Flip inline variable to block
- Flip inline variable to display for math formulas
2021-02-03 21:34:49 +01:00
Laurenz
89eb8bae49 New syntax 💎
- Everything everywhere!
  - Blocks with curly braces: {}
  - Templates with brackets: []
  - Function templates with hashtag: `#[f]`
- Headings with equals sign: `= Introduction`
2021-01-30 12:09:26 +01:00
Laurenz
aaa48403cd Require hashtag for all keywords 💂‍♀️ 2021-01-26 21:11:44 +01:00
Laurenz
16ac3f3ebc Small improvements ♻ 2021-01-26 13:49:04 +01:00
Laurenz
539735e668 Basic let bindings 🎞 2021-01-13 11:54:50 +01:00
Laurenz
515905d78d Add angle value 📐 2021-01-10 18:22:06 +01:00
Laurenz
9eac62c31a Add lots of new tokens 🍪 2021-01-10 17:52:37 +01:00
Laurenz
3b2a28ca8e Add angle data type 📐 2021-01-09 21:35:36 +01:00
Laurenz
8275b186ba Remove star-slash token 2021-01-07 16:13:18 +01:00
Laurenz
59d811aeba Inline literal enum into expression enum 🔀 2021-01-06 21:06:48 +01:00
Laurenz
77c06ebc24 None literal 🕳 2021-01-04 17:23:52 +01:00
Laurenz
aae67bd572 Move and rename many things 🚛 2021-01-03 00:12:09 +01:00
Laurenz
2b6ccd8248 Better parser testing 2021-01-01 16:43:58 +01:00
Laurenz
ba3d43f7b2 Refresh function call and dictionary syntax
- No colon between function name and arguments, just whitespace
- "Named" arguments (previously "keyword" arguments) use colon instead of equals sign
2020-12-27 20:45:20 +01:00
Laurenz
2336aeb4c3 Tweak parser error messages 🔮 2020-12-16 16:24:06 +01:00
Laurenz
6bbedeaa2c Better tokenization testing 🌋
- Better tokenization test coverage.
- Suffix testing: Each test case is tested with many different suffixes to ensure correct token ends.
- Improves expression parsing (fixes #3).
2020-12-16 15:42:02 +01:00
Laurenz
761931405c Use newly stabilized intra doc links ↩ 2020-11-24 16:12:41 +01:00
Laurenz
92c01da360 Switch back to custom geometry types, unified with layout primitives 🏞 2020-10-10 22:19:36 +02:00
Laurenz
54e0da59e3 Small documentation fixes 🧾 2020-10-03 18:15:09 +02:00
Laurenz
95bae5725c Int, Float, Relative and Linear values 🍉 2020-10-03 15:07:57 +02:00
Laurenz
3533268b1f Refactor parser 🏞 2020-10-02 15:43:29 +02:00
Laurenz
4b9bc66028 Implement low-level char parser 🥜 2020-10-01 01:38:18 +02:00
Laurenz
4077a7c11e Refactor raw blocks 💱 2020-09-30 18:59:33 +02:00
Laurenz
bc1b4216a8 Reorganize syntax types into two modules 📦 2020-09-30 12:45:33 +02:00