72 Commits

Author SHA1 Message Date
Laurenz
011865ab5c Memory loader 2021-08-18 14:25:49 +02:00
Laurenz
ba6b91e2ee Editable source files 2021-08-16 14:40:02 +02:00
Laurenz
eaa3cbaa9c Array and dictionary indexing 2021-08-12 13:56:23 +02:00
Laurenz
3932bb2cb9 New source loading architecture 2021-08-09 11:26:41 +02:00
Laurenz
3c92bad9a7 Pretty-printed diagnostics with traceback 2021-08-01 00:00:36 +02:00
Laurenz
1ee1d078e2 Fatal errors
- Makes errors fatal, so that a phase is only reached when all previous phases were error-free
- Parsing still recovers and can produce multiple errors
- Evaluation fails fast and can thus produce only a single error (except for parse errors due to an import)
- The single error that could occur during execution is removed for now
- Removes Value::Error variant
2021-07-30 18:49:19 +02:00
Laurenz
42a27b48df Change derive order 2021-07-29 22:27:10 +02:00
Laurenz
7d15dc634b Move font family and refactor alignment 2021-07-29 12:28:54 +02:00
Laurenz
929f4d64fe Switch Loader from Option to io::Result 2021-07-21 12:27:40 +02:00
Laurenz
9488b1b850 Main context struct 2021-07-21 11:28:29 +02:00
Laurenz
8000783f95 FileId instead of Path + FileHash 2021-07-20 18:35:05 +02:00
Laurenz
02b586cc36 Add lots of Eq impls 2021-07-08 23:16:02 +02:00
Laurenz
3330767c20 Remove props in favor of using state for everything 2021-06-11 11:30:18 +02:00
Martin Haug
c28708aa19 Text decorations 2021-06-10 23:15:51 +02:00
Laurenz
7218892c72 Refactor path handling 2021-06-01 12:55:07 +02:00
Laurenz
0bfee5b777 Refactored loading and cache architecture 2021-05-28 12:46:43 +02:00
Martin Haug
e27f6c1014 Add hash impls for all nodes
This prepares the incremental PR.

Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-26 22:57:29 +02:00
Laurenz
33733fd1ef Expose units_per_em and raw face id 2021-05-13 11:26:51 +02:00
Laurenz
3e03667c37 Make file system loader serializable 📚 2021-05-05 22:18:33 +02:00
Laurenz
6292d25afb Reengineer font and resource loading 🏞 2021-04-23 17:46:14 +02:00
Laurenz
464a6ff75e Deduplicate ttf-parser and rustybuzz face 🥞 2021-04-06 15:13:20 +02:00
Laurenz
de20a21a58 Reshaping with unsafe-to-break
Co-Authored-By: Martin <mhaug@live.de>
2021-04-05 22:32:09 +02:00
Laurenz
e8057a5385 Make pdf module top-level 🧱 2021-03-24 21:48:25 +01:00
Laurenz
73615f7e3c Text shaping 🚀
- Shapes text with rustybuzz
- Font fallback with family list
- Tofus are shown in the first font

Co-Authored-By: Martin <mhaug@live.de>
2021-03-24 17:12:34 +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
51efb0f4d6 Port remaining parser tests 🚚 2021-01-16 15:08:03 +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
e94627721d Adapt to fontdock 🔼 2020-10-12 16:59:21 +02:00
Laurenz
13230db68c Fix some clippy warnings ✔ 2020-10-07 19:28:34 +02:00
Laurenz
7143e10afc Streamline font handling a bit 📜 2020-09-30 13:18:42 +02:00
Laurenz
181f756a9e Format everything with rustfmt! 💚 2020-08-30 22:18:55 +02:00
Laurenz
dbfb3d2ced Formatting, documentation and small improvements 🧽 2020-08-03 16:04:55 +02:00
Laurenz
cbbc46215f Layout elements and pure rust rendering 🥏 2020-08-02 21:17:42 +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
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
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
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
c4eb4ee362 Fix some documentation 🚧 2019-06-02 12:39:59 +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
c384e52480 Improve code quality 🎫 2019-04-29 13:41:00 +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
e589843966 Implement font fallback 🚀 2019-04-01 10:01:42 +02:00