66 Commits

Author SHA1 Message Date
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
54a9ccb1a5 Configurable font edges ⚙
Adds top-edge and bottom-edge parameters to the font function. These define how
the box around a word is computed. The possible values are:
- ascender
- cap-height (default top edge)
- x-height
- baseline (default bottom edge)
- descender

The defaults are chosen so that it's easy to create good-looking designs with
vertical alignment. Since they are much tighter than what most other software
uses by default, the default leading had to be increased to 50% of the font size
and paragraph spacing to 100% of the font size.

The values cap-height and x-height fall back to ascender in case they are zero
because this value may occur in fonts that don't have glyphs with cap- or
x-height (like Twitter Color Emoji). Since cap-height is the default top edge,
doing no fallback would break things badly.

Removes softness in favor of a simple boolean for pages and a more finegread u8
for spacing. This is needed to make paragraph spacing consume line spacing
created by hard line breaks.
2021-03-19 13:20:58 +01:00
Laurenz
584a43277d Rename ChildAlign to LayoutAligns ✏ 2021-03-12 14:12:30 +01:00
Laurenz
d763f0f5a6 Split state and scopes, less ref-counting 🔀 2021-01-15 16:53:02 +01:00
Laurenz
aae67bd572 Move and rename many things 🚛 2021-01-03 00:12:09 +01:00
Laurenz
475ca7a62e Basic environment and resource loader 🏞 2020-11-27 22:35:42 +01:00
Laurenz
91e5120693 BoxAlign and Flow aliases ✏ 2020-10-13 13:51:58 +02:00
Laurenz
1a70cb6a33 Naming and grammar ✔ 2020-10-12 18:01:22 +02:00
Laurenz
5243878d81 Less vecs in layouting 2020-10-12 17:29:01 +02:00
Laurenz
38157b0e0c Synchronous layout 🪀 2020-10-12 17:10:01 +02:00
Laurenz
e94627721d Adapt to fontdock 🔼 2020-10-12 16:59:21 +02:00
Laurenz
d3bc4ec073 Refactor layouting base 🪁 2020-10-11 22:38:30 +02:00
Laurenz
f04ad0ffa5 Rename LayoutItem to Layouted ✏ 2020-10-11 13:08:27 +02:00
Laurenz
51bf3268dd Refactor text state 🆎 2020-10-10 22:35:24 +02:00
Laurenz
92c01da360 Switch back to custom geometry types, unified with layout primitives 🏞 2020-10-10 22:19:36 +02:00
Laurenz
730715c064 Rename text layouting to shaping ✏ 2020-10-03 11:09:32 +02:00
Laurenz
7143e10afc Streamline font handling a bit 📜 2020-09-30 13:18:42 +02:00
Laurenz
dcf1d09d39 Fix for updated fontdock ✔ 2020-09-27 14:26:50 +02:00
Laurenz
181f756a9e Format everything with rustfmt! 💚 2020-08-30 22:18:55 +02:00
Laurenz
fe51ad2e7c Fix different-fonts-in-text bug ✔ 2020-08-30 15:32:52 +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
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
1658b00282 New syntax features 👔
- Forced line breaks with backslash followed by whitespace
- (Multline) raw text in backticks
- Set font class fallbacks with [font.family] (e.g. [font.family: monospace=("CMU Typewriter Text")])
- More sophisticated procedure to find end of function, which accounts for comments, strings, raw text and nested functions (this is a mix of a feature and a bug fix)
2020-02-13 21:58:49 +01:00
Laurenz
02dc29d18a Highlight bold / italic / monospace 🎨 2020-02-06 11:15:48 +01:00
Laurenz
3150fd5643 Better Debug/Display and Derives 🧽 2020-02-03 12:22:02 +01:00
Laurenz
40ea35cbe7 Upgrade to new toddle interface 🐳 2020-02-03 10:37:50 +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
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
2ee5810fec Asyncify font loading 🪐 2020-01-06 12:41:42 +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
665b4d2aca More consistent library code and functions 🎄 2019-12-13 23:59:01 +01:00
Laurenz
ff107cf3e7 Tidying up 🧹 2019-12-12 22:19:38 +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
f5b104d0da Rename crate typst -> typstc 2019-12-05 20:29:55 +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
Laurenz
5782b82770 Refactor layouting base ♻ 2019-11-30 18:54:46 +01:00
Laurenz
b13ed627ff Better error reporting 🚨 2019-11-30 14:10:35 +01:00
Laurenz
863a1a7a00 Completed stack and flex refactoring 🔋 2019-11-21 16:03:15 +01:00
Laurenz
261ef9e33a Generalize tree layouter 🌲 2019-11-16 10:37:30 +01:00