aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add support for parsing MDX ESM, expressionsLibravatar Titus Wormer2022-09-191-1/+2
| | | | | | | | | | | | | | | | This commit adds support for hooks that lets a user integrate another parser with `micromark-rs`, to parse ESM and expressions according to a particular grammar (such as a programming language, typically JavaScript). For an example integrating with SWC, see `tests/test_utils/mod.rs`. The integration occurs with two functions passed in `options`: `mdx_expression_parse` and `mdx_esm_parse`. The can signal back to micromark when they are successful, whether there is an error at the end (in which case micromark will try to parse more), or whether there is a syntax error (in which case micromark will crash).
* Fix to prefer flow over definitions, setext headingsLibravatar Titus Wormer2022-09-141-3/+3
| | | | | | | | | | | | | | An undocumented part of CommonMark is how to deal with things in definition labels or definition titles (which both can span multiple lines). Can flow (or containers?) interrupt them? They can according to the `cmark` reference parser, so this was implemented here. This adds a new `Content` content type, which houses zero or more definitions, and then zero-or-one paragraphs. Content can be followed by a setext heading underline, which either turns into a setext heading when the content ends in a paragraph, or turns into the start of the following paragraph when it is followed by content that starts with a paragraph, or turns into a stray paragraph.
* Fix whitespace in GFM footnote definition identifiersLibravatar Titus Wormer2022-09-121-4/+2
| | | | | | * Fix a crash on line endings in footnote definitions * Fix to match spaces and tabs in identifiers to `cmark-gfm` * Fix order of one attribute
* Add mdx expression (flow, text)Libravatar Titus Wormer2022-09-091-8/+13
|
* Add support for mdx jsx (flow)Libravatar Titus Wormer2022-09-081-0/+8
|
* Add tests for mdx jsx (text)Libravatar Titus Wormer2022-09-081-1/+5
|
* Add support for recoverable syntax errorsLibravatar Titus Wormer2022-09-071-1/+1
|
* Add support for `mailto:`, `xmpp:` protocolsLibravatar Titus Wormer2022-09-051-4/+34
|
* Fix to implement GFM autolink literals exactlyLibravatar Titus Wormer2022-09-051-4/+33
|
* Add support for GFM tagfilterLibravatar Titus Wormer2022-09-011-46/+43
|
* Add support for GFM tablesLibravatar Titus Wormer2022-08-311-3/+232
|
* Add support for math (flow)Libravatar Titus Wormer2022-08-261-35/+44
|
* Add support for math (text)Libravatar Titus Wormer2022-08-261-14/+19
|
* Add support for GFM footnotesLibravatar Titus Wormer2022-08-251-15/+301
|
* Add support for GFM task list itemLibravatar Titus Wormer2022-08-221-1/+25
|
* Add support for GFM strikethroughLibravatar Titus Wormer2022-08-221-1/+17
|
* Refactor to move more things to `util/`Libravatar Titus Wormer2022-08-191-1/+1
|
* Add support for GFM autolink literalsLibravatar Titus Wormer2022-08-181-35/+72
|
* Add `no_std + alloc`Libravatar Titus Wormer2022-08-161-1/+7
|
* Add support for frontmatterLibravatar Titus Wormer2022-08-161-0/+13
|
* Refactor to proof docs, grammarsLibravatar Titus Wormer2022-08-151-66/+89
|
* Refactor to solve some clippy issuesLibravatar Titus Wormer2022-08-151-1/+0
|
* Refactor to improve docs of each functionLibravatar Titus Wormer2022-08-121-1/+1
|
* Refactor to move `space_or_tab_eol` to own fileLibravatar Titus Wormer2022-08-111-61/+61
|
* Refactor to move some code to `event.rs`Libravatar Titus Wormer2022-08-111-105/+102
|
* Add improved container exit injectionLibravatar Titus Wormer2022-08-111-27/+42
|
* 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
|