Noah Hellman
908ba72812
test suite, suite bench: update djot.js module
2023-02-05 20:36:49 +01:00
Noah Hellman
0de7776020
impl Clone, Copy on public objects
2023-02-05 20:36:49 +01:00
Noah Hellman
477eadde1c
document lib API
2023-02-05 20:36:49 +01:00
Noah Hellman
5efb700c9b
move atomic events to Event from Atom
...
An additional Atom enum seems to be more cumbersome and add little
value.
methods could potentially be used to classify events in several ways,
e.g. block vs inline, atomic vs container
2023-02-05 20:36:49 +01:00
Noah Hellman
2811493c34
html: do not emit newline in beginning
2023-02-05 20:36:49 +01:00
Noah Hellman
7a26476315
fixup! wip djot -> html
2023-02-05 20:36:49 +01:00
Noah Hellman
0420aad0a5
implement symbols
...
e.g. :some-sym:
2023-02-05 20:36:49 +01:00
Noah Hellman
61f0d6281e
rm unused
2023-02-05 20:36:49 +01:00
Noah Hellman
cc5a196149
fixup! parse block elements
2023-02-05 20:36:49 +01:00
Noah Hellman
cc89a06964
fixup! fixup! test_parse, test_block
2023-02-05 20:36:49 +01:00
Noah Hellman
fbd8811c86
block: parse description list
2023-02-05 20:36:49 +01:00
Noah Hellman
95bf52a31e
update tree
2023-02-05 20:36:49 +01:00
Noah Hellman
768699d138
optionally use btree maps instead of hash maps
...
btree maps are deterministic which is useful for fuzzing. hash maps,
however have better performance in our case
2023-02-05 20:36:49 +01:00
Noah Hellman
fc96f3408f
make: add cov recipe
2023-02-05 20:36:49 +01:00
Noah Hellman
924d6c44ac
inline: disallow '<' in autolinks
...
avoid hangs on long <<<<<< sequences
2023-02-05 20:36:49 +01:00
Noah Hellman
82adc631d9
allow attributes on thematic breaks
2023-02-05 20:36:49 +01:00
Noah Hellman
670763dd93
fixup! do not treat \0 as EOF
2023-02-05 20:36:49 +01:00
Noah Hellman
59450ed9ad
fixup! block: split parse_block function
2023-02-05 20:36:49 +01:00
Noah Hellman
cadf49fc53
fix usage of byte vs char count
2023-02-05 20:36:49 +01:00
Noah Hellman
4cb9c07cfc
fixup! block attributes
2023-02-05 20:36:49 +01:00
Noah Hellman
82e1fd74f5
fixup! block: add MeteredBlock as intermediate struct
2023-02-05 20:36:49 +01:00
Noah Hellman
59be7070de
block: count indent in chars instead of bytes
2023-02-05 20:36:49 +01:00
Noah Hellman
ca7f3c7e89
do not treat \0 as EOF
...
may appear in input
2023-02-05 20:36:49 +01:00
Noah Hellman
3425ad4189
fixup! block: avoid panic on too short table line
2023-02-05 20:36:49 +01:00
Noah Hellman
d2df3eb8a1
fixup! mv spans to separate span file
2023-02-05 20:36:49 +01:00
Noah Hellman
1bbfd4a96a
prepass: avoid consecutive '-' in heading id
2023-02-05 20:36:49 +01:00
Noah Hellman
fb6a44283d
inline: do not emit empty events
2023-02-05 20:36:49 +01:00
Noah Hellman
a5d88b64ae
parser: avoid panic
2023-02-05 20:36:49 +01:00
Noah Hellman
c4a3acaf70
block: avoid panic on too short table line
2023-02-05 20:36:49 +01:00
Noah Hellman
28c2bfbe8c
add afl fuzz target
2023-02-05 20:36:49 +01:00
Noah Hellman
78987f7ba3
add bench target and scripts to run simple benchmark
2023-02-05 20:36:48 +01:00
Noah Hellman
87d4f7c270
prepass: use hash set to avoid duplicate heading ids
...
linear lookup becomes problematic for large amount of headings with same
title
2023-02-05 20:36:40 +01:00
Noah Hellman
6a94e694f9
block: enforce valid div classes
2023-02-05 20:36:40 +01:00
Noah Hellman
30351500bb
fixup! attr valid: return whether attrs non-empty
2023-02-05 20:36:40 +01:00
Noah Hellman
dc38076f50
block: limit ordered list number width
...
use 64-bit to not let limit be too low, 32-bit allows for only 6 alpha
digits, "zzzzzz".
2023-02-05 20:36:40 +01:00
Noah Hellman
4b52fb0832
fixup! inline fixup
2023-02-05 20:36:40 +01:00
Noah Hellman
8dd4db11ec
html: escape user provided attribute values
2023-02-05 20:36:40 +01:00
Noah Hellman
f9655dfa9b
fixup! block: fix parsing end of list
2023-02-05 20:36:40 +01:00
Noah Hellman
5d9f90342c
block: fix parsing end of list
...
following paragraphs were considered part of list
2023-02-05 20:36:40 +01:00
Noah Hellman
5672ef4198
block: fix empty lines in code block
...
were accidentaly removed
2023-02-05 20:36:40 +01:00
Noah Hellman
de7404137e
parser: keep inlines of code blocks verbatim
2023-02-05 20:36:40 +01:00
Noah Hellman
2893977dae
fixup! block: fix headings with first line empty
2023-02-05 20:36:40 +01:00
Noah Hellman
08332bed5e
test suite: add djot.js bench files as tests
2023-02-05 20:36:40 +01:00
Noah Hellman
9ab8be5d30
block: move Block::from to Kind::block
...
allow more inputs
2023-02-05 20:36:40 +01:00
Noah Hellman
6c630798f8
spec tests: filter out non-applicable test files
2023-02-05 20:36:40 +01:00
Noah Hellman
60dcf09c1a
impl automatic heading identifiers
2023-02-05 20:36:40 +01:00
Noah Hellman
b726580724
parser: fix end section eating block attributes
2023-02-05 20:36:40 +01:00
Noah Hellman
7b8157cb51
fixup! parse inline attrs
2023-02-05 20:36:40 +01:00
Noah Hellman
3e8b80059e
fixup! parser: impl link references
2023-02-05 20:36:40 +01:00
Noah Hellman
493a9b3563
heading event: limit level to u16
2023-02-05 20:36:40 +01:00