aboutsummaryrefslogtreecommitdiffstats
path: root/src/construct/mod.rs (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-09-19Add support for parsing MDX ESM, expressionsLibravatar Titus Wormer1-0/+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).
2022-09-14Fix to prefer flow over definitions, setext headingsLibravatar Titus Wormer1-1/+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.
2022-09-09Add mdx expression (flow, text)Libravatar Titus Wormer1-1/+7
2022-09-08Add support for mdx jsx (flow)Libravatar Titus Wormer1-1/+3
2022-09-08Refactor to move jsx parsing to partialLibravatar Titus Wormer1-0/+2
2022-09-06Add initial states for MDX JSX (text)Libravatar Titus Wormer1-6/+6
2022-08-31Add support for GFM tablesLibravatar Titus Wormer1-0/+2
2022-08-26Add support for math (flow)Libravatar Titus Wormer1-3/+3
2022-08-26Add support for math (text)Libravatar Titus Wormer1-2/+4
2022-08-25Add support for GFM footnotesLibravatar Titus Wormer1-0/+5
2022-08-22Add support for GFM task list itemLibravatar Titus Wormer1-0/+1
2022-08-18Add support for GFM autolink literalsLibravatar Titus Wormer1-2/+7
2022-08-16Add support for frontmatterLibravatar Titus Wormer1-0/+2
2022-08-16Update some last docs, bnf grammarsLibravatar Titus Wormer1-8/+13
2022-08-15Refactor to proof docs, grammarsLibravatar Titus Wormer1-13/+69
2022-08-15Refactor to move `content` to `construct`Libravatar Titus Wormer1-0/+4
2022-08-15Refactor to rename list construct to list itemLibravatar Titus Wormer1-2/+2
2022-08-11Refactor to move `space_or_tab_eol` to own fileLibravatar Titus Wormer1-0/+2
2022-08-01Add missing docs, refactor some codeLibravatar Titus Wormer1-0/+1
2022-07-29Refactor to work on bytes (`u8`)Libravatar Titus Wormer1-0/+1
2022-07-26Refactor to drastically improve perf around whitespaceLibravatar Titus Wormer1-2/+3
2022-07-12Add initial support for listsLibravatar Titus Wormer1-1/+3
2022-07-11Add support for lazy linesLibravatar Titus Wormer1-0/+1
2022-07-07Add docs to block quoteLibravatar Titus Wormer1-1/+1
2022-07-07Add basic support for block quotesLibravatar Titus Wormer1-0/+1
2022-07-04Add support for attention (emphasis, strong)Libravatar Titus Wormer1-1/+2
2022-06-30Add support for trimming whitespace around string, textLibravatar Titus Wormer1-0/+2
This commit introduces trimming initial and final whitespace around the whole string or text, or around line endings inside that string or text. * Add `register_resolver_before`, to run resolvers earlier than others, used for labels * Add resolver to merge `data` events, which are the most frequent token that occurs, and can happen adjacently. In `micromark-js` this sped up parsing a lot * Fix a bug where a virtual space was not seen as an okay event * Refactor to enable all turned off whitespace tests
2022-06-24Add link, images (resource)Libravatar Titus Wormer1-5/+6
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
2022-06-21Make data a constructLibravatar Titus Wormer1-5/+15
2022-06-20Add improved whitespace handlingLibravatar Titus Wormer1-1/+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
2022-06-20Add paragraphLibravatar Titus Wormer1-1/+2
2022-06-20Remove unneeded `content` content typeLibravatar Titus Wormer1-1/+0
2022-06-20Add docs to destination, label, titleLibravatar Titus Wormer1-1/+1
2022-06-17Add support for definitionsLibravatar Titus Wormer1-2/+6
* Add definitions * Add partials for label, destination, title * Add `go`, to attempt something, and do something else on `ok`
2022-06-16Add heading (setext)Libravatar Titus Wormer1-1/+2
2022-06-16Add support for hard break (trailing)Libravatar Titus Wormer1-1/+3
2022-06-16Add support for hard break escapeLibravatar Titus Wormer1-1/+2
2022-06-15Add code (text)Libravatar Titus Wormer1-1/+2
2022-06-14Reorganize to split utilLibravatar Titus Wormer1-1/+0
2022-06-14Add docs on constructs, bnfLibravatar Titus Wormer1-0/+54
2022-06-13Add basic html (text)Libravatar Titus Wormer1-0/+1
* Add all states for html (text) * Fix to link paragraph tokens together * Add note about uncovered bug where linking paragraph tokens together doesn’t work 😅
2022-06-13Add autolinksLibravatar Titus Wormer1-0/+1