512 Commits

Author SHA1 Message Date
Laurenz
fee5170a68
Rename master to main 🔀 2020-09-27 17:01:37 +02:00
Laurenz
dcf1d09d39 Fix for updated fontdock ✔ 2020-09-27 14:26:50 +02:00
Martin Haug
71448c57ff Move Dependabot file to right directory 📁 2020-09-06 18:52:19 +02:00
Laurenz
cc5a74d5a9
Merge pull request #16 from typst/split-up-parsing
Split up parser into multiple files 🧱
2020-09-03 19:56:37 +02:00
Laurenz
7f8f225cb3 Split up parser into multiple files 🧱
Splits up into:
- escaping: resolving of escape sequences
- parser: the parsing code
- tests: all integrated parsing tests

Also moves Ident from the root syntax module into the tree module.
2020-09-03 19:16:19 +02:00
Laurenz
7f575dc098 Rename skip_white to skip_ws 2020-09-02 16:54:22 +02:00
Laurenz
b2f3730013 Deduplicate and flexibilize code token & node building 🧺 2020-09-01 14:57:25 +02:00
Laurenz
862f1ccad8
Merge pull request #15 from typst/headings
Add section headings 👨‍🦲
2020-09-01 13:25:53 +02:00
Laurenz
280cd91474 Remove superfluous star 2020-09-01 13:17:12 +02:00
Laurenz
56acc9982c Formatting 🌿 2020-09-01 13:13:54 +02:00
Martin Haug
d986bc4b0a Add section headings 👨‍🦲
Co-authored-by: Laurenz Mädje <laurmaedje@gmail.com>
2020-09-01 13:10:48 +02:00
Laurenz
798c8a10c8
Merge pull request #14 from typst/non-breaking-space
Non-breaking spaces
2020-08-31 14:53:21 +02:00
Martin Haug
1942a25793 Move Nbsp logic to tokenizer 🚛 2020-08-31 14:47:52 +02:00
Martin Haug
08433ab79f Capability to escape the tilde symbol 💨 2020-08-31 12:20:45 +02:00
Martin Haug
d0e252d116 Add non-breaking space 🔒 2020-08-31 12:11:34 +02:00
Martin
696560622d
Merge pull request #13 from typst/fmt
Formatting with rustfmt
2020-08-31 11:58:15 +02:00
Laurenz
181f756a9e Format everything with rustfmt! 💚 2020-08-30 22:18:55 +02:00
Laurenz
0d44cf5321 Some alignment ⏭ 2020-08-30 22:15:36 +02:00
Laurenz
18c515cde5 Make some code easier for rustfmt 🍦 2020-08-30 22:09:33 +02:00
Laurenz
3337d24543 Devise reasonably nice rustfmt.toml 🌿 2020-08-30 22:07:16 +02:00
Laurenz
fe51ad2e7c Fix different-fonts-in-text bug ✔ 2020-08-30 15:32:52 +02:00
Laurenz
07f387d088
Merge pull request #12 from typst/unicode-escape
Unicode escape sequences in strings and body text
2020-08-30 15:22:56 +02:00
Laurenz
9861a9583e Slight simplifications 🍃 2020-08-30 15:16:55 +02:00
Martin
f7f255d5ea
Set up Dependabot 🤖 2020-08-30 13:44:44 +02:00
Martin Haug
c043692c96 Also provide escapes for strings 🗒 2020-08-30 13:39:21 +02:00
Martin Haug
7041e0938d Added Unicode Escaping for body text 👙 2020-08-30 13:21:07 +02:00
Laurenz
2a6cde7272
Merge pull request #11 from typst/code-blocks
Added code blocks 🚟
2020-08-29 17:26:49 +02:00
Martin Haug
d68367f32a Newlines are complicated, y'all 😱
Co-authored-by: laurmaedje@outlook.de <laurmaedje@outlook.de>
2020-08-29 17:20:04 +02:00
Martin Haug
1eb584e256 Fixing the build by removing P macro usage 🚑
Kids, merge with caution!
2020-08-29 14:10:56 +02:00
Martin
5e1fd35926
Merge branch 'master' into code-blocks 2020-08-29 13:58:30 +02:00
Martin Haug
c2b6f2dc35 Added code blocks 🚟 2020-08-29 13:53:59 +02:00
Laurenz
236750c35f Remove par nodes in favor of parbreaks 🔄
This basically reverts the earlier change from parbreaks to par nodes because:
- It is simpler and less nested
- It works way better with functions that layout their body inline like `font`, which where buggy before, previously

The original reasons for changing to par nodes were:
- the envisioned design of the layouter at that time (based on dynamic nodes etc.), which is not relevant anymore
- possibly existing benefits with regards to incremental compilation, which are unsure and outweighed by the immediate benefits of the parbreak-representation
2020-08-29 12:02:07 +02:00
Laurenz
6febc03273 Make align not behave box-like and smarter 📦
Doesn't layout contents into a box anymore, instead layouting inline in the parent context. Also makes axis inferring for center alignents smarter (just because I had fun doing it). It's unsure whether we want to keep it because it might be confusing.
2020-08-29 11:32:32 +02:00
Laurenz
8a45ec2875 Fix default values for rgb-clamping 🩹 2020-08-27 21:56:53 +02:00
Laurenz
2a92428ff6 Do as Dolores says 2020-08-27 21:47:26 +02:00
Laurenz
37835e4d8e Better error reporting for nameless function 💡 2020-08-27 21:34:48 +02:00
Laurenz
ad8e391c69
Merge pull request #10 from typst/multi-invocation
Add Multi-Invokation 👨‍👩‍👧‍👧
2020-08-27 21:21:23 +02:00
Martin Haug
c099b8b9b4 Fixing the regression 🩹 2020-08-27 20:56:44 +02:00
Martin Haug
3abb9ec319 Code review-tastic changes 🦪 2020-08-27 20:42:09 +02:00
Martin Haug
3de20f8d38 Add Multi-Invokation 👨‍👩‍👧‍👧 2020-08-27 17:50:57 +02:00
Laurenz
141d69cb60 Remove some obsolete stuff 2020-08-19 21:12:34 +02:00
Laurenz
fd9959fd04 Add end-to-end typesetting benchmark 🖊 2020-08-19 20:51:36 +02:00
Laurenz
77dac270a8 Make compute functions possible 💻
Ships with the amazing new `rgb` function!
2020-08-19 20:49:01 +02:00
Laurenz
6d7e7d945b Tidy up library functions 🧺 2020-08-17 23:45:03 +02:00
Laurenz
3cbca56a71 Parse braced expressions and bracketed calls in headers 🗳
- Refactors the tokenizer to be lazy: It does not emit pre-parsed function tokens, but instead allows it's mode to be changed. The modes are tracked on a stack to allow nested compute/typesetting (pop/push).
- Introduces delimited groups into the parser, which make it easy to parse delimited expressions without handling the delimiters in the parsing code for the group's content. A group is started with `start_group`. When reaching the group's end (matching delimiter) the eat and peek methods will simply return `None` instead of the delimiter, stopping the content parser and bubbling up the call stack until `end_group` is called to clear up the situation.
2020-08-17 16:25:09 +02:00
Laurenz
8a80503188 Tidier error output in main and tests 🧹 2020-08-17 16:18:55 +02:00
Laurenz
30f16bbf64 Add Value type and replace dyn-nodes with call-exprs 🏗
- In addition to syntax trees there are now `Value`s, which syntax trees can be evaluated into (e.g. the tree is `5+5` and the value is `10`)
- Parsing is completely pure, function calls are not parsed into nodes, but into simple call expressions, which are resolved later
- Functions aren't dynamic nodes anymore, but simply functions which receive their arguments as a table and the layouting context
- Functions may return any `Value`
- Layouting is powered by functions which return the new `Commands` value, which informs the layouting engine what to do
- When a function returns a non-`Commands` value, the layouter simply dumps the value into the document in monospace
2020-08-16 22:39:21 +02:00
Laurenz
9f6137d8a8 Remove tuples and objects in favor of tables 🛢
This refactores the parser tests to make them more concise and flexible with regards to spans.
2020-08-16 14:38:30 +02:00
Laurenz
84f30fb735 Remove SpanlessEq 🎃
The new solution is slightly hacky, but way more flexible. All types that implement PartialEq can now be compared spanlessly in tests by manipulating a thread-local boolean that is read in Span's PartialEq implementation.
2020-08-15 15:01:55 +02:00
Laurenz
eb9c4b1a49 Add table expressions with arg-parsing functions 🪔 2020-08-15 13:25:31 +02:00