diff options
author | Titus Wormer <tituswormer@gmail.com> | 2022-07-14 15:01:03 +0200 |
---|---|---|
committer | Titus Wormer <tituswormer@gmail.com> | 2022-07-14 15:01:03 +0200 |
commit | e2c9664b0d63ec686f9e4625ac11bb21720f74dc (patch) | |
tree | 351b09f44bad5dcf9e077407495cd455c67b99c2 /src/construct/html_flow.rs | |
parent | fb185e801e7d2002948d0b4e91ee06767e13ed00 (diff) | |
download | markdown-rs-e2c9664b0d63ec686f9e4625ac11bb21720f74dc.tar.gz markdown-rs-e2c9664b0d63ec686f9e4625ac11bb21720f74dc.tar.bz2 markdown-rs-e2c9664b0d63ec686f9e4625ac11bb21720f74dc.zip |
Fix a bunch of container things
* Fix a lot of container code
* Fix to prevent code (indented) from interrupting a lazy container
* Fix compiling when combining tight paragraphs, empty list items, and html
* Fix list items starting w/ blank lines causing loose lists
* Fix crash when looking for a previous blank line
Diffstat (limited to '')
-rw-r--r-- | src/construct/html_flow.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/construct/html_flow.rs b/src/construct/html_flow.rs index a8b1efc..3300d2f 100644 --- a/src/construct/html_flow.rs +++ b/src/construct/html_flow.rs @@ -207,7 +207,6 @@ struct Info { /// pub fn start(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult { tokenizer.enter(Token::HtmlFlow); - tokenizer.enter(Token::HtmlFlowData); // To do: allow arbitrary when code (indented) is turned off. tokenizer.go(space_or_tab_min_max(0, TAB_SIZE - 1), before)(tokenizer, code) } @@ -219,6 +218,7 @@ pub fn start(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult { /// ``` fn before(tokenizer: &mut Tokenizer, code: Code) -> StateFnResult { if Code::Char('<') == code { + tokenizer.enter(Token::HtmlFlowData); tokenizer.consume(code); (State::Fn(Box::new(open)), None) } else { @@ -771,11 +771,12 @@ fn continuation(tokenizer: &mut Tokenizer, code: Code, info: Info) -> StateFnRes Code::CarriageReturnLineFeed | Code::Char('\n' | '\r') if info.kind == Kind::Basic || info.kind == Kind::Complete => { + tokenizer.exit(Token::HtmlFlowData); tokenizer.check(blank_line_before, |ok| { let func = if ok { - continuation_close + html_continue_after } else { - continuation_at_line_ending + html_continue_start // continuation_at_line_ending }; Box::new(move |t, c| func(t, c, info)) })(tokenizer, code) |