aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite algorithm to not pass around boxed functionsLibravatar Titus Wormer2022-08-091-21/+38
| | | | | | * Pass state names from an enum around instead of boxed functions * Refactor to simplify attempts a lot * Use a subtokenizer for the the `document` content type
* Refactor to pass more `&str`s, work on more bytesLibravatar Titus Wormer2022-08-011-90/+65
|
* Remove unneeded field in compile contextLibravatar Titus Wormer2022-08-011-39/+8
|
* Refactor to improve statesLibravatar Titus Wormer2022-07-291-236/+304
| | | | | | | | | | | | * Remove custom kind wrappers, use plain bytes instead * Remove `Into`s, use the explicit expected types instead * Refactor to use `slice.as_str` in most places * Remove unneeded unique check before adding a definition * Use a shared CDATA prefix in constants * Inline byte checks into matches * Pass bytes back from parser instead of whole parse state * Refactor to work more often on bytes * Rename custom `size` to `len`
* Refactor to work on bytes (`u8`)Libravatar Titus Wormer2022-07-291-21/+24
|
* Refactor to work on `char`sLibravatar Titus Wormer2022-07-281-95/+109
| | | | | | | | | | | | | | | Previously, a custom char implementation was used. This was easier to work with, as sometimes “virtual” characters are injected, or characters are ignored. This replaces that with working on actual `char`s. In the hope of in the future working on `u8`s, even. This simplifies the state machine somewhat, as only `\n` is fed, regardless of whether it was a CRLF, CR, or LF. It also feeds `' '` instead of virtual spaces. The BOM, if present, is now available as a `ByteOrderMark` event.
* Refactor to remove unneeded tuples in every statesLibravatar Titus Wormer2022-07-221-3/+3
|
* Refactor to improve allocation around stringsLibravatar Titus Wormer2022-07-201-94/+80
|
* Remove another unneeded `HashMap`Libravatar Titus Wormer2022-07-191-137/+120
|
* Change to improve `default_line_ending` apiLibravatar Titus Wormer2022-07-181-3/+1
|
* Refactor to move options to `lib/`Libravatar Titus Wormer2022-07-181-160/+1
|
* Remove unneeded tokenLibravatar Titus Wormer2022-07-181-10/+8
|
* Fix some final eol bugsLibravatar Titus Wormer2022-07-151-0/+9
|
* Fix compiling final eof after list itemsLibravatar Titus Wormer2022-07-151-0/+2
|
* Refactor to sort, document lists in tokenLibravatar Titus Wormer2022-07-151-2/+1
|
* Refactor to sort, document lists in compilerLibravatar Titus Wormer2022-07-151-153/+146
|
* Fix two more list bugsLibravatar Titus Wormer2022-07-141-1/+1
|
* Add support for container stateLibravatar Titus Wormer2022-07-141-3/+18
| | | | | | * Fix to parse list item continuation based on how big the initial list item prefix was * Fix list items that start with blank lines
* Fix a bunch of container thingsLibravatar Titus Wormer2022-07-141-18/+37
| | | | | | | | * Fix a lot of container code * Fix to prevent code (indented) from interrupting a lazy container * Fix compiling when combining tight paragraphs, empty list items, and html * Fix list items starting w/ blank lines causing loose lists * Fix crash when looking for a previous blank line
* Fix to close containers before several (blank) line endingsLibravatar Titus Wormer2022-07-131-11/+12
|
* Fix a lot of list thingsLibravatar Titus Wormer2022-07-121-20/+71
| | | | | | | | * Add `ListItem`, `ListOrdered`, and `ListUnordered` tokens * Add support for multiline list items * Add support for tight lists * Fix bug where 10 digit long list item values worked * Fix skip bug when skipping over nested events
* Add initial support for listsLibravatar Titus Wormer2022-07-121-4/+78
|
* Fix block quote bugsLibravatar Titus Wormer2022-07-111-6/+9
|
* Refactor to move token types to `token`Libravatar Titus Wormer2022-07-071-136/+131
|
* Fix to order enter/exit mapsLibravatar Titus Wormer2022-07-071-46/+48
|
* Add basic support for block quotesLibravatar Titus Wormer2022-07-071-6/+23
|
* Refactor to do some to dosLibravatar Titus Wormer2022-07-051-1/+1
|
* Add support for unicode punctuationLibravatar Titus Wormer2022-07-041-1/+1
|
* Update list of todosLibravatar Titus Wormer2022-07-041-2/+1
|
* Add support for attention (emphasis, strong)Libravatar Titus Wormer2022-07-041-0/+24
|
* Update todosLibravatar Titus Wormer2022-07-011-0/+1
|
* Add support for stripping tags in image `alt`Libravatar Titus Wormer2022-06-301-47/+57
|
* Fix to prefer resource when givenLibravatar Titus Wormer2022-06-301-6/+6
|
* Refactor some docs, fix some grammarLibravatar Titus Wormer2022-06-301-2/+0
|
* Refactor to reorder compilerLibravatar Titus Wormer2022-06-291-224/+224
|
* Add docs to compilerLibravatar Titus Wormer2022-06-291-77/+136
|
* Fix a bunch of bugs with definitions, referencesLibravatar Titus Wormer2022-06-291-21/+16
| | | | | | | | | * Fix bug where whitespace after `:` was not allowed, it is * Fix bug where escapes in labels did not work due to typo * Fix to prefer first definition * Fix whitespace after definitions * Fix matching by adding normalizing * Fix reference from being output as data
* Add support for compiling definitionsLibravatar Titus Wormer2022-06-291-52/+196
|
* Refactor to externalize handlers of compilerLibravatar Titus Wormer2022-06-291-533/+638
|
* Add support for sharing identifiers, references before definitionsLibravatar Titus Wormer2022-06-291-4/+34
|
* Add improved docs in compilerLibravatar Titus Wormer2022-06-281-27/+61
|
* Fix jumps in `edit_map`Libravatar Titus Wormer2022-06-281-33/+4
| | | | | | | | | * Use resolve more often (e.g., heading (atx, setext)) * Fix to link whole phrasing (e.g., one big chunk of text in heading (atx, setext), titles, labels) * Replace `ChunkText`, `ChunkString`, with `event.content_type: Option<ContentType>` * Refactor to externalize `edit_map` from `label`
* Add link, images (resource)Libravatar Titus Wormer2022-06-241-29/+184
| | | | | | | | | | | | This is still some messy code that needs cleaning up, but it adds support for links and images, of the resource kind (`[a](b)`). References (`[a][b]`) are parsed and will soon be supported, but need matching. * Fix bug to pad percent-encoded bytes when normalizing urls * Fix bug with escapes counting as balancing in destination * Add `space_or_tab_one_line_ending`, to parse whitespace including up to one line ending (but not a blank line) * Add `ParserState` to share codes, definitions, etc
* Rename `Whitespace` token to `SpaceOrTab`Libravatar Titus Wormer2022-06-221-5/+5
|
* Add docs for `default_line_ending`Libravatar Titus Wormer2022-06-211-1/+41
|
* Add support for passing token types to destination, label, titleLibravatar Titus Wormer2022-06-211-2/+2
|
* Refactor to move protocols to constantsLibravatar Titus Wormer2022-06-211-6/+2
|
* Refactor to improve a bunch of statesLibravatar Titus Wormer2022-06-211-26/+32
| | | | | | * Improve passing stuff around * Add traits to enums for markers and such * Fix “life time” stuff I didn’t understand
* Add support for inferring line ending, configurableLibravatar Titus Wormer2022-06-211-16/+73
| | | | | | * Rename `CompileOptions` to `Options` * Add support for an optional default line ending style * Add support for inferring the used line ending style
* Add improved whitespace handlingLibravatar Titus Wormer2022-06-201-9/+1
| | | | | | * add several helpers for parsing betwen x and y `space_or_tab`s * use those helpers in a bunch of places * move initial indent parsing to flow constructs themselves