aboutsummaryrefslogtreecommitdiffstats
path: root/src/tokenizer.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add support for attention (emphasis, strong)Libravatar Titus Wormer2022-07-041-0/+9
|
* Make paragraphs really fastLibravatar Titus Wormer2022-07-011-0/+3
| | | | | | | | | | | | | | | | | | 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.
* Add support for trimming whitespace around string, textLibravatar Titus Wormer2022-06-301-1/+8
| | | | | | | | | | | | | 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
* Add docs on resolver, clean feedLibravatar Titus Wormer2022-06-301-77/+97
|
* Refactor to reorder token typesLibravatar Titus Wormer2022-06-301-303/+303
|
* Add docs to image, link, and other media tokensLibravatar Titus Wormer2022-06-301-16/+434
|
* Refactor to externalize handlers of compilerLibravatar Titus Wormer2022-06-291-1/+1
|
* Fix jumps in `edit_map`Libravatar Titus Wormer2022-06-281-33/+16
| | | | | | | | | * 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-5/+106
| | | | | | | | | | | | 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
* Refactor some unneeded assignmentsLibravatar Titus Wormer2022-06-221-3/+1
|
* Add `attempt_opt` to tokenizerLibravatar Titus Wormer2022-06-221-35/+30
|
* Rename `Whitespace` token to `SpaceOrTab`Libravatar Titus Wormer2022-06-221-15/+15
|
* Refactor to improve tokenizer, add docsLibravatar Titus Wormer2022-06-221-144/+58
|
* Add docs for token typesLibravatar Titus Wormer2022-06-221-6/+1102
|
* Add support for passing token types to destination, label, titleLibravatar Titus Wormer2022-06-211-1/+1
|
* Refactor to improve a bunch of statesLibravatar Titus Wormer2022-06-211-0/+1
| | | | | | * Improve passing stuff around * Add traits to enums for markers and such * Fix “life time” stuff I didn’t understand
* Update todo listLibravatar Titus Wormer2022-06-211-16/+23
|
* Add support for inferring line ending, configurableLibravatar Titus Wormer2022-06-211-2/+4
| | | | | | * Rename `CompileOptions` to `Options` * Add support for an optional default line ending style * Add support for inferring the used line ending style
* Add support for BOMLibravatar Titus Wormer2022-06-201-0/+10
|
* Fix bug with tabsLibravatar Titus Wormer2022-06-201-1/+6
|
* Add improved whitespace handlingLibravatar Titus Wormer2022-06-201-27/+5
| | | | | | * 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
* Remove unneeded `content` content typeLibravatar Titus Wormer2022-06-201-2/+0
|
* Add support for definitionsLibravatar Titus Wormer2022-06-171-15/+67
| | | | | | * Add definitions * Add partials for label, destination, title * Add `go`, to attempt something, and do something else on `ok`
* Add heading (setext)Libravatar Titus Wormer2022-06-161-4/+7
|
* Refactor to reorder thing alphabeticallyLibravatar Titus Wormer2022-06-161-21/+7
|
* Add support for hard break (trailing)Libravatar Titus Wormer2022-06-161-2/+11
|
* Add support for hard break escapeLibravatar Titus Wormer2022-06-161-3/+11
|
* Add code (text)Libravatar Titus Wormer2022-06-151-5/+22
|
* Reorganize to split utilLibravatar Titus Wormer2022-06-141-0/+2
|
* Add basic html (text)Libravatar Titus Wormer2022-06-131-2/+32
| | | | | | | * 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 😅
* Add autolinksLibravatar Titus Wormer2022-06-131-0/+5
|
* Add text content typeLibravatar Titus Wormer2022-06-101-1/+1
| | | | | * Add character reference and character escapes in text * Add recursive subtokenization
* Add proper support for subtokenizationLibravatar Titus Wormer2022-06-101-3/+37
| | | | | | | - Add “content” content type - Add paragraph - Add skips - Add linked tokens
* Add basic subtokenization, string content in fenced codeLibravatar Titus Wormer2022-06-091-7/+8
|
* Refactor to pass more slices aroundLibravatar Titus Wormer2022-06-091-5/+5
|
* Add basic support for interrupting contentLibravatar Titus Wormer2022-06-091-1/+57
|
* .Libravatar Titus Wormer2022-06-081-0/+580