Commit graph

391 commits

Author SHA1 Message Date
b7c31f6895
Add serde support 2024-04-04 17:50:55 -04:00
8239b2b51d
Make databake compatible 2024-03-18 18:35:08 -04:00
Noah Hellman
905d2919e3 only allow 1-char alphabetic list markers 2023-08-29 18:33:16 +02:00
Noah Hellman
6091f2ea70 html: fix missing <p> tags after ordered lists
resolves #44
2023-08-05 14:05:35 +02:00
Noah Hellman
0586bf6a44 block: rm extra new line after raw blocks
match reference implementation
2023-08-05 14:05:35 +02:00
Noah Hellman
b60650dd0d inline: fix label of empty multi-line ref links
e.g.

    [some
    text][]

    [some text]: url
2023-08-05 14:05:35 +02:00
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
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
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
79b5119209 parse: add Parser::into_offset_iter
resolves #3
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