Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2022-09-14 | Fix to prefer flow over definitions, setext headings | Titus Wormer | 1 | -5/+21 | |
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-01 | Add support for GFM tagfilter | Titus Wormer | 1 | -1/+1 | |
2022-08-25 | Add support for GFM footnotes | Titus Wormer | 1 | -6/+6 | |
2022-08-22 | Add support for GFM strikethrough | Titus Wormer | 1 | -1/+1 | |
2022-08-15 | Refactor to proof docs, grammars | Titus Wormer | 1 | -17/+25 | |
2022-08-15 | Refactor to move `content` to `construct` | Titus Wormer | 1 | -2/+2 | |
2022-08-12 | Refactor to attempt less if never needed | Titus Wormer | 1 | -37/+55 | |
2022-08-12 | Refactor to improve docs of each function | Titus Wormer | 1 | -12/+12 | |
2022-08-11 | Refactor attempts to remove unneeded state name | Titus Wormer | 1 | -31/+20 | |
2022-08-11 | Refactor to handle definitions when parsing | Titus Wormer | 1 | -3/+34 | |
2022-08-11 | Refactor to move `space_or_tab_eol` to own file | Titus Wormer | 1 | -16/+17 | |
2022-08-11 | Refactor to move some code to `event.rs` | Titus Wormer | 1 | -56/+56 | |
2022-08-11 | Refactor to move some code to `state.rs` | Titus Wormer | 1 | -21/+22 | |
2022-08-11 | Refactor internal docs, code style of tokenizer | Titus Wormer | 1 | -4/+9 | |
2022-08-10 | Rename `State::Fn` to `State::Next` | Titus Wormer | 1 | -26/+26 | |
2022-08-09 | Add support for passing `ok`, `nok` as separate states to attempts | Titus Wormer | 1 | -16/+43 | |
2022-08-09 | Rewrite algorithm to not pass around boxed functions | Titus Wormer | 1 | -33/+39 | |
* 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 | |||||
2022-08-02 | Refactor to remove most closures | Titus Wormer | 1 | -45/+50 | |
2022-07-29 | Refactor to improve states | Titus Wormer | 1 | -10/+11 | |
* 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` | |||||
2022-07-29 | Refactor to work on bytes (`u8`) | Titus Wormer | 1 | -4/+4 | |
2022-07-28 | Refactor to work on `char`s | Titus Wormer | 1 | -5/+5 | |
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. | |||||
2022-07-25 | Refactor to not pass codes around | Titus Wormer | 1 | -30/+27 | |
2022-07-25 | Remove no longer needed field in `State::Ok` | Titus Wormer | 1 | -2/+2 | |
2022-07-25 | Improve performance w/ a single feed loop | Titus Wormer | 1 | -4/+2 | |
2022-07-22 | Refactor to remove unneeded tuples in every states | Titus Wormer | 1 | -25/+22 | |
2022-07-22 | Refactor to pass ints instead of vecs around | Titus Wormer | 1 | -8/+8 | |
2022-07-18 | Add support for turning off constructs | Titus Wormer | 1 | -3/+3 | |
2022-07-18 | Refactor examples of states | Titus Wormer | 1 | -32/+38 | |
2022-07-07 | Refactor to move token types to `token` | Titus Wormer | 1 | -33/+34 | |
2022-07-05 | Refactor code style | Titus Wormer | 1 | -2/+2 | |
2022-07-01 | Make paragraphs really fast | Titus Wormer | 1 | -2/+15 | |
The approach that `micromark-js` takes is as follows: to parse a paragraph, check whether each line starts with something else. If it does, exit, otherwise continue. That is slow, because our actual flow parser does similar things: the work was being done twice. To fix this, this commit introduces parsing each line of a paragraph separately. And finally, when done with flow, combining adjacent paragraphs. This same mechanism is reused for setext headings. Additionally, this commit adds support for interrupting things (or not). E.g., HTML (flow, complete) cannot interrupt paragraphs. Definitions cannot interrupt paragraphs, and connect be interrupted either, but they can follow each other. | |||||
2022-07-01 | Refactor to reorder token types | Titus Wormer | 1 | -4/+4 | |
2022-07-01 | Refactor to clean and document `space_or_tab` | Titus Wormer | 1 | -3/+3 | |
2022-06-30 | Refactor some docs, fix some grammar | Titus Wormer | 1 | -4/+4 | |
2022-06-29 | Fix a bunch of bugs with definitions, references | Titus Wormer | 1 | -1/+1 | |
* 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 | |||||
2022-06-28 | Add some more crosslinks to docs | Titus Wormer | 1 | -13/+10 | |
2022-06-28 | Add docs to label end | Titus Wormer | 1 | -22/+6 | |
2022-06-24 | Add link, images (resource) | Titus Wormer | 1 | -102/+34 | |
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-22 | Refactor to not use `pub` when not needed | Titus Wormer | 1 | -1/+1 | |
2022-06-22 | Add docs on normalizing identifiers, matching | Titus Wormer | 1 | -7/+37 | |
2022-06-22 | Add support for normalizing identifiers | Titus Wormer | 1 | -5/+0 | |
2022-06-22 | Add docs on encoding to definition, destination | Titus Wormer | 1 | -1/+9 | |
2022-06-22 | Add `attempt_opt` to tokenizer | Titus Wormer | 1 | -9/+11 | |
2022-06-22 | Rename `Whitespace` token to `SpaceOrTab` | Titus Wormer | 1 | -3/+3 | |
2022-06-22 | Add docs for token types | Titus Wormer | 1 | -0/+18 | |
2022-06-21 | Add support for capping destination (raw) balance | Titus Wormer | 1 | -0/+1 | |
2022-06-21 | Add support for passing token types to destination, label, title | Titus Wormer | 1 | -5/+48 | |
2022-06-21 | Refactor to improve a bunch of states | Titus Wormer | 1 | -7/+5 | |
* Improve passing stuff around * Add traits to enums for markers and such * Fix “life time” stuff I didn’t understand | |||||
2022-06-20 | Add improved whitespace handling | Titus Wormer | 1 | -64/+32 | |
* 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-20 | Add paragraph | Titus Wormer | 1 | -1/+4 | |