Commit Graph

421 Commits

Author SHA1 Message Date
Laurenz 579dac3c91 Strong delta 2022-11-29 14:57:05 +01:00
Laurenz 0efe669278 Reorganize library and tests 2022-11-29 14:18:13 +01:00
Laurenz 836692e73c Widow and orphan prevention 2022-11-28 17:57:16 +01:00
Laurenz 989d170dc7 Fragments 2022-11-28 12:40:16 +01:00
Laurenz 6bafc63910 Document metadata 2022-11-26 23:52:01 +01:00
Laurenz 0579fd4409 Reorganize library base 2022-11-26 17:13:31 +01:00
Laurenz 7af46fc025 Dynamic labels 2022-11-26 13:41:27 +01:00
Laurenz c28d2130dd Don't display functions 2022-11-21 17:11:40 +01:00
Laurenz 1d7e082d1d Labels 2022-11-21 16:12:24 +01:00
Laurenz 1937d746ab Show everything! 2022-11-19 22:40:42 +01:00
Laurenz 9b8c1dc19f Pass text node to text show rule instead of string 2022-11-18 14:31:51 +01:00
Laurenz bf59c08a0a New interaction model 2022-11-12 23:46:26 +01:00
Laurenz 010cc2effc New block spacing model 2022-11-09 18:20:02 +01:00
Laurenz a7a4cae294 Less style properties 2022-11-08 11:45:59 +01:00
Laurenz 0a41844cc4 Selectors 2022-11-07 14:43:13 +01:00
Laurenz efd1853d06 Show it!
- New show rule syntax
- Set if syntax
- Removed wrap syntax
2022-11-07 12:46:05 +01:00
Laurenz 33928a00dc Tidy up library 2022-11-03 16:50:26 +01:00
Laurenz 7ef6cb31df Bump ttf-parser 2022-09-30 11:23:09 +02:00
Laurenz abafb39041 Fix bad list interaction
Fixes #87
2022-09-26 16:25:40 +02:00
Laurenz 704f2fbaf1 Description lists, link syntax, and new enum syntax 2022-09-26 16:12:57 +02:00
Martin Haug b14274d1e4 Methods to modify colors 2022-09-25 20:04:33 +02:00
Laurenz fffb55f79a JSON reading 2022-09-25 17:37:16 +02:00
Laurenz e5f958b921 Handle line comments nested in block comments
Fixes #76
2022-09-19 11:05:25 +02:00
Laurenz b98004330b Handle non-breaking spaces during justification 2022-09-19 10:28:06 +02:00
Laurenz 0d12f2ab23 [WIP] Label and reference syntax 2022-09-07 11:07:17 +02:00
Laurenz 9362c279de CSV reading 2022-07-27 00:09:15 +02:00
Laurenz 20b990d297 Anti-aliased image rendering 2022-06-14 17:20:31 +02:00
Laurenz 7a6c2cce77 Make radius configuration unconfusing 2022-06-14 17:17:54 +02:00
Laurenz c81e2a5f56 Many fixes 2022-06-14 13:53:02 +02:00
Laurenz 2fe549c1ec Fix inline math formula frame size 2022-06-13 14:07:48 +02:00
Martin Haug 755d468198 Fix inline nodes and decorations
Also Code Review 👯‍♂️
2022-06-01 11:43:03 +02:00
Martin Haug 4e3036afcb Sub- and superscripts
Fixes to PDF export I guess
Also improved rendition for non-Latin scripts
2022-05-31 22:56:08 +02:00
Laurenz 90be79dc86 Page background and foreground 2022-05-28 00:26:24 +02:00
Laurenz 1a7ce3da02 Luma color 2022-05-27 16:09:43 +02:00
Laurenz d4e59d4be1 Make justified break work for last line 2022-05-27 15:54:54 +02:00
Laurenz 22214a1e0a Test groups 2022-05-27 14:23:05 +02:00
Laurenz 66d8f4569a Locate me! 2022-05-26 11:59:53 +02:00
Martin Haug 99cb655832 Intra-document links 2022-05-27 12:56:20 +02:00
Laurenz 08554380f8 Fix generated strong and emphasized text 2022-05-19 13:11:00 +02:00
Laurenz 5a7c901f21 Switch to New Computer Modern Math 2022-05-19 12:59:39 +02:00
Laurenz 3965e10281 Hack in ReX for now 2022-05-18 19:09:57 +02:00
Laurenz 242b01549a Safe `eval` function 2022-05-16 20:22:48 +02:00
Laurenz a741bd6b83 Absolute paths 2022-05-16 17:56:36 +02:00
Laurenz 1df621868f Fix control flow bug 2022-05-13 16:39:41 +02:00
Laurenz 05c27a581e Automatically display value in more places 2022-05-13 16:27:44 +02:00
Laurenz 3e9c63d685 Underline headings in raw theme 2022-05-13 13:52:26 +02:00
Laurenz 1927cc86da Set, show, wrap in code blocks 2022-05-09 00:03:57 +02:00
Laurenz bfaf5447a7 Cast content from string 2022-05-06 10:05:11 +02:00
Laurenz 15ef72cca4 Fix empty heading 2022-05-04 23:34:02 +02:00
Laurenz 2a45650dcc Keyed pairs 2022-05-04 23:12:31 +02:00
Laurenz e674fd7e90 New raw theme & nicer debug representation 2022-05-04 22:14:57 +02:00
Laurenz 507c5fc925 Text replacement show rules 2022-05-04 00:14:31 +02:00
Laurenz e18a896a93 Test recursive show rules 2022-05-03 16:43:44 +02:00
Martin Haug 6a8a0ec6ec Code Review: Heap is Stack. Unsafe is Good.
Spaghetti Code is Style.
2022-05-03 12:59:41 +02:00
Martin Haug 33213abe7d New page margins API 2022-05-02 18:48:32 +02:00
Martin Haug 9b4397cdab Tests for the new shape API 2022-05-02 18:25:53 +02:00
Laurenz f9e115daf5 New block spacing model 2022-04-30 14:12:28 +02:00
Martin Haug 649c101f07 Add blind text function 2022-04-25 14:20:47 +02:00
Laurenz 7163b4a6c5 Soft pagebreak 2022-04-24 21:58:45 +02:00
Laurenz 2f33ad0e0a Rename soft linebreak to justified linebreak 2022-04-24 21:38:23 +02:00
Laurenz a302105b9f Fix duplicate RTL text and alignment + fr bugs 2022-04-18 12:37:22 +02:00
Laurenz db820ae9aa Repeat function 2022-04-17 12:11:00 +02:00
Laurenz 4494b443bb Ellipsis 2022-04-16 23:06:47 +02:00
Laurenz b274155c6d Improve language and add region controls 2022-04-13 16:01:24 +02:00
Laurenz d025854457 Make language non-optional with english as default 2022-04-13 15:01:19 +02:00
Laurenz 67e9313b91 Soft breaks and shy hyphens 2022-04-13 14:48:19 +02:00
Laurenz 2279c26543 Smart quotes
Co-Authored-By: Martin Haug <mhaug@live.de>
2022-04-13 13:08:46 +02:00
Laurenz e8dd842c66 Fix bug with basically empty paragraph 2022-04-13 11:59:05 +02:00
Laurenz 002b6c5b3e Don't hang quotes 2022-04-13 11:24:42 +02:00
Laurenz c3a387b8f7 Segment by script 2022-04-12 22:23:08 +02:00
Laurenz 34fa8df044 Move language-related properties from `par` to `text`
Closes #67
2022-04-10 23:36:36 +02:00
Laurenz 29eb13ca62 Sum color and length into stroke 2022-04-09 12:02:35 +02:00
Laurenz 712c00ecb7 Em units 2022-04-08 15:45:14 +02:00
Laurenz 977ac77e6a Start & end alignment 2022-04-08 15:01:55 +02:00
Laurenz eb22eed31b Make chinese justification less bad 2022-04-07 12:51:03 +02:00
Laurenz b8233a9e01 Don't allow empty lists and enums 2022-04-05 15:10:15 +02:00
Laurenz b865accae6 Don't allow headings to span multiple lines 2022-04-05 15:04:31 +02:00
Laurenz 23d108c8e0 Font fallback 2022-04-03 13:55:58 +02:00
Laurenz beca01c826 Methods 2022-03-18 23:43:58 +01:00
Martin Haug 6f5b721fe5 CR: I'm gonna make him a refactor he can't refuse 2022-03-17 10:50:51 +01:00
Martin Haug 4d617bcd67 `LineNode` 2022-03-16 12:36:50 +01:00
Laurenz 288a926fea Knuth-Plass and MicroType 2022-03-14 20:52:32 +01:00
Laurenz 2890a156d2 Remove classes and improve naming 2022-03-12 14:24:24 +01:00
Laurenz 5ac7eb3860 Rename template to content 2022-03-11 23:36:06 +01:00
Laurenz e6b532391d More restructuring 2022-03-11 11:58:56 +01:00
Laurenz b71113d37a Hyphenation 2022-03-08 19:49:26 +01:00
Laurenz 3ca5b23823 Reorganize library 2022-02-28 23:54:34 +01:00
Martin Haug 4f09233bda Enable join collection for control flow constructs 2022-02-28 15:41:38 +01:00
Laurenz b0f4b13f6d Basic justification 2022-02-25 20:48:38 +01:00
Laurenz 49c0bac44d First-line indents
Co-Authored-By: Martin Haug <mhaug@live.de>
2022-02-24 19:15:11 +01:00
Laurenz c7e52f2048 Refactor paragraph layout 2022-02-21 16:47:06 +01:00
Laurenz e01970b20a Basic show rules 2022-02-18 16:57:53 +01:00
Laurenz 05ec0f993b Headers and footers 2022-02-18 01:07:50 +01:00
Laurenz acae6e2a54 List label styling 2022-02-18 01:06:20 +01:00
Laurenz 980f898d55 Automatic list numbering 2022-02-17 23:00:30 +01:00
Laurenz 261f387535 Accept closures for heading styling 2022-02-17 18:12:13 +01:00
Laurenz c7a9bac992 Better debug implementations for numeric types 2022-02-17 12:14:50 +01:00
Laurenz 5965515a1e Allow escaping of `-` and `.` 2022-02-10 13:19:03 +01:00
Laurenz e089b6ea40 Set rules for everything 2022-02-09 12:34:19 +01:00
Laurenz 68503b9a07 Redesigned template layout 2022-02-07 20:00:21 +01:00
Laurenz 5d05c3f68a Refactor and fix style folding 2022-02-05 12:41:42 +01:00
Laurenz bdb1c008f2 Allow set & show only directly in markup 2022-02-02 11:28:31 +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
Martin Haug 9a9c6f22c4 Add evasion of glyph shape for under- and overlines 2022-02-04 00:30:23 +01:00
Martin Haug e6a0447f9d Add roman numeral and footnote formatting 2022-02-03 11:32:15 +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 aeb036f4dc Fix that templates don't create a scope 2022-01-29 22:32:57 +01:00
Laurenz 44ebefbec2 Add `hide` class 2022-01-29 22:32:01 +01:00
Laurenz 24d513d891 Enable for loop over captured args 2022-01-29 21:36:25 +01:00
Laurenz 5c53b9ff60 Support for `wrap` 2022-01-28 22:32:53 +01:00
Martin Haug 4f66907d08 Add Code Block syntax highlighting 2022-01-27 22:04:45 +01:00
Laurenz 3739ab7720 Export into rendered images 2022-01-24 17:39:49 +01:00
Laurenz 0c5243fa80 Basic tables 2022-01-17 16:01:01 +01:00
Laurenz e74ae6ce70 Make all nodes into classes 2022-01-08 00:20:48 +01:00
Laurenz 0b62439090 Scoped styles 2022-01-07 13:26:51 +01:00
Laurenz f7e8624b4c Refactor 2022-01-05 15:06:42 +01:00
Laurenz 5d5d8a21cf Bump and lock dependencies 2022-01-01 12:23:00 +01:00
Martin Haug 37328f11ed Adjust column size and expansion handling 2021-12-27 19:01:36 +01:00
Martin 7efdcdf247 Apply simple suggestions from code review
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-12-27 12:33:53 +01:00
Martin Haug b22ce6f8b8 Introduce equal-width columns 2021-12-26 15:59:24 +01:00
Laurenz 11565a40b3 Set Rules Episode IX: The Rise of Testing 2021-12-21 00:20:24 +01:00
Laurenz 244ad386ec Set Rules Episode VI: Return of the Refactor 2021-12-15 12:49:20 +01:00
Laurenz 57f5c0a1b1 Set Rules Episode V: The Tests Strike Back 2021-12-15 11:12:38 +01:00
Martin Haug f15ee7efb6 Add SVG capabilities 2021-12-06 14:58:57 +01:00
Laurenz bfa9962632 Remove baseline weirdness 2021-12-02 14:48:12 +01:00
Laurenz e4e4c1876f Fix square and circle width & height 2021-11-29 16:13:53 +01:00
Laurenz cae60ea0cc Go back to wrapping inline nodes 2021-11-29 13:12:50 +01:00
Laurenz e36b8ed374 Layout bugfixes 2021-11-29 12:06:38 +01:00
Laurenz 8a88f71cb1 Transformations 2021-11-23 22:04:08 +01:00
Laurenz c77c5a0f0a Simpler alignment resolving 2021-11-23 14:25:50 +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 5a59bb4821 Page fill 2021-11-18 12:50:28 +01:00
Laurenz b2e6a29789 Refactoring 2021-11-18 00:58:32 +01:00
Laurenz d9c529347d Configurable paragraph alignment 2021-11-17 23:54:43 +01:00
Laurenz 095fa52be5 Placed node 2021-11-17 23:09:23 +01:00
Laurenz 89f2e71852 Align node 2021-11-17 17:09:19 +01:00
Laurenz 9a800daa82 Image fit modes 2021-11-16 21:32:29 +01:00
Laurenz 79638d4bbd Don't wrap already layoutable nodes into flows/pars unnecessarily 2021-11-16 12:47:14 +01:00
Laurenz 0e0f340502 Revert page and inline levels 2021-11-16 10:41:30 +01:00
Laurenz 0ad0fa5a05 RTL tracking test 2021-11-20 13:26:28 +01:00
Martin Haug c020707ebc Add tracking to font function 2021-11-20 12:36:03 +01:00
Laurenz 38c5c36241 Final touches 2021-11-08 13:06:11 +01:00
Martin Haug cf2e527a02 Code Review: No Patrick, question marks are not an instrument 2021-11-05 13:46:41 +01:00
Martin Haug 8ccb7d6f15 Smallcaps, sub- and superscript, ligature ctrls... 2021-11-02 10:39:45 +01:00
Laurenz 564cb7e989 Fix panic in pad node 2021-10-31 13:51:28 +01:00
Laurenz 1af194f383 Dedent code blocks 2021-10-29 16:26:47 +02:00
Laurenz de6786eb28 Allow multiple template bodies 2021-10-29 16:04:55 +02:00
Laurenz d1ecb7e52e Add `move` function 2021-10-28 16:51:57 +02:00
Laurenz fb0cd3df6e Fr in stack and par 2021-10-26 14:56:10 +02:00
Laurenz 1ca4ff69e2 Trim `mailto:` and `tel:` from links 2021-10-26 14:51:57 +02:00
Laurenz c627847cb3 Remove directions from grid 2021-10-23 20:22:47 +02:00
Laurenz 6690bc2354 Revise block node contract
Frames produced by block nodes are now always treated as exactly one per
given region and a frame must not be larger than its respective region.
Any overflow must be handled internally. This means that stack and grid
don't need to search for fitting regions anymore, since the child has
already does that for them. This commit further moves stack spacing into
a new `SpacingNode`.
2021-10-23 20:22:47 +02:00
Laurenz 1e74f7c407 New `ShapeNode`
Replaces `BackgroundNode` and `FixedNode`
2021-10-23 20:22:47 +02:00
Laurenz 5f4dde0a6b Remove inline alignment from stack
The current inline alignment is very broken and leads to lots of subtle weirdness. Getting rid of it simplifies the stack's interface a lot. At a later point either:
- inline alignment will be added back in a better way, or
- all nodes will be able to expand or align themselves, meaning that the stack's children take care of their alignment
2021-10-23 20:22:47 +02:00
Laurenz b69c0355ec Don't fit images to remaining height
Makes them really small if there's only little space left ...
2021-10-05 20:05:15 +02:00
Laurenz dcdcf53831 Rename insert/ to elements/ 2021-10-05 18:51:21 +02:00
Laurenz 00be5d36c4 Change indent requirements to allow alignment
Previously the following wouldn't work correctly because "Fourth" would have been a child of "Third".
```
3. Third
⎵. Fourth
```
2021-10-05 17:25:58 +02:00
Laurenz 2818ceee44 New default fonts 2021-09-30 22:50:14 +02:00
Laurenz 6d26e15fbe Support `else if` 2021-09-30 19:07:06 +02:00
Laurenz 0e89facb53 Allow linear values for text edges 2021-09-28 10:53:54 +02:00
Laurenz ed0c804017 Add spacing capabilities to stack function
- Named argument `spacing` controls spacing between any two template arguments
- Arbitrary linears in the list can produce arbitrary spacing
2021-09-27 22:23:26 +02:00
Laurenz e10b3d838a Fix panic due to bad alignments in stack function 2021-09-27 13:45:18 +02:00
Laurenz 1982a0639e Expand all but last region for broken up auto rows 2021-09-27 11:39:31 +02:00
Laurenz 5594868f8b Prevent paragraph from overflowing due to trailing linebreak 2021-09-25 23:35:27 +02:00
Laurenz b0b4607725 Set the correct base for grid cells 2021-09-10 15:10:34 +02:00
Laurenz 3481d8cc81 More utility functions
- join("a", "b", "c", sep: ", ")
- int("12")
- float("31.4e-1")
- str(10)
- sorted((3, 2, 1))
2021-08-31 12:59:53 +02:00
Laurenz 17ea0d4ba9 Make font fallback disableable 2021-08-27 14:08:31 +02:00
Laurenz 148a06c070 Switch from state to decorations for underline/strikethrough/overline 2021-08-24 00:41:15 +02:00
Martin d546453880
Links! (#43)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-08-23 23:56:33 +02:00
Laurenz a6f260ca39 Refactor layouting a bit
Notably:
- Handle aspect ratio in fixed node
- Inline constraint inflation into pad node
2021-08-19 15:52:15 +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 9a798ce6f6 Make percentages for h and v relative to area instead of font size 2021-08-17 00:17:28 +02:00
Laurenz 8207c31aec Minor refactorings
- Reorder parser methods and use `Pos` everywhere
- Remove tab special handling for columns and adapt heading/list/enum indent handling
- Don't panic when a file has an empty path
2021-08-10 11:28:12 +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 891e0c5fa6 Remove warnings from parsing and casting 2021-07-10 23:14:46 +02:00
Laurenz 7e2c217cbc Rename some library arguments
- font
  - color -> fill
  - shorthands for families and size
- decoration functions
  - color -> stroke
  - strength -> thickness
  - position -> offset
  - invert offsets: now positive goes downwards just like the rest of typst
2021-07-08 21:42:36 +02:00
Laurenz 551e3af9d0 Replace using with from 2021-07-08 21:16:16 +02:00
Laurenz 5c327e249e Switch to = for headings once again 2021-07-08 20:03:13 +02:00
Laurenz f85e5aac64 URL special case for line comments 2021-07-08 19:37:38 +02:00
Laurenz 44d8028b49 Allow wide calls only directly in templates 2021-06-30 22:49:11 +02:00
Laurenz 45812b7001
Merge pull request #35 from typst/wide-calls
Wide calls
2021-06-30 11:04:53 +02:00
Laurenz 2f44d10aa4 Make test separators commentable 2021-06-29 16:05:05 +02:00
Laurenz b89cd128ae Wide calls 2021-06-29 13:49:50 +02:00
Martin Haug 9bd8b7ddac Code review, new stack test 2021-06-27 18:06:39 +02:00
Laurenz 422b8e640f With expressions 2021-06-26 18:07:05 +02:00
Laurenz d53c933e4d Add box and block functions 2021-06-26 15:47:37 +02:00
Laurenz bca035172c Join semantics 2021-06-18 11:59:05 +02:00
Martin fec1f41106
Allow grid cells to span multiple regions. (#30) 2021-06-12 18:19:18 +02:00
Laurenz 4017b5a9f6 Push some nodes directly into the stack 2021-06-11 14:42:20 +02:00
Laurenz 4dbd9285c9 Basic enums 2021-06-11 14:00:06 +02:00
Martin Haug c28708aa19 Text decorations 2021-06-10 23:15:51 +02:00
Laurenz 5611c26577 Restructure tests 2021-06-10 16:46:01 +02:00
Laurenz bce553a991 Tidy up 2021-06-09 22:44:40 +02:00
Martin Haug 29cfef0a6d Add a grid layouter 2021-06-09 22:44:40 +02:00
Laurenz c7416f18bd Move invalid syntax tests into appropriate places 2021-06-09 10:51:19 +02:00
Laurenz edff2ae680 Remove template pretty printing
Was buggy and pretty useless anyway since it couldn't peek into function templates.
2021-06-09 10:45:49 +02:00
Laurenz 5afb42ad89 Lists with indent-based parsing
- Unordered lists with indent-based parsing and basic layout using stacks
- Headings are now also indent based
- Removes syntax functions since they will be superseded by select & transform
2021-06-09 00:37:13 +02:00