Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b6a96bbcb | ||
|
|
e47be363e9 | ||
|
|
e3334705cf |
+11
-42
@@ -6,7 +6,7 @@ use crate::tokenizer::Tokenizer;
|
|||||||
pub fn start(tokenizer: &mut Tokenizer) -> State {
|
pub fn start(tokenizer: &mut Tokenizer) -> State {
|
||||||
if matches!(tokenizer.current, Some(b':'))
|
if matches!(tokenizer.current, Some(b':'))
|
||||||
{
|
{
|
||||||
log::debug!("---start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
tokenizer.tokenize_state.marker = tokenizer.current.unwrap();
|
tokenizer.tokenize_state.marker = tokenizer.current.unwrap();
|
||||||
tokenizer.enter(Name::Task);
|
tokenizer.enter(Name::Task);
|
||||||
tokenizer.enter(Name::TaskFence);
|
tokenizer.enter(Name::TaskFence);
|
||||||
@@ -18,7 +18,7 @@ pub fn start(tokenizer: &mut Tokenizer) -> State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn open_sequence(tokenizer: &mut Tokenizer) -> State {
|
pub fn open_sequence(tokenizer: &mut Tokenizer) -> State {
|
||||||
log::debug!("---open_sequence--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---open_sequence--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
if tokenizer.current == Some(tokenizer.tokenize_state.marker) {
|
if tokenizer.current == Some(tokenizer.tokenize_state.marker) {
|
||||||
tokenizer.tokenize_state.size += 1;
|
tokenizer.tokenize_state.size += 1;
|
||||||
tokenizer.consume();
|
tokenizer.consume();
|
||||||
@@ -42,7 +42,7 @@ pub fn open_sequence(tokenizer: &mut Tokenizer) -> State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn content_start(tokenizer: &mut Tokenizer) -> State {
|
pub fn content_start(tokenizer: &mut Tokenizer) -> State {
|
||||||
log::debug!("---content_start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---content_start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
match tokenizer.current {
|
match tokenizer.current {
|
||||||
None | Some(b':') => {
|
None | Some(b':') => {
|
||||||
State::Retry(StateName::TaskContentEnd)
|
State::Retry(StateName::TaskContentEnd)
|
||||||
@@ -55,7 +55,7 @@ pub fn content_start(tokenizer: &mut Tokenizer) -> State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn content_inside(tokenizer: &mut Tokenizer) -> State {
|
pub fn content_inside(tokenizer: &mut Tokenizer) -> State {
|
||||||
log::debug!("---content_inside--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---content_inside--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
match tokenizer.current {
|
match tokenizer.current {
|
||||||
None => {
|
None => {
|
||||||
tokenizer.tokenize_state.marker = 0;
|
tokenizer.tokenize_state.marker = 0;
|
||||||
@@ -73,14 +73,17 @@ pub fn content_inside(tokenizer: &mut Tokenizer) -> State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn content_end(tokenizer: &mut Tokenizer) -> State {
|
pub fn content_end(tokenizer: &mut Tokenizer) -> State {
|
||||||
log::debug!("---content_end--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---content_end--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
match tokenizer.current {
|
match tokenizer.current {
|
||||||
None => {
|
None => {
|
||||||
tokenizer.tokenize_state.marker = 0;
|
tokenizer.tokenize_state.marker = 0;
|
||||||
State::Nok
|
State::Nok
|
||||||
}
|
}
|
||||||
Some(b':') => {
|
Some(b':') => {
|
||||||
State::Retry(StateName::TaskCloseStart)
|
tokenizer.enter(Name::TaskFence);
|
||||||
|
tokenizer.enter(Name::TaskSequence);
|
||||||
|
tokenizer.consume();
|
||||||
|
State::Next(StateName::TaskClose)
|
||||||
}
|
}
|
||||||
Some(_) => {
|
Some(_) => {
|
||||||
unreachable!("expected eof/eol")
|
unreachable!("expected eof/eol")
|
||||||
@@ -88,44 +91,10 @@ pub fn content_end(tokenizer: &mut Tokenizer) -> State {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn close_start(tokenizer: &mut Tokenizer) -> State {
|
pub fn close(tokenizer: &mut Tokenizer) -> State {
|
||||||
log::debug!("---close_start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
// log::debug!("---close_start--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
||||||
if tokenizer.current == Some(tokenizer.tokenize_state.marker) {
|
|
||||||
tokenizer.enter(Name::TaskFence);
|
|
||||||
tokenizer.enter(Name::TaskSequence);
|
|
||||||
State::Retry(StateName::TaskCloseSequence)
|
|
||||||
} else {
|
|
||||||
State::Nok
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn close_sequence(tokenizer: &mut Tokenizer) -> State {
|
|
||||||
log::debug!("---close_sequence--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
|
||||||
if tokenizer.current == Some(tokenizer.tokenize_state.marker) {
|
|
||||||
tokenizer.tokenize_state.size += 1;
|
|
||||||
tokenizer.consume();
|
|
||||||
State::Next(StateName::TaskCloseSequence)
|
|
||||||
} else if tokenizer.tokenize_state.size == 1 {
|
|
||||||
log::debug!("else if");
|
|
||||||
tokenizer.tokenize_state.size = 0;
|
|
||||||
tokenizer.exit(Name::TaskSequence);
|
tokenizer.exit(Name::TaskSequence);
|
||||||
|
|
||||||
State::Retry(StateName::TaskCloseAfter)
|
|
||||||
} else {
|
|
||||||
log::debug!("else");
|
|
||||||
tokenizer.tokenize_state.size = 0;
|
|
||||||
State::Nok
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn close_after(tokenizer: &mut Tokenizer) -> State {
|
|
||||||
log::debug!("---close_after--- {:?} {:?}", tokenizer.tokenize_state.size, tokenizer.current.unwrap() as char);
|
|
||||||
match tokenizer.current {
|
|
||||||
None => State::Nok,
|
|
||||||
_ => {
|
|
||||||
tokenizer.exit(Name::TaskFence);
|
tokenizer.exit(Name::TaskFence);
|
||||||
tokenizer.exit(Name::Task);
|
tokenizer.exit(Name::Task);
|
||||||
State::Ok
|
State::Ok
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
+2
-10
@@ -469,14 +469,10 @@ pub enum Name {
|
|||||||
|
|
||||||
TaskStart,
|
TaskStart,
|
||||||
TaskOpenSequence,
|
TaskOpenSequence,
|
||||||
TaskCloseSequence,
|
|
||||||
// TaskOpenAfter,
|
|
||||||
TaskContentStart,
|
TaskContentStart,
|
||||||
TaskContentInside,
|
TaskContentInside,
|
||||||
TaskContentEnd,
|
TaskContentEnd,
|
||||||
TaskCloseStart,
|
TaskClose,
|
||||||
TaskCloseAfter,
|
|
||||||
// TaskAfter,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::too_many_lines)]
|
#[allow(clippy::too_many_lines)]
|
||||||
@@ -485,14 +481,10 @@ pub fn call(tokenizer: &mut Tokenizer, name: Name) -> State {
|
|||||||
let func = match name {
|
let func = match name {
|
||||||
Name::TaskStart => construct::task::start,
|
Name::TaskStart => construct::task::start,
|
||||||
Name::TaskOpenSequence => construct::task::open_sequence,
|
Name::TaskOpenSequence => construct::task::open_sequence,
|
||||||
// Name::TaskOpenAfter => construct::task::open_after,
|
|
||||||
// Name::TaskAfter => construct::task::after,
|
|
||||||
Name::TaskContentStart => construct::task::content_start,
|
Name::TaskContentStart => construct::task::content_start,
|
||||||
Name::TaskContentInside => construct::task::content_inside,
|
Name::TaskContentInside => construct::task::content_inside,
|
||||||
Name::TaskContentEnd => construct::task::content_end,
|
Name::TaskContentEnd => construct::task::content_end,
|
||||||
Name::TaskCloseStart => construct::task::close_start,
|
Name::TaskClose => construct::task::close,
|
||||||
Name::TaskCloseSequence => construct::task::close_sequence,
|
|
||||||
Name::TaskCloseAfter => construct::task::close_after,
|
|
||||||
|
|
||||||
Name::AttentionStart => construct::attention::start,
|
Name::AttentionStart => construct::attention::start,
|
||||||
Name::AttentionInside => construct::attention::inside,
|
Name::AttentionInside => construct::attention::inside,
|
||||||
|
|||||||
+2
-2
@@ -461,7 +461,7 @@ fn on_enter_block_quote(context: &mut CompileContext) {
|
|||||||
fn on_enter_task(context: &mut CompileContext) {
|
fn on_enter_task(context: &mut CompileContext) {
|
||||||
context.tight_stack.push(false);
|
context.tight_stack.push(false);
|
||||||
// context.line_ending_if_needed();
|
// context.line_ending_if_needed();
|
||||||
context.push("<task-todo>");
|
context.push("<button is=\"task-tracker\">");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Handle [`Enter`][Kind::Enter]:[`CodeIndented`][Name::CodeIndented].
|
/// Handle [`Enter`][Kind::Enter]:[`CodeIndented`][Name::CodeIndented].
|
||||||
@@ -771,7 +771,7 @@ fn on_exit_task(context: &mut CompileContext) {
|
|||||||
context.tight_stack.pop();
|
context.tight_stack.pop();
|
||||||
// context.line_ending_if_needed();
|
// context.line_ending_if_needed();
|
||||||
// context.slurp_one_line_ending = false;
|
// context.slurp_one_line_ending = false;
|
||||||
context.push("</task-todo>");
|
context.push("</button>");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Handle [`Exit`][Kind::Exit]:[`CharacterReferenceMarker`][Name::CharacterReferenceMarker].
|
/// Handle [`Exit`][Kind::Exit]:[`CharacterReferenceMarker`][Name::CharacterReferenceMarker].
|
||||||
|
|||||||
Reference in New Issue
Block a user