Commit graph

169 commits

Author SHA1 Message Date
Noah Hellman
05a4992d99 lib: don't prepend mailto to url in autolink Event
better to provide the original url, the event is already tagged as email

also avoids a string allocation
2023-04-05 21:17:04 +02:00
Noah Hellman
62e73100a6 bug fix: set LinkType to Email for email autolinks 2023-03-20 23:39:51 +01:00
Noah Hellman
648a6dbef2 lib: derive Clone for Event and Container 2023-03-16 20:05:20 +01:00
kmaasrud
e3f39d4b88
feat: support escapes in attributes
Related issue: #1
2023-03-12 08:19:56 +01:00
Noah Hellman
c3ff064c78 make Event::is_{,container_}block public
this is only used by html renderer, may be useful for other renderers
also
2023-02-12 00:59:18 +01:00
kmaasrud
d7f2c0a819 implement Render trait for html::Renderer 2023-02-10 09:46:18 +01:00
kmaasrud
4743781cb9 add Render trait 2023-02-10 09:45:43 +01:00
Noah Hellman
0d560901eb block: add Element::list 2023-02-07 21:49:35 +01:00
Noah Hellman
34452a282a features: add flag for html module 2023-02-05 21:59:38 +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
0420aad0a5 implement symbols
e.g. :some-sym:
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
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
82adc631d9 allow attributes on thematic breaks 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
1bbfd4a96a prepass: avoid consecutive '-' in heading id 2023-02-05 20:36:49 +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
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
de7404137e parser: keep inlines of code blocks verbatim 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
Noah Hellman
1135cf7054 fixup! block: parse tables 2023-02-05 20:36:40 +01:00
Noah Hellman
dcb3b787a2 block: add MeteredBlock as intermediate struct 2023-02-05 20:36:40 +01:00
Noah Hellman
530820a04e block: add hierarchical heading sections 2023-02-05 20:36:40 +01:00
Noah Hellman
1f47a1729e parser: impl autolinks 2023-02-05 20:36:40 +01:00
Noah Hellman
2e992f5726 fixup! parser: allow linebreak in text of link tag refs 2023-02-05 20:36:40 +01:00
Noah Hellman
9fd10683c5 parser: throw away link-def/footnote attrs
prevent attributes on link definitions and footnotes from applying to
upcoming elements
2023-02-05 20:36:40 +01:00
Noah Hellman
2e4a9147aa parser: apply link def attrs to link 2023-02-05 20:36:40 +01:00
Noah Hellman
9fdd402d07 parser: allow linebreak in text of link tag refs
e.g.

    [my
    link][]

will link to

    [my link]: url
2023-02-05 20:36:40 +01:00
Noah Hellman
8b8ccd65bb fixup! parse: merge enter / exit block events match branch 2023-02-05 20:36:40 +01:00
Noah Hellman
56718ef887 inline: impl smart quotation 2023-02-05 20:36:40 +01:00
Noah Hellman
8339befe2f block: parse captions 2023-02-05 20:36:40 +01:00
Noah Hellman
c288264aee block: parse tables 2023-02-05 20:36:40 +01:00
Noah Hellman
5714e72939 parser: parse roman numerals 2023-02-05 20:36:40 +01:00
Noah Hellman
a661a2febb parser: parse AlphaLower/Upper numbers 2023-02-05 20:36:40 +01:00
Noah Hellman
e5c4ca5450 fixup! 238e445f3012485d96aba81ca01ee45d7ba97370 2023-02-05 20:36:40 +01:00
Noah Hellman
ec69d98c75 amend! parser: determine tight vs loose lists
block: determine tight vs loose lists
2023-02-05 20:36:40 +01:00
Noah Hellman
69d51a5032 fixup! parser: determine tight vs loose lists 2023-02-05 20:36:40 +01:00
Noah Hellman
845c56fd0b parser: test nested list 2023-02-05 20:36:40 +01:00
Noah Hellman
70d29c65e4 parser: determine tight vs loose lists 2023-02-05 20:36:40 +01:00
Noah Hellman
36470af114 tmp remove this 2023-02-05 20:36:40 +01:00
Noah Hellman
7b018ef10c todo: allow roman in alpha 2023-02-05 20:36:40 +01:00
Noah Hellman
83d569d09a fixup! 1669f0e97379fe38e7df6206d1e6815c5e8730fb 2023-02-05 20:36:40 +01:00
Noah Hellman
4ad7e2bf3e fixup! a931e71100663ece89f3c8dbfa67c02414d40436 2023-02-05 20:36:40 +01:00
Noah Hellman
2f616c41b7 parser: parse lists and list items 2023-02-05 20:36:40 +01:00
Noah Hellman
6befcad52a parse: merge enter / exit block events match branch 2023-02-05 20:36:40 +01:00
Noah Hellman
50632204a3 block: emit list events around list items 2023-02-05 20:36:40 +01:00
Noah Hellman
5e8c683050 fixup! tree: add tree branch reference 2023-02-05 20:36:40 +01:00
Noah Hellman
a62eb3e1d8 fixup! e1843f1913dbbbc85414b05268ef554676168a6b 2023-02-05 20:36:40 +01:00
Noah Hellman
73baa48706 doc 2023-02-05 20:36:40 +01:00
Noah Hellman
d8aba07db3 fixup! wip 2023-02-05 20:36:40 +01:00
Noah Hellman
44a6961beb block: parse list item 2023-02-05 20:36:40 +01:00
Noah Hellman
42ca801712 rm from_container_block 2023-02-05 20:36:40 +01:00
Noah Hellman
8ccfb4c603 render footnotes 2023-02-05 20:36:40 +01:00
Noah Hellman
cbead322ed fixup! tree: add tree branch reference 2023-02-05 20:36:40 +01:00
Noah Hellman
726f1bc7b0 fixup! parser: impl link references 2023-02-05 20:36:40 +01:00
Noah Hellman
56190c4b0d fixup! parser: impl link references 2023-02-05 20:36:40 +01:00
Noah Hellman
ce6447476c fixup! parser: impl link references 2023-02-05 20:36:40 +01:00
Noah Hellman
1dde9e57e2 borrow link def url if on single line 2023-02-05 20:36:40 +01:00
Noah Hellman
c7b3aa560b tree: add tree branch reference
allow multiple independent iterators for the same underlying tree

safety: not very good, but should work because original tree is kept in
Parser and branches are only used during its lifetime
2023-02-05 20:36:40 +01:00
Noah Hellman
6af5c5c884 fixup! parse inline attrs 2023-02-05 20:36:40 +01:00
Noah Hellman
ecf49100f4 fixup! parser: impl link references 2023-02-05 20:36:40 +01:00
Noah Hellman
6c5fcbf57d parser: impl link references 2023-02-05 20:36:40 +01:00
Noah Hellman
064b4b1f88 inline: rename AttributesDummy -> Placeholder
allow general use
2023-02-05 20:36:40 +01:00
Noah Hellman
161dfec96d inline: word attributes 2023-02-05 20:36:40 +01:00
Noah Hellman
5f9a72545b lib: raw blocks 2023-02-05 20:36:40 +01:00
Noah Hellman
b0565eb4c6 rm unused var 2023-02-05 20:36:40 +01:00
Noah Hellman
0816ab4dcb mv inline span structs to span module 2023-02-05 20:36:40 +01:00
Noah Hellman
59664feaf3 fixup! parse inline attrs 2023-02-05 20:36:40 +01:00
Noah Hellman
8d676e1431 parse inline attrs 2023-02-05 20:36:40 +01:00
Noah Hellman
666e9cfd40 fixup! block attributes 2023-02-05 20:36:40 +01:00
Noah Hellman
c0183d4524 inline: impl container attributes 2023-02-05 20:36:40 +01:00
Noah Hellman
352be02ccf block attributes 2023-02-05 20:36:40 +01:00
Noah Hellman
be333b8715 stuufff 2023-02-05 20:36:40 +01:00
Noah Hellman
5ac05d1919 img 2023-02-05 20:36:40 +01:00
Noah Hellman
6fdbd09cd1 discontinuous spans 2023-02-05 20:36:40 +01:00
Noah Hellman
903578b04d add cowstr 2023-02-05 20:36:40 +01:00
Noah Hellman
f6fa422e6b refactorzzz 2023-02-05 20:36:40 +01:00
Noah Hellman
81a4edb884 inline: get rid of verbatim state 2023-02-05 20:36:40 +01:00
Noah Hellman
3339e785a7 maybe functional multi-line inline 2023-02-05 20:36:40 +01:00
Noah Hellman
946d88e5c0 pre remove atomic state 2023-02-05 20:36:40 +01:00
Noah Hellman
e798dc9c28 raw inline format 2023-02-05 20:36:39 +01:00
Noah Hellman
7c53d1a093 add inline State 2023-02-05 20:36:39 +01:00
Noah Hellman
c4e4be7bce add block parser in addition to block tree parser 2023-02-05 20:36:39 +01:00
Noah Hellman
3a70cd8255 wipppp 2023-02-05 20:36:39 +01:00
Noah Hellman
2303cf3574 verbatim fix 2023-02-05 20:36:39 +01:00
Noah Hellman
a994228bb5 lib wip 2023-02-05 20:36:39 +01:00
Noah Hellman
4e1ada5836 wip 2023-02-05 20:36:39 +01:00
Noah Hellman
75b13597da fixup! e18f24b99d70338014ab8e4031fad9a17b167b8f 2023-02-05 20:36:39 +01:00
Noah Hellman
5755616870 fixup! 3b4b2e0259b2e84c8199c6f416e2c4f8d466e431 2023-02-05 20:36:39 +01:00
Noah Hellman
80911deb76 fixup! wip inlin passing 2023-02-05 20:36:39 +01:00
Noah Hellman
61dfa91db3 fixup! 37267afca9bb0d048643ae663ec4a9855ce2fff0 2023-02-05 20:36:39 +01:00
Noah Hellman
4aed9fa8e0 fixup! wip inlin passing 2023-02-05 20:36:39 +01:00
Noah Hellman
1c96e6f856 fixup! a7f6782bc13246e3c6f17ab31d58876ba614bb3c 2023-02-05 20:36:39 +01:00
Noah Hellman
15a94f0161 fixup! b1072d5d646f05f9b180d7cb1cd86ae805ed1f6d 2023-02-05 20:36:39 +01:00