93 Commits

Author SHA1 Message Date
Laurenz
335fa2d118 Small improvements 🍪 2020-10-04 23:31:35 +02:00
Laurenz
c1dd872b34 Remove unncessary wrappers and typedefs 🛑 2020-10-04 19:57:39 +02:00
Laurenz
0f7c70fd93 Separate state and constraints 🧶 2020-10-04 19:06:20 +02:00
Laurenz
6672f8f7df Remove Typesetter in favor of typeset function 🎯 2020-10-04 18:18:55 +02:00
Laurenz
262a8fa36a Refactor and move shaping out of the layout module 2020-10-04 18:01:56 +02:00
Laurenz
0fc25d732d Port to kurbo 🎋 2020-10-03 13:23:59 +02:00
Laurenz
730715c064 Rename text layouting to shaping ✏ 2020-10-03 11:09:32 +02:00
Laurenz
f8770d2b2a Generalize layouting primitives 🛤 2020-10-01 15:35:09 +02:00
Laurenz
e676ab53dd Rename compute to eval ✏ 2020-10-01 15:13:04 +02:00
Laurenz
7c12f0c07f Flatten compute module 2020-10-01 15:10:35 +02:00
Laurenz
7fcad452b8 Reorganize ast types 🏕 2020-10-01 15:03:37 +02:00
Laurenz
bc1b4216a8 Reorganize syntax types into two modules 📦 2020-09-30 12:45:33 +02:00
Laurenz
181f756a9e Format everything with rustfmt! 💚 2020-08-30 22:18:55 +02:00
Laurenz
77dac270a8 Make compute functions possible 💻
Ships with the amazing new `rgb` function!
2020-08-19 20:49:01 +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
2467cd6272 Refactor function parsing ♻ 2020-08-04 13:48:07 +02:00
Laurenz
ed4fdcb0ad Par nodes 🧳 2020-08-04 11:46:04 +02:00
Laurenz
dbfb3d2ced Formatting, documentation and small improvements 🧽 2020-08-03 16:04:55 +02:00
Laurenz
266d457292 Refactor model into tree 🛒 2020-08-02 22:05:49 +02:00
Laurenz
cbbc46215f Layout elements and pure rust rendering 🥏 2020-08-02 21:17:42 +02:00
Laurenz
d5ff97f42e Move binary into separate crate and tidy dependencies 🎭 2020-08-02 16:56:14 +02:00
Laurenz
533374db14 Refactor argument parsing 🔬 2020-08-02 16:31:34 +02:00
Laurenz
659248d52f Raw lengths 🚲
Replace unitless length with raw f64 and introduce length type with unit.
2020-08-01 19:15:55 +02:00
Laurenz
06dbac6efd Port font handling to fontdock and ttf-parser 🛳
- Use fontdock for indexing fonts and querying
- Typst binary now automatically indexes and uses system fonts in addition to a fixed font folder!
- Removes subsetting support for now (was half-finished anyways, plan is to use harfbuzz for subsetting in the future)
- Adds font width configuration support
2020-08-01 00:10:54 +02:00
Laurenz
bbcdeb128c Move, rename and switch some things (boring) 🚚
- Problems -> Diagnostics
- Position -> Pos
- offset_spans -> Offset trait
- Size -> Length (and some more size types renamed)
- Paper into its own module
- scope::Parser -> parsing::CallParser
- Create `Decorations` alias
- Remove lots of double newlines
- Switch from f32 to f64
2020-07-29 18:09:51 +02:00
Laurenz
751812f451 Serialize layouts with serde 🔠 2020-02-04 21:36:29 +01:00
Laurenz
e63ce52ae0 Merge Parsed and Layouted types into Pass with Feedback 🌝🎢🌚 2020-02-04 19:22:23 +01:00
Laurenz
3150fd5643 Better Debug/Display and Derives 🧽 2020-02-03 12:22:02 +01:00
Laurenz
20fb4e7c37 Document everything 📜 2020-01-26 15:51:13 +01:00
Laurenz
0a087cd28b Reorganize modules 🧱 2020-01-24 16:23:57 +01:00
Laurenz
03fddaf3ae Non-fatal argument parsing 🌋 2020-01-24 12:44:04 +01:00
Laurenz
78da2bdd5d Decoupled function parser 🔗 [WIP] 2020-01-21 17:09:31 +01:00
Laurenz
95e6b078fe Move to non-fatal errors 🪂 [WIP]
- Dynamic models instead of SyntaxTrees
- No more ParseResult/LayoutResult
- Errors and Decorations which are propagated to parent contexts
- Models are finally clonable
2020-01-19 21:53:24 +01:00
Laurenz
a93b1ab003 Formatting 🛀 2020-01-06 12:50:20 +01:00
Laurenz
7b84f3b553 Adopt new font loading engine ⚙ 2020-01-04 22:43:26 +01:00
Laurenz
269f069a4d Simple line layouter 🧾 2019-12-30 22:28:56 +01:00
Laurenz
3677e4a97d Fix padding-top bug 🏗 2019-12-15 00:30:00 +01:00
Laurenz
665b4d2aca More consistent library code and functions 🎄 2019-12-13 23:59:01 +01:00
Laurenz
f549914ff8 Refine and rename layouting types 🛀 2019-12-12 23:33:26 +01:00
Laurenz
ff107cf3e7 Tidying up 🧹 2019-12-12 22:19:38 +01:00
Laurenz
a791ef1628 Pretty good stack layouter ✈ 2019-12-11 22:06:54 +01:00
Laurenz
d34707a6ae Not too shabby stack layouter 🚆 2019-12-11 17:34:25 +01:00
Laurenz
92586d3e68 Progressing stack layouter 🚊 2019-12-10 11:37:12 +01:00
Laurenz
7e98022435 Bad stack layouter 🚑 2019-12-09 13:29:04 +01:00
Laurenz
64f938b449 Improve testers ♻ 2019-12-08 11:36:18 +01:00
Laurenz
f5b104d0da Rename crate typst -> typstc 2019-12-05 20:29:55 +01:00
Laurenz
72a9631b03 Move arg parser into FuncArgs and create (incomplete) consistent map 🧭 2019-12-05 19:48:37 +01:00
Laurenz
f72b1505be Unify error types ♾ 2019-12-04 20:20:02 +01:00
Laurenz
9fb31defd0 Expand functionality of function! macro 🛰 2019-12-04 19:35:28 +01:00
Laurenz
ace57c3420 First half of stack update 🌓 2019-12-01 19:18:38 +01:00