aboutsummaryrefslogtreecommitdiffstats
path: root/src/construct (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-01Make paragraphs really fastLibravatar Titus Wormer8-275/+178
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-01Refactor to reorder token typesLibravatar Titus Wormer4-14/+14
2022-07-01Refactor to clean and document `space_or_tab`Libravatar Titus Wormer6-106/+144
2022-06-30Add support for trimming whitespace around string, textLibravatar Titus Wormer6-5/+110
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-30Refactor some docs, fix some grammarLibravatar Titus Wormer4-18/+25
2022-06-29Fix a bunch of bugs with definitions, referencesLibravatar Titus Wormer2-2/+2
* 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-29Add support for sharing identifiers, references before definitionsLibravatar Titus Wormer1-13/+4
2022-06-28Add some more crosslinks to docsLibravatar Titus Wormer6-28/+29
2022-06-28Add docs to label endLibravatar Titus Wormer6-38/+164
2022-06-28Add docs for label start (image, link)Libravatar Titus Wormer2-2/+59
2022-06-28Add docs for `RESOURCE_DESTINATION_BALANCE_MAX`Libravatar Titus Wormer1-2/+2
2022-06-28Fix jumps in `edit_map`Libravatar Titus Wormer9-298/+316
* 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`
2022-06-24Add link, images (resource)Libravatar Titus Wormer8-116/+876
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-22Refactor to not use `pub` when not neededLibravatar Titus Wormer5-6/+6
2022-06-22Add docs on normalizing identifiers, matchingLibravatar Titus Wormer1-7/+37
2022-06-22Add support for normalizing identifiersLibravatar Titus Wormer1-5/+0
2022-06-22Add docs on encoding to definition, destinationLibravatar Titus Wormer3-7/+47
2022-06-22Refactor some unneeded assignmentsLibravatar Titus Wormer2-4/+3
2022-06-22Add `attempt_opt` to tokenizerLibravatar Titus Wormer12-75/+120
2022-06-22Rename `Whitespace` token to `SpaceOrTab`Libravatar Titus Wormer7-13/+13
2022-06-22Refactor to improve tokenizer, add docsLibravatar Titus Wormer1-6/+8
2022-06-22Add docs for token typesLibravatar Titus Wormer16-31/+140
2022-06-21Add docs for `subtokenize`Libravatar Titus Wormer4-4/+5
2022-06-21Add support for capping destination (raw) balanceLibravatar Titus Wormer2-4/+4
2022-06-21Add support for passing token types to destination, label, titleLibravatar Titus Wormer4-109/+225
2022-06-21Make data a constructLibravatar Titus Wormer2-5/+84
2022-06-21Refactor to improve a bunch of statesLibravatar Titus Wormer13-558/+572
* Improve passing stuff around * Add traits to enums for markers and such * Fix “life time” stuff I didn’t understand
2022-06-20Refactor some codeLibravatar Titus Wormer1-32/+31
2022-06-20Add some more enabled testsLibravatar Titus Wormer3-4/+0
2022-06-20Add support for line endings in stringLibravatar Titus Wormer5-55/+101
2022-06-20Add improved whitespace handlingLibravatar Titus Wormer15-471/+307
* 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 Wormer10-11/+206
2022-06-20Remove unneeded `content` content typeLibravatar Titus Wormer3-5/+4
2022-06-20Remove unneeded `pub` keywordsLibravatar Titus Wormer6-73/+58
2022-06-20Add docs to destination, label, titleLibravatar Titus Wormer5-42/+245
2022-06-17Add support for definitionsLibravatar Titus Wormer5-2/+714
* 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 Wormer4-18/+323
2022-06-16Add support for hard break (trailing)Libravatar Titus Wormer4-7/+101
2022-06-16Add support for hard break escapeLibravatar Titus Wormer3-7/+68
2022-06-15Add docs on sanitizing urls to autolinkLibravatar Titus Wormer1-0/+18
2022-06-15Add support for text in heading (atx)Libravatar Titus Wormer1-0/+2
2022-06-15Add code (text)Libravatar Titus Wormer4-15/+230
2022-06-15Add tests for character referenceLibravatar Titus Wormer1-1/+1
* Fix encoding of character references * Fix unneeded remainder in `nok` state
2022-06-14Fix support for deep subtokenizationLibravatar Titus Wormer1-10/+14
* Fix a couple of forgotten line ending handling in html (text) * Fix missing initial case for html (text) not having a `<` 😬 * Add line ending handling to `text` construct
2022-06-14Reorganize to split utilLibravatar Titus Wormer3-6/+5
2022-06-14Add docs on constructs, bnfLibravatar Titus Wormer2-0/+56
2022-06-14Add docs for html (text)Libravatar Titus Wormer2-67/+289
2022-06-13Add basic html (text)Libravatar Titus Wormer2-0/+481
* 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 some improved docsLibravatar Titus Wormer9-22/+34
2022-06-13Add support for sanitizing urlsLibravatar Titus Wormer1-6/+4
* Add support for properly encoding characters in urls * Add support for sanitizing potentially dangerous urls * Add safe defaults, optionally live dangerously