Noah Hellman
8382fe122f
lib: derive Clone for Parser
...
should now be safe to do
2023-04-05 21:17:33 +02:00
Noah Hellman
3a1a3996e9
inline: take str per line instead of full inline iter
...
gets rid of DiscontinousChars which is large and requires cloning on
peek
resolves #4
2023-04-05 21:17:33 +02:00
Noah Hellman
8169feb1f6
inline: impl links w/o lookahead
...
needed to get rid of DiscontinuousChars
2023-04-05 21:17:33 +02:00
Noah Hellman
66d821f03e
inline: replace Delim by Opener
...
no need to have a delimiter for closer, only opener needs to be stored
in stack
2023-04-05 21:17:33 +02:00
Noah Hellman
ed5aed3759
inline: impl verbatim w/o lookahead
...
avoid lookahead for containers that can cross newline
needed to get rid of DiscontinuousChars iter
2023-04-05 21:17:33 +02:00
Noah Hellman
e8e551fd8b
inline: separate lex, span to separate Input object
...
easier handling of mutable pointers, can borrow self.input instead of
whole self
can e.g. borrow mutable state while still eating new tokens
2023-04-05 21:17:33 +02:00
Noah Hellman
5d6d0e0840
inline: use lex kinds
...
import Sequence and use Delimiter, Symbol consistently
2023-04-05 21:17:33 +02:00
Noah Hellman
f192ea2aa6
inline: use ? to flatten methods
2023-04-05 21:17:33 +02:00
Noah Hellman
491c5f2866
inline: always push events from parse methods
...
in order to more conveniently allow pushing in arbitrary order
parse methods now return an Option<()> that functions kind of like a
std::ops::ControlFlow. Some(()) means the token was parsed, None means
continue parsing.
2023-04-05 21:17:33 +02:00
Noah Hellman
9429f90307
inline: reuse event buffer between blocks
...
make sure not to allocate a new buffer on each block
2023-04-05 21:17:33 +02:00
Noah Hellman
1e5e56c463
only assert in debug builds
...
these are primarily used to detect bugs during e.g. fuzzing.
most of these asserts have negligible impact on performance, but if they
are not debug asserts it is not obvious that they dont affect
performance of release builds
2023-04-05 21:17:33 +02:00
Noah Hellman
d171cbb516
inline: add quote test
2023-04-05 21:17:33 +02:00
Noah Hellman
722f549ffd
clippy: allow blocks_in_if_conditions everywhere
2023-04-05 21:17:33 +02:00
Noah Hellman
a7f5b337a8
inline: fix attrs missing for inline verbatim
...
closes #15
2023-03-11 22:16:56 +01:00
Noah Hellman
418bb38f82
inline: extract ahead_container_attributes
2023-02-21 17:58:05 +01:00
Noah Hellman
413fecfe6a
fix/allow clippy lints
2023-02-12 00:59:18 +01:00
Noah Hellman
0de7776020
impl Clone, Copy on public objects
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
924d6c44ac
inline: disallow '<' in autolinks
...
avoid hangs on long <<<<<< sequences
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
fb6a44283d
inline: do not emit empty events
2023-02-05 20:36:49 +01:00
Noah Hellman
4b52fb0832
fixup! inline fixup
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
6cf5aca1e3
fixup! stuuoestnhunoestuh
2023-02-05 20:36:40 +01:00
Noah Hellman
a03d46dfaf
inline: impl smart em/endash
2023-02-05 20:36:40 +01:00
Noah Hellman
b10798b778
inline: impl smart ellipsis
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
8237384077
span: add empty_{before,after}, after, between
2023-02-05 20:36:40 +01:00
Noah Hellman
d8d69b2488
fixup! inline: disallow containers of zero length
2023-02-05 20:36:40 +01:00
Noah Hellman
d0084b0d87
fixup! inline: disallow whitespace after/before emph
2023-02-05 20:36:40 +01:00
Noah Hellman
373567a6dc
fixup! inline fixup
2023-02-05 20:36:40 +01:00
Noah Hellman
0605a0d901
fixup! inline: disallow whitespace after/before emph
2023-02-05 20:36:40 +01:00
Noah Hellman
d050c504ae
inline: disallow whitespace after/before emph
2023-02-05 20:36:40 +01:00
Noah Hellman
b78b2866a8
fixup! inline fixup
2023-02-05 20:36:40 +01:00
Noah Hellman
641e904074
inline: disallow containers of zero length
2023-02-05 20:36:40 +01:00
Noah Hellman
7ee1c7514d
inline fixup
2023-02-05 20:36:40 +01:00
Noah Hellman
79e2eab107
fixup! inline: hide empty attributes from output
2023-02-05 20:36:40 +01:00
Noah Hellman
79dfd3be36
inline: do not merge discontinuous str
...
may appear when ignoring attributes
2023-02-05 20:36:40 +01:00
Noah Hellman
d3b2ee14cb
amend! inline: hide empty attributes from output
...
inline: hide empty attrs, whitespace attrs from output
in order to allow comments
2023-02-05 20:36:40 +01:00
Noah Hellman
8ccfb4c603
render footnotes
2023-02-05 20:36:40 +01:00
Noah Hellman
4a7967812e
lex: fix buggy peek
2023-02-05 20:36:40 +01:00
Noah Hellman
d3a98e6626
inline: impl empty link references tag
...
use text as tag
2023-02-05 20:36:40 +01:00
Noah Hellman
f80991d07a
inline: hide empty attributes from output
...
allow comments
2023-02-05 20:36:40 +01:00
Noah Hellman
e6eb02ad03
fixup! inline: word attributes
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
b512c670e6
attr valid: return whether attrs non-empty
2023-02-05 20:36:40 +01:00
Noah Hellman
161dfec96d
inline: word attributes
2023-02-05 20:36:40 +01:00
Noah Hellman
b3896908a3
inline: trim verbatim whitespace
2023-02-05 20:36:40 +01:00
Noah Hellman
b937b4f71e
inline: span with attributes
2023-02-05 20:36:40 +01:00
Noah Hellman
59664feaf3
fixup! parse inline attrs
2023-02-05 20:36:40 +01:00