Commit graph

482 commits

Author SHA1 Message Date
Noah Hellman
253d1d2d4b prepass: avoid peekable for block iter 2023-08-05 14:05:35 +02:00
Noah Hellman
5ddbd728a8 prepass: remove unsafe, put strings on heap
actually caused spooky behavior

resolves #5
2023-08-05 13:47:25 +02:00
Noah Hellman
109e030c71 attr: fix concat of class attrs on union 2023-08-05 13:26:11 +02:00
Noah Hellman
3e4bb127c7 block: minimize work when determining block 2023-07-14 20:05:47 +02:00
Noah Hellman
e55e7a129f block: reduce a span to its length 2023-07-11 17:30:32 +02:00
Noah Hellman
faae051821 block: let footnote definition continue unindented
match reference implementation, let footnote paragraph continue on same
line, but not start other blocks

e.g.

[^footnote]: first
second
2023-07-10 22:31:53 +02:00
Noah Hellman
cee759f751 lib: uncomment tests
was accidentally committed
2023-06-25 14:32:49 +02:00
Noah Hellman
266b55a6f3 contrib: add benchmark scripts 2023-06-25 14:32:49 +02:00
Noah Hellman
0173db178a Release 0.3.0 2023-05-16 20:29:05 +02:00
Noah Hellman
e4569f5c3e PR #40 use bytes instead of chars
Merge branch 'ascii'
2023-05-16 19:59:05 +02:00
Noah Hellman
2ea095730c lib: replace custom Span with Range<usize> 2023-05-16 17:01:42 +02:00
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