Commit graph

471 commits

Author SHA1 Message Date
Noah Hellman
3908823d18 inline: use bytes instead of chars 2023-05-16 17:01:42 +02:00
Noah Hellman
eaa21fd393 prepass: consider only ascii whitespace 2023-05-16 17:01:42 +02:00
Noah Hellman
72a3378831 attr: use bytes instead of chars
only consider ascii whitespace
2023-05-16 17:01:42 +02:00
Noah Hellman
798f8941d8 lex: use bytes instead of chars
All special characters are ascii (within 00-7f), so chars aren't
required. Using bytes will make it easier to use SIMD instructions.

Some places in inline.rs have required changes because there is no
longer any guarantee that the token/event spans are aligned to utf-8
chars. Calling event.span.of(src) may now cause a panic.
2023-05-16 17:01:42 +02:00
Noah Hellman
55234bf193 block: consider only ascii whitespace 2023-05-16 17:01:42 +02:00
Noah Hellman
d43d6c908f attr: valid, ret byte len not char count 2023-05-16 17:01:42 +02:00
Noah Hellman
599b712f36 attr: rm unused ret bool from valid 2023-05-16 17:01:42 +02:00
Noah Hellman
c804e666ec inline: do not parse attrs in verbatim
fixes #41
2023-05-16 16:59:20 +02:00
Noah Hellman
68a5a34f7b block: rm unused Display impls 2023-05-15 21:57:56 +02:00
Noah Hellman
5985d78437 use minimal afl input
afl exits early when initial input crashes, which it often does after
large changes
2023-05-15 19:05:22 +02:00
Noah Hellman
70303e7e4b PR #39 add source map
Merge branch 'spans2'
2023-05-15 19:05:22 +02:00
Noah Hellman
8be7c4c840 block: replace int literals with byte chars 2023-05-15 19:05:22 +02:00
Noah Hellman
bbdb314ae1 parse: do not inline parse link definitions
better match the actual url produced, which is verbatim
2023-05-15 19:05:22 +02:00
Noah Hellman
c29b926d16 block: rm redundant block scope 2023-05-15 19:05:22 +02:00
Noah Hellman
7c28a068e9 afl: rm whitelisted html error
resolved by "block: replace tree with event vec"
2023-05-15 19:05:22 +02:00
Noah Hellman
7fc739cad4 afl_tmin: remove duplicate input files 2023-05-15 19:05:22 +02:00
Noah Hellman
e69d61a0d1 afl parse: sanity check spans 2023-05-15 19:05:22 +02:00
Noah Hellman
0484ee2011 lib: make code block language non option
no distinction between empty language and None
2023-05-15 19:05:22 +02:00
Noah Hellman
d19e4933c9 afl: merge parse_balance target into parse
parse_balance is a superset of parse
2023-05-15 19:05:22 +02:00
Noah Hellman
e79f767604 lib: code block lang -> language 2023-05-15 19:05:22 +02:00
Noah Hellman
2a3973674f jotdown_wasm: add events with spans format 2023-05-15 19:05:22 +02:00
Noah Hellman
924a3c35bb lib: make div class non option
there is no distinction between an empty class and a None
2023-05-15 19:05:22 +02:00
Noah Hellman
79b5119209 parse: add Parser::into_offset_iter
resolves #3
2023-05-15 19:05:22 +02:00
Noah Hellman
116fb04725 lex: remove DollarBacktick token
can now read src to check dollar before backticks, so simpler to always
use backtick token

fixes several bugs, e.g.

| $`abc` | (previously did not get closed)

`$abc$` (previously did not get closed)
2023-05-15 19:05:22 +02:00
Noah Hellman
b6b3a6f40b parse: only get block span content when needed 2023-05-15 19:05:22 +02:00
Noah Hellman
f5c87f32f9 inline: include attribute in end event span 2023-05-15 19:05:22 +02:00
Noah Hellman
42ce9a3670 block: include attributes in open event span 2023-05-15 19:05:22 +02:00
Noah Hellman
b0f88230aa parse: do not attach block attributes to outer blocks
e.g.

    - {.inner}

    this paragraph would get the inner class previously
2023-05-15 19:05:22 +02:00
Noah Hellman
c377aa9998 block: ensure section span end before attrs
e.g

    # sec1
                        <-- end sec1 here
    {.sec2-class0}
    {.sec2-class1}      <-- instead of here
    # sec2
2023-05-15 19:05:22 +02:00
Noah Hellman
edd89f2b20 block: expand parse_attr test 2023-05-15 19:05:22 +02:00
Noah Hellman
e84385c2db block: replace tree with event vec
a lot simpler to use and reason about

should also make it easier to move to streaming
2023-05-15 19:05:22 +02:00
Noah Hellman
5e99d98f4f block: use separate spans for start/end events 2023-05-15 19:05:22 +02:00
Noah Hellman
631c9eff42 block: extend parse_description_list 2023-05-15 19:05:22 +02:00
Noah Hellman
8d1381144e block: extend parse_code_block 2023-05-15 19:05:22 +02:00
Noah Hellman
c21138d5b9 block: extend parse_table_align 2023-05-15 19:05:22 +02:00
Noah Hellman
4f863f91d5 block: add test parse_description_list_empty 2023-05-15 19:05:22 +02:00
Noah Hellman
d9804d963c block: add parse_table_empty 2023-05-15 19:05:22 +02:00
Noah Hellman
ee9ea2e023 block: specify heading pos in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
898ed90a24 block: specify div class in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
6cebdfcc0c block: specify footnote label in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
116245367a block: specify task check in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
6200b07287 block: specify list marker in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
dbedeeb5ee block: specify lang in code block event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
e90594f2b7 block: specify link def label in event
instead of using span
2023-05-15 19:05:22 +02:00
Noah Hellman
bc4dd794bc block: store level in event
do not use span length as level
2023-05-15 19:05:22 +02:00
Noah Hellman
6abe9e44c7 inline: mv symbol from span to event field 2023-05-15 19:05:22 +02:00
Noah Hellman
9676d9e5d6 inline: mv footnote label from span to event field 2023-05-15 19:05:22 +02:00
Noah Hellman
0a144574f4 inline: mv autolink url from span to event field 2023-05-15 19:05:22 +02:00
Noah Hellman
657b47df12 inline: mv raw format spec from span to event field 2023-05-15 19:05:22 +02:00
Noah Hellman
b2d15383e7 inline: allow empty span when followed by url/label/attrs
allow e.g. images without alt text ![](url)
2023-05-10 22:12:07 +02:00