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
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
Laurenz
4b723add38
Take references in TryFromExpr 🔭
2020-08-15 11:58:01 +02:00
Laurenz
1a0608930c
Rename Value trait into TryFromExpr ✒
2020-08-15 11:44:18 +02:00
Laurenz
c8f6b5bd5c
Desugar body into last argument 🍩
2020-08-14 20:43:03 +02:00
Laurenz
650c712eab
Add a syntax tree expression kind 🎍
...
This allows bodies to be passed as regular arguments.
2020-08-14 20:19:50 +02:00
Laurenz
1fb2d5103d
Always parse bodies as syntax trees 🌳
...
Previously they were passed as strings to the function parser, now they are parsed and then passed as trees to the function. This allows making bodies sugar for a last content argument. While it removes some flexibility allowing function to parse arbitrary syntaxes in their bodies, these can be modelled as (raw) string arguments.
2020-08-14 20:13:50 +02:00
Laurenz
691423a40a
Basic table type 📔
...
- Keys are strings or integers
- Access with borrowed or owned keys
- `push` method for array-like pattern
- No iteration support yet
2020-08-14 11:40:34 +02:00
Laurenz
88151c546f
Use equals sign instead of colon for objects 📍
2020-08-13 20:10:29 +02:00
Laurenz
da2ade6542
Remove redundant `Expr` prefix from tokens 🧽
2020-08-13 20:02:07 +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
5a8f2fb73d
Replace body! macro with functions 🧰
2020-08-02 22:21:58 +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
efb78831a7
Unify font and page functions 💕
...
- Removes font weight and width warnings for now, will be added again later
- Adds a bit hacky get_first function for tuples, will be refactored soon anyway
2020-08-02 11:06:45 +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
04c05502be
Add some fonts 📜
2020-08-01 17:59:38 +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
8ca80fc7da
Include parens in expression's span ( fixes #4 ) ☘
2020-07-29 18:13:52 +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
9672d43200
Improve argument naming and fix grammar in comment ♻
2020-07-29 17:38:14 +02:00
Laurenz
53ca5a7fc5
Refactor parser 🚇
2020-07-27 13:47:29 +02:00
Laurenz
9f400042cb
Streamline parser and tokenizer test code ✈
2020-07-26 19:14:23 +02:00
Laurenz
ea64ce9aeb
Better distinguish function names in tokenizer from parser ✂
2020-07-26 18:08:08 +02:00
Laurenz
e2ef4f64e7
Rename errors to problems and make error! macro more ergonomic 🧼
...
Also adds a `warning!` macro.
2020-07-26 17:28:43 +02:00
Laurenz
38a2424742
Remove duplicate spans for func args ❌
2020-07-18 18:02:38 +02:00
Laurenz
332f83ed2d
Some code and styling improvements 🎨
2020-07-18 17:52:12 +02:00
Martin Haug
e9a9581252
Spanned object pairs and refactoring 🧵
2020-07-18 16:57:58 +02:00
Martin Haug
bb1350cff5
Parsing mathematical expressions ➕
2020-07-18 14:07:53 +02:00
Laurenz
6f1319e91f
Derive copy for RgbaColor and change debug representation 🐞
2020-07-16 16:27:18 +02:00
Laurenz
e96f3830f1
Use FromStr trait and formatting ✨
2020-07-15 23:49:10 +02:00
Martin Haug
1683ca87f7
Healed field for RgbaColors, CodeRev feedback 🤝
2020-07-15 20:57:26 +02:00
Martin Haug
28c3a797ec
Add named tuples and hex color tokens
2020-07-14 19:09:58 +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
60099aed50
Parse tuples and objects 🍒
...
Generalizes the parsing of tuples, objects and function arguments into generic comma-separated collections.
2020-02-11 21:30:39 +01:00
Laurenz
5badb4e8ff
Write lots of parser tests 🌪
2020-02-09 14:14:32 +01:00
Laurenz
4e8359385f
Improve syntax testing framework ♻
...
... and finally expand a few escape sequences in strings.
2020-02-07 22:29:16 +01:00
Laurenz
02dc29d18a
Highlight bold / italic / monospace 🎨
2020-02-06 11:15:48 +01: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
5c11aa7223
Adapt for tonty and fix a few bugs 🚧
2020-02-04 11:22:00 +01:00
Laurenz
f655656fb8
Streamline Key + Value traits 🌊
2020-02-04 09:35:29 +01:00
Laurenz
ec60795575
Port tests 🚁
2020-02-03 15:05:34 +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
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
Martin Haug
1c1c994c46
Merge branch 'master' into syntax-model
2020-01-20 22:42:00 +01:00
Martin Haug
1eaa2d418b
Page margin classes! 🐿
2020-01-20 22:38:33 +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
277f2d2176
ColorToken serialization + function fix 🚧
2020-01-18 15:58:36 +01:00
Laurenz
70878885f5
Do argument parsing ☑
2020-01-16 23:00:39 +01:00
Laurenz
08b91a265f
Powerful parser testing 🐱 👤
2020-01-16 17:51:04 +01:00
Laurenz
15ad30555b
Parser testing prototype 🥥
2020-01-14 20:17:50 +01:00
Laurenz
dde69276d4
Refactor expressions and create tuples and objects 🧮
2020-01-13 14:36:40 +01:00
Laurenz
6527d31dfb
Merge Characters struct into tokenizer 🔀
2020-01-13 13:02:33 +01:00
Laurenz
a8f711d49a
Checkpoint 🏁
2020-01-13 11:26:42 +01:00
Laurenz
bd702c2029
Span tests ↔
2020-01-11 11:47:07 +01:00
Laurenz
b1e956419d
Re-engineer tokenization 🚿
2020-01-11 10:11:14 +01:00
Laurenz
a75ddd2c93
Convert spans to line/column format 📑
2020-01-10 13:03:43 +01:00
Laurenz
5dbc7dc5aa
Introduce color tokens 🎨
2020-01-09 18:44:29 +01:00
Laurenz
bc22d1fbc1
Fix font weight bug 🚧
2020-01-08 14:28:14 +01:00
Laurenz
c9fd39f37e
Define base fallback list ♾
2020-01-06 13:06:17 +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
bd384a2a63
Re-enable *, _ and `.
2020-01-05 11:18:13 +01:00
Laurenz
7b84f3b553
Adopt new font loading engine ⚙
2020-01-04 22:43:26 +01:00
Laurenz
5dfaffc5bd
Add basic font family function ✏
2020-01-01 19:37:55 +01:00
Laurenz
7de9219321
Add word|line|par.spacing functions 💶
2020-01-01 17:15:21 +01:00
Laurenz
63b8ccba95
Fix looping bug 🚧
2019-12-30 23:39:10 +01:00
Laurenz
269f069a4d
Simple line layouter 🧾
2019-12-30 22:28:56 +01:00
Laurenz
b8620121a6
Fix nasty string boundary bug 🏗
2019-12-15 15:43:22 +01:00
Laurenz
a87937d0c4
Merge branch 'dev' of https://github.com/laurmaedje/typstc into dev
2019-12-15 15:10:31 +01:00
Laurenz
f3e461b27c
Paper styles and scalable+default margins 📜
2019-12-15 15:09:09 +01:00
Martin Haug
3cef3fa2e0
Merged changes 🔀
2019-12-15 15:04:26 +01:00
Laurenz
3677e4a97d
Fix padding-top bug 🏗
2019-12-15 00:30:00 +01:00
Laurenz
895507146f
Reformat paper styles ♻
2019-12-15 00:18:41 +01:00
Martin Haug
359d9e523a
Added shitload of page dimension definitions 📘
2019-12-14 14:09:01 +01:00
Laurenz
665b4d2aca
More consistent library code and functions 🎄
2019-12-13 23:59:01 +01:00
Laurenz
971ff3a2dc
Implement expression kind for Spanned<T> 👩💻
2019-12-13 14:58:14 +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
3c0496bb61
Refactor size module ♻
2019-12-12 20:17:35 +01:00
Laurenz
e7277fec23
Add font size function 🌱
2019-12-12 11:41:04 +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
f364395e1d
Create parsing test harness ⚡
2019-12-07 14:42:25 +01:00
Laurenz
1099330988
Finish consistent map and add two further convenience maps 🗺
2019-12-06 13:26:44 +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
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
b4efae0883
Remove bad tests and tweak numbers for better debugging 🧪
2019-11-28 20:38:21 +01:00
Laurenz
833166c3bf
Fix bugs 🚧
2019-11-23 00:09:46 +01:00
Laurenz
6ff60bc368
Fix secondary non-origin alignment 🚧
2019-11-22 20:15:00 +01:00
Laurenz
4ab7ec6a9a
Specify both axis with align function ➕
2019-11-22 15:54:39 +01:00
Laurenz
ebff8eb038
Fix spacing bugs 🚧
2019-11-21 17:50:51 +01:00
Laurenz
131e81baaf
Fix flex primary expansion 🚧
2019-11-21 16:14:26 +01:00
Laurenz
863a1a7a00
Completed stack and flex refactoring 🔋
2019-11-21 16:03:15 +01:00
Laurenz
f24e9b44e0
Refined expansion model 🔛
2019-11-20 17:31:52 +01:00
Laurenz
1dafe2c2ea
First half of flex refactoring 🥝
2019-11-19 23:27:56 +01:00
Laurenz
6afc84cb9d
Small improvements to stack layouter 🍁
2019-11-19 22:46:06 +01:00
Laurenz
f8233a4cb1
Refactor stack layouter to layout eagerly 🛫
2019-11-18 19:36:50 +01:00
Laurenz
1a6fb48bc5
Page style modification functions 📜
...
- `page.size`
- `page.margins`
2019-11-18 15:10:11 +01:00
Laurenz
1eb25f86dd
Double-try spaces for functions 🌑 🌕
2019-11-18 12:57:14 +01:00
Laurenz
14259c7d09
Fix alignment bugs ✔
2019-11-17 20:57:50 +01:00
Laurenz
f6cb4d725e
Update standard library functions 🎁
2019-11-17 15:16:37 +01:00
Laurenz
4d0bdc4ca4
Axes updating for flex layouter 📐
2019-11-17 14:51:31 +01:00
Laurenz
1f009b5b95
Allow multiple subsequent spaces 📅
2019-11-17 12:09:18 +01:00
Laurenz
467d7203ee
Remove top-level stack layouter from tree layouter 🗑
2019-11-17 11:53:59 +01:00
Laurenz
bd66ebd683
Prepare axis setting for flex layouter ♟
2019-11-17 11:11:53 +01:00
Laurenz
796c2486ce
Axes updating for stack layouter 📐
2019-11-16 14:03:27 +01:00
Laurenz
ac4d501945
Move generalization/specialization methods 🚚
2019-11-16 11:10:53 +01:00
Laurenz
261ef9e33a
Generalize tree layouter 🌲
2019-11-16 10:37:30 +01:00
Laurenz
0917d89bb8
Generalize flex layouter 🎯
2019-11-15 19:55:47 +01:00
Laurenz
9473ae61e9
Generalize stack layouter 🎲
2019-11-15 13:05:25 +01:00
Laurenz
1ece263579
Create easy-to-use argument parser 💎
2019-11-07 19:07:11 +01:00
Laurenz
271af7ed03
Parse keyword arguments 📋
2019-11-06 23:18:48 +01:00
Laurenz
110e4b9cb9
Spans for all parts of functions ✅
2019-10-31 20:26:21 +01:00
Laurenz
65ec3764e5
Basic node spans ✅
2019-10-30 22:52:25 +01:00
Laurenz
b5d8b8f4a5
Token spans 🔜 🔙
2019-10-30 21:13:12 +01:00
Laurenz
ccc4639c7d
Improve documentation comments 📜
2019-10-30 20:13:28 +01:00
Laurenz
b4be25e43b
Prettify peeking and rearrange syntax/parsing modules 🧶
2019-10-24 19:10:03 +02:00
Laurenz
ecf0ff4d05
Introduce a set of macros for writing functions more concisely 🎁
2019-10-23 00:21:40 +02:00
Laurenz
cff325b520
Add spacing functions 🔛
2019-10-22 21:40:37 +02:00
Laurenz
991e879e1d
Extend stack layouts from vertical to horizontal flows ➡
2019-10-17 19:21:47 +02:00
Laurenz
1987e5861c
Create basic box and line-break functions 📦
2019-10-17 12:55:34 +02:00
Laurenz
f22f9513ae
Add pagebreak function ⏭
2019-10-17 10:12:34 +02:00
Laurenz
9a1d57a11a
Implement context-modifying align 🧩
2019-10-17 09:28:06 +02:00
Laurenz
e87a34a4d0
Rearrange layouting contexts ♻
2019-10-16 22:32:40 +02:00
Laurenz
58693486f9
Allow center alignment 📐
2019-10-16 21:58:22 +02:00
Laurenz
f2f05e07b0
Implement space extension (multipage) ➕
2019-10-16 21:31:14 +02:00
Laurenz
a3c667895e
Refactor the main layouter ♻
2019-10-15 18:15:36 +02:00
Laurenz
0727713424
Fix double-spaces bug 🚧
2019-10-15 09:07:03 +02:00
Laurenz
5473e3903a
Refactor the text layouting ♻
2019-10-14 23:33:29 +02:00
Laurenz
c768b8b61f
Refactor stack and flex layouter ♻
2019-10-14 21:04:12 +02:00
Laurenz
5e41672a91
Refactor and refine PDF exporter ♻
2019-10-14 18:07:18 +02:00
Laurenz
7c0899b537
Run rustfmt 🚿
2019-10-13 13:10:21 +02:00
Laurenz
5c04185892
Reformat some things 🧺
2019-10-13 13:09:39 +02:00
Laurenz
e2d17aa9d9
Move functions to command-based architecture ✈
2019-10-13 12:36:45 +02:00
Laurenz
463e4ebd82
Refactor layout types 🚧
2019-10-13 12:08:07 +02:00
Laurenz
6f22e4f13c
Render debug boxes 🧭
2019-10-11 20:28:22 +02:00
Laurenz
c0e4fd55e6
Create test runner which renders layouts to images 🗺
2019-10-11 17:53:28 +02:00
Laurenz
8f788f9a4f
Add standard `align` function and support right-alignment ➡️
2019-10-10 23:38:03 +02:00
Laurenz
61470fba68
Basic positional argument parsing 🗃
...
Supported types are identifiers, strings, numbers, sizes and booleans.
2019-10-10 23:35:16 +02:00
Laurenz
f22a307000
Extract into separate repository 🧱
2019-10-09 19:46:42 +02:00
Laurenz Mädje
b96a7e0cf3
Reuse font loader across compilations 🔋
2019-07-28 22:27:09 +02:00
Laurenz Mädje
51faad45ad
Reformat where clauses 🎈
2019-07-28 21:42:18 +02:00
Laurenz Mädje
19be053cc3
Create some benchmarks 📊
2019-07-28 21:03:33 +02:00
Laurenz Mädje
6c8b5caa9f
Improve subsetter testing ✔
2019-07-27 21:15:10 +02:00
Laurenz
7eec0b8dd7
Add more tests for table parsers 🔋
2019-06-25 21:07:06 +02:00
Laurenz
030d301f0c
Refactor subsetter 🧰
2019-06-23 13:32:47 +02:00
Laurenz
7b2a4aa040
Split font module into submodules 🧱
2019-06-22 20:41:04 +02:00
Laurenz
864ae9f604
Parse loca table 🔨
2019-06-22 19:43:06 +02:00
Laurenz
5de92f6d5e
Add monospace syntax 📰
2019-06-22 17:01:32 +02:00
Laurenz
099ce71aba
Unify font classes + By-value-contexts ⚖
2019-06-22 15:32:19 +02:00
Laurenz
c7ee2b393a
Fix top-left text alignment 📐
2019-06-22 12:51:06 +02:00
Laurenz
f6fe3b5cdd
Implement function layouting ✒
2019-06-22 12:25:01 +02:00
Laurenz
e39a6efccf
Deduplicate action lists ✂
2019-06-21 22:12:36 +02:00
Laurenz
968e121697
Implement flex and box layouting 📏
2019-06-21 21:41:02 +02:00
Laurenz
b53ad6b1ec
Introduce flex layouting 🎈
2019-06-17 10:08:16 +02:00
Laurenz Mädje
236ebab23a
Add more fonts 📜
2019-06-02 19:51:37 +02:00
Laurenz Mädje
3e9f42661e
Move to top-left default positioning 📐
2019-06-02 19:15:45 +02:00
Laurenz Mädje
221934df4b
Add margins with basic box layouter 📖
2019-06-02 18:01:22 +02:00
Laurenz Mädje
c4eb4ee362
Fix some documentation 🚧
2019-06-02 12:39:59 +02:00
Laurenz
0274e93810
Devise text layouter 📑
2019-05-26 22:03:55 +02:00
Laurenz
c38e17d91f
Thoroughly improve documentation 📝
2019-05-26 21:59:33 +02:00
Laurenz
b3734bbc04
Restructure engine into modular layouter 🍂
2019-05-24 12:24:10 +02:00
Laurenz
e3215fa3b9
Unify parsing and typesetting functions. 🗳
2019-05-20 11:36:31 +02:00
Laurenz
5c66bac689
Parse line and block comments 📔
2019-05-03 12:41:18 +02:00
Laurenz
bc78974fd2
Ignore escaped brackets for body measure 🐥
2019-05-02 09:07:38 +02:00
Laurenz
37c336063b
Simplify the parsing model 🔋
2019-05-01 19:47:43 +02:00
Laurenz
27947e212c
Require scope for parser ♻
2019-05-01 17:19:27 +02:00
Laurenz
632bf2f2ef
Improve tokenizer 🛢
2019-05-01 16:55:16 +02:00
Laurenz
9d605c3128
Remove the concept of words from tokenization 🎈
2019-04-30 09:20:22 +02:00
Laurenz
90848df5de
Create command line interface 💻
2019-04-29 17:25:23 +02:00
Laurenz
c384e52480
Improve code quality 🎫
2019-04-29 13:41:00 +02:00
Laurenz
d514a05af1
Make parse tokens more static and efficient 🗜
2019-04-29 12:43:58 +02:00
Laurenz
383d8365cf
Refactor function parsing ♻
2019-04-29 11:24:35 +02:00
Laurenz
14c9ff571d
Remove stack from parser ♻
2019-04-29 11:03:17 +02:00
Laurenz
f279c52b50
Simple dynamic, scoped function parsing 📥
2019-04-29 00:12:36 +02:00
Laurenz
a51e7a0758
Express functions as trait objects 🚄
2019-04-11 17:36:21 +02:00
Laurenz Mädje
98c3788cf1
Fix PDF conformance bugs 🚧
...
- /DocumentCatalog -> /Catalog
- BT/ -> BT
- OpenType -> TrueType (for now)
2019-04-05 14:01:10 +02:00
Laurenz
6c29e45ce2
Implement paragraphs 📜
2019-04-01 13:33:54 +02:00
Laurenz
3b4b55c59e
Implement bold and italics 📜
2019-04-01 12:25:31 +02:00
Laurenz
a34d725000
Use interior mutability for font loader ⚙
2019-04-01 12:00:37 +02:00
Laurenz
e589843966
Implement font fallback 🚀
2019-04-01 10:01:42 +02:00
Laurenz
54ace2a7fd
Simplify subsetter definition ✨
2019-03-31 17:24:52 +02:00
Laurenz
b24bac7cae
Fix bug with special characters 🚧
2019-03-31 17:18:59 +02:00
Laurenz
a522a15a66
Insert default glyph when subsetting ⚙
2019-03-31 15:47:57 +02:00
Laurenz
0b2ae78534
Write ToUnicode mapping 📜
2019-03-31 14:13:10 +02:00
Laurenz
0fceff5aa4
Fix some things 🚧
2019-03-31 12:35:44 +02:00
Laurenz
5ca303ecad
Make things more consistent ♻
2019-03-30 20:58:46 +01:00
Laurenz
adfd7dd073
Create complex font_info macro 🚀
2019-03-30 20:13:30 +01:00
Laurenz
e6e5aad7ce
Refactor font providing ⚙
2019-03-30 18:47:17 +01:00
Laurenz
db96ecae94
Move some types into better places 🧱
2019-03-30 16:58:45 +01:00
Laurenz
f683bba400
Create error_type! macro ✔
2019-03-30 16:42:52 +01:00
Laurenz
10994ebac3
Move exporting into seperate module 🧱
2019-03-30 16:01:45 +01:00
Laurenz
094648e86b
Optionally owned data in PDF crate ✈
2019-03-29 23:55:48 +01:00
Laurenz
af212da34e
Refactor PDF crate ♻
2019-03-29 23:37:01 +01:00
Laurenz
229bd7783c
Refactor opentype crate ♻
...
- Restructure modules
- Improve code and documentation clearity
2019-03-29 22:46:12 +01:00
Laurenz
83dd762f67
Font providers 🚀 + better docs 📜
2019-03-14 19:54:38 +01:00
Laurenz
22ea09d9c1
Better error handling 🌍
2019-03-14 17:10:06 +01:00
Laurenz
aae8a3a77e
Unified font error type 🔗
2019-03-14 15:35:01 +01:00
Laurenz
9b3386f8a3
Hide subengines and improve Compiler API 🕳
2019-03-14 15:15:09 +01:00
Laurenz
67b1945034
Refactor pdf font handling ♻
2019-03-14 00:06:27 +01:00
Laurenz
89205368c2
Fix space handling for multiline 🔨
2019-03-13 19:15:51 +01:00
Laurenz
0c87c0c5a5
Basic multiline support 📜
2019-03-13 18:42:33 +01:00
Laurenz
107450ee5c
Restructure typeset crate ✈
2019-03-11 22:15:34 +01:00
Laurenz
0511979942
Polish and document PDF crate ✈
2019-03-11 21:09:47 +01:00
Laurenz
77e5299667
Tidy up PDF crate 🧹
2019-03-11 18:02:47 +01:00
Laurenz
67281c4f46
Redesign document representation 🧱
2019-03-11 17:24:00 +01:00
Laurenz Mädje
5942c3ba2a
Improve subsetting errors ♻
2019-03-10 13:18:24 +01:00
Laurenz
d217d4f02a
Fix subsetting for composite glyphs 🔨
2019-03-03 18:36:56 +01:00
Laurenz
06101492dc
Implement subsetting engine 🚀
2019-03-03 15:00:27 +01:00
Laurenz
5e135db872
Use bitflags for opentype font flags 🏁
2019-02-28 10:50:15 +01:00
Laurenz
4d4824aa08
Improve name table capabilities ♻
2019-02-27 20:26:38 +01:00
Laurenz
da60261376
Enhance PDF crate API 🚀
2019-02-27 18:45:55 +01:00
Laurenz
6b8da16be8
Parse format 12 cmap 🔨
2019-02-26 22:34:56 +01:00
Laurenz
6e9671f149
Write PDFs with extern fonts 🌏
2019-02-26 14:02:18 +01:00
Laurenz
95d7edeb8d
Enhance content streams and pdf example 📝
2019-02-25 18:49:26 +01:00
Laurenz Mädje
8a87e4a623
Introduce content streams 📡
2019-02-25 13:46:31 +01:00
Laurenz
4e811c5690
Improved PDF writing internals 🔨
2019-02-24 23:19:06 +01:00
Laurenz
26f3b80826
Refactor PDF crate structure 🧱
2019-02-24 13:30:06 +01:00
Laurenz
fe957ccdcd
Replace out-of-date ref keyword ♻
2019-02-23 14:35:20 +01:00
Laurenz
5255066d53
Update pdf writer trait ♻
2019-02-20 17:41:23 +01:00
Laurenz
29229c4002
Implement parsing trait for str ♻
2019-02-20 17:36:34 +01:00
Laurenz
caf08ea5fa
Escape parens and backslashes in PDF ♻
2019-02-19 18:04:31 +01:00
Laurenz
b2ea22b25b
Vastly improve documentation 📝
2019-02-19 11:31:03 +01:00
Laurenz
c8d3ea89cd
Enhance docs (i.a. with examples) 📝
...
- Complete examples for pdf and opentype crates
- Removes allow-unused attributes and fixes their warnings
- Various small improvements
2019-02-17 00:08:46 +01:00
Laurenz
6214405766
Remove Size type from pdf crate 🧹
2019-02-16 22:33:32 +01:00
Laurenz
ae3af533ff
Extract opentype parser into crate 🧱
2019-02-16 20:17:31 +01:00
Laurenz
f3f82f5f2b
Fix pdf code in typesetter 🚧
2019-02-16 18:34:18 +01:00
Laurenz
aba8ea4f7c
Denote which PDF objects are incomplete 🔧
...
Many features will only be added as needed by the parent project. Thus it should be kept track of what is complete.
Also improves PDF trailer writing.
2019-02-13 19:46:56 +01:00