diff --git a/src/construct/wikilink.rs b/src/construct/wikilink.rs index a5a517a..76438e3 100644 --- a/src/construct/wikilink.rs +++ b/src/construct/wikilink.rs @@ -26,17 +26,21 @@ use crate::tokenizer::{Label, LabelKind, LabelStart, Tokenizer}; /// ^ /// ``` pub fn start(tokenizer: &mut Tokenizer) -> State { - let start_conditions = - tokenizer.parse_state.options.constructs.wikilink && tokenizer.current == Some(b'['); + if !tokenizer.parse_state.options.constructs.wikilink { + return State::Retry(MoveName::TextBeforeLabelStartLink); + } + + let start_conditions = tokenizer.current == Some(b'['); if start_conditions && tokenizer.tokenize_state.size == 0 { tokenizer.tokenize_state.size += 1; tokenizer.attempt( State::Next(MoveName::WikilinkStart), - State::Next(MoveName::TextBeforeLabelStartLink), + State::Retry(MoveName::TextBeforeLabelStartLink), ); + tokenizer.consume(); - return State::Ok; + State::Ok } else if start_conditions && tokenizer.tokenize_state.size == 1 { tokenizer.tokenize_state.size = 0; let start = tokenizer.events.len(); @@ -57,7 +61,8 @@ pub fn start(tokenizer: &mut Tokenizer) -> State { tokenizer.tokenize_state.size = 0; // Resume the "regular" sequence of state transitions - State::Retry(MoveName::TextBeforeLabelStartLink) + State::Nok + // State::Retry(MoveName::TextBeforeLabelStartLink) } }