Commit Graph

150 Commits

Author SHA1 Message Date
Laurenz 20a1fd8bc7 Remove root node 2022-02-02 20:33:19 +01:00
Martin Haug fe70db1f4c New color stuff
- CMYK function
- More default colors
- Interpret RGB values as sRGB
2022-02-08 21:12:09 +01:00
Laurenz 20b1a38414 Switch from `Rc` to `Arc` 2022-01-31 16:47:00 +01:00
Laurenz 8f37189d6f Fix incremental parsing bugs 2022-01-31 13:26:52 +01:00
Laurenz 8d1ce390e2 Rework strong and emph
- Star and underscore not parsed as strong/emph inside of words
- Stars/underscores must be balanced and they cannot go over paragraph break
- New `strong` and `emph` classes
2022-01-30 22:46:59 +01:00
Laurenz d7072f378f Also debug print syntax tree 2022-01-30 11:16:57 +01:00
Laurenz 3739ab7720 Export into rendered images 2022-01-24 17:39:49 +01:00
Laurenz db158719d6 Simplify CLI 2022-01-24 16:44:52 +01:00
Laurenz b3062ee880 Make use of new Rust 1.58 formatting feature 2022-01-13 18:43:18 +01:00
Martin Haug c994cfa7d8 Code Review: Your parsers were so preoccupied with whether they could 2022-01-04 00:21:33 +01:00
Martin Haug 98c96ba1cb Fix parser / space / error bug 2022-01-02 14:46:08 +01:00
Martin Haug 5f114e18eb Added a test framework for incremental parsing
Fix several errors:

- Indented markup is now reparsed right
- All end group errors will now fail a reparse
- Rightmost errors will always fail a reparse
2022-01-02 00:46:19 +01:00
Laurenz f174134aa2 Style chains 2021-12-30 12:12:19 +01:00
Laurenz 5d5d8a21cf Bump and lock dependencies 2022-01-01 12:23:00 +01:00
Laurenz 11565a40b3 Set Rules Episode IX: The Rise of Testing 2021-12-21 00:20:24 +01:00
Laurenz 57f5c0a1b1 Set Rules Episode V: The Tests Strike Back 2021-12-15 11:12:38 +01:00
Laurenz ae38be9097 Set Rules Episode IV: A New Fold 2021-12-15 11:11:57 +01:00
Laurenz 40b87d4066 Set Rules Episode II: Attack of the properties 2021-12-07 16:36:39 +01:00
Martin Haug f15ee7efb6 Add SVG capabilities 2021-12-06 14:58:57 +01:00
Laurenz e915cc4ef0 No more duplicate debug prints due to incremental tests 2021-11-29 23:22:53 +01:00
Laurenz 3a15922d2f X/Y abstractions 2021-11-26 16:32:06 +01:00
Laurenz 8a88f71cb1 Transformations 2021-11-23 22:04:08 +01:00
Laurenz 0a974d86ba Welcome to Tigerland 2021-11-22 15:26:56 +01:00
Laurenz ed50661378 Castable optional and smart values 2021-11-29 16:47:35 +01:00
Laurenz cef46e6c40 Strokes 2021-11-20 15:51:07 +01:00
Laurenz 70c0dd7674 Small fixes 2021-11-19 13:16:43 +01:00
Laurenz 9a800daa82 Image fit modes 2021-11-16 21:32:29 +01:00
Laurenz 0e0f340502 Revert page and inline levels 2021-11-16 10:41:30 +01:00
Laurenz 65fac0e57c Refactoring
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:41 +01:00
Laurenz 5b344b663a Reorganize modules
Instead of separating functionality into layout and library, everything lives in the library now. This way, related things live side by side and there are no duplicate file names in the two directories.
2021-10-31 15:52:35 +01:00
Laurenz 5becb32ba4 Introduce page / block / inline levels 2021-10-23 20:23:47 +02:00
Laurenz 9ac125dea8 Rename `State` to `Style` and move it into its own module 2021-10-10 21:04:10 +02:00
Laurenz d4cc8c775d Move paint and colors into `geom` 2021-10-10 20:26:58 +02:00
Laurenz 2818ceee44 New default fonts 2021-09-30 22:50:14 +02:00
Laurenz ff37a2893d More useful incremental checks
Co-Authored-By: Martin <mhaug@live.de>
2021-09-27 11:40:28 +02:00
Laurenz 7f48e8fe66 Make user-facing "debug" representation use Debug instead of Display 2021-08-31 16:25:12 +02:00
Laurenz fab8bedd29 Primitive raster glyph drawing 2021-08-27 14:08:32 +02:00
Martin d546453880
Links! (#43)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-08-23 23:56:33 +02:00
Laurenz 0806af4aec Kerned PDF output 2021-08-23 13:21:44 +02:00
Laurenz c0377de653 Shorter/clearer field name for geometry types
Size { width, height } => Size { w, h }
Spec { horizontal, vertical } => Spec { x, y }
Gen { cross, main } => Gen { inline, block }
2021-08-21 19:08:47 +02:00
Laurenz 0dd4ae0a7a Prune derives 2021-08-21 17:30:21 +02:00
Martin fdab7158c9
Pattern properties (#42)
Included in this package are:
* Code review I: The unnamed review.
* Code Review II: How I met your review.
* Code Review III: Code, the final frontier. These are the voyages of the USS Review ...
2021-08-19 15:07:11 +02:00
Laurenz 594809e35b Library functions behave more imperatively
- Templates scope state changes
- State-modifying function operate in place instead of returning a template
- Internal template representation contains actual owned nodes instead of a pointer to a syntax tree + an expression map
- No more wide calls
2021-08-17 22:20:37 +02:00
Laurenz 144f208821 Add file information to spans 2021-08-13 14:33:58 +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 2c6127dea6 Refactor state 2021-07-29 13:28:19 +02:00
Laurenz 7aa3d2c2d6 No more excessive region cloning 2021-07-26 00:29:37 +02:00