Skip to content

Commit 0be7464

Browse files
committed
Refactor some code
1 parent 35cbee9 commit 0be7464

File tree

10 files changed

+39
-25
lines changed

10 files changed

+39
-25
lines changed

src/construct/autolink.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ use crate::state::{Name as StateName, State};
126126
use crate::tokenizer::Tokenizer;
127127
use crate::util::constant::{AUTOLINK_DOMAIN_SIZE_MAX, AUTOLINK_SCHEME_SIZE_MAX};
128128

129-
/// Start of autolink.
129+
/// Start of an autolink.
130130
///
131131
/// ```markdown
132132
/// > | a<https://example.com>b
@@ -205,8 +205,8 @@ pub fn scheme_inside_or_email_atext(tokenizer: &mut Tokenizer) -> State {
205205
Some(b'+' | b'-' | b'.' | b'0'..=b'9' | b'A'..=b'Z' | b'a'..=b'z')
206206
if tokenizer.tokenize_state.size < AUTOLINK_SCHEME_SIZE_MAX =>
207207
{
208-
tokenizer.tokenize_state.size += 1;
209208
tokenizer.consume();
209+
tokenizer.tokenize_state.size += 1;
210210
State::Next(StateName::AutolinkSchemeInsideOrEmailAtext)
211211
}
212212
_ => {
@@ -305,12 +305,11 @@ pub fn email_at_sign_or_dot(tokenizer: &mut Tokenizer) -> State {
305305
pub fn email_label(tokenizer: &mut Tokenizer) -> State {
306306
match tokenizer.current {
307307
Some(b'.') => {
308-
tokenizer.tokenize_state.size = 0;
309308
tokenizer.consume();
309+
tokenizer.tokenize_state.size = 0;
310310
State::Next(StateName::AutolinkEmailAtSignOrDot)
311311
}
312312
Some(b'>') => {
313-
tokenizer.tokenize_state.size = 0;
314313
let index = tokenizer.events.len();
315314
tokenizer.exit(Name::AutolinkProtocol);
316315
// Change the event name.
@@ -320,6 +319,7 @@ pub fn email_label(tokenizer: &mut Tokenizer) -> State {
320319
tokenizer.consume();
321320
tokenizer.exit(Name::AutolinkMarker);
322321
tokenizer.exit(Name::Autolink);
322+
tokenizer.tokenize_state.size = 0;
323323
State::Ok
324324
}
325325
_ => State::Retry(StateName::AutolinkEmailValue),

src/construct/content.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use crate::subtokenize::{subtokenize, Subresult};
3030
use crate::tokenizer::Tokenizer;
3131
use alloc::{string::String, vec};
3232

33-
/// Before a content content.
33+
/// Before a content chunk.
3434
///
3535
/// ```markdown
3636
/// > | abc

src/construct/html_flow.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ pub fn open(tokenizer: &mut Tokenizer) -> State {
197197
State::Next(StateName::HtmlFlowTagCloseStart)
198198
}
199199
Some(b'?') => {
200-
tokenizer.tokenize_state.marker = INSTRUCTION;
201200
tokenizer.consume();
201+
tokenizer.tokenize_state.marker = INSTRUCTION;
202202
// Do not form containers.
203203
tokenizer.concrete = true;
204204
// While we’re in an instruction instead of a declaration, we’re on a `?`
@@ -273,8 +273,8 @@ pub fn comment_open_inside(tokenizer: &mut Tokenizer) -> State {
273273
/// ```
274274
pub fn cdata_open_inside(tokenizer: &mut Tokenizer) -> State {
275275
if tokenizer.current == Some(HTML_CDATA_PREFIX[tokenizer.tokenize_state.size]) {
276-
tokenizer.tokenize_state.size += 1;
277276
tokenizer.consume();
277+
tokenizer.tokenize_state.size += 1;
278278

279279
if tokenizer.tokenize_state.size == HTML_CDATA_PREFIX.len() {
280280
tokenizer.tokenize_state.size = 0;
@@ -531,8 +531,8 @@ pub fn complete_attribute_value_before(tokenizer: &mut Tokenizer) -> State {
531531
/// ```
532532
pub fn complete_attribute_value_quoted(tokenizer: &mut Tokenizer) -> State {
533533
if tokenizer.current == Some(tokenizer.tokenize_state.marker_b) {
534-
tokenizer.tokenize_state.marker_b = 0;
535534
tokenizer.consume();
535+
tokenizer.tokenize_state.marker_b = 0;
536536
State::Next(StateName::HtmlFlowCompleteAttributeValueQuotedAfter)
537537
} else if matches!(tokenizer.current, None | Some(b'\n')) {
538538
tokenizer.tokenize_state.marker = 0;
@@ -640,8 +640,7 @@ pub fn continuation(tokenizer: &mut Tokenizer) -> State {
640640
} else if tokenizer.tokenize_state.marker == CDATA && tokenizer.current == Some(b']') {
641641
tokenizer.consume();
642642
State::Next(StateName::HtmlFlowContinuationCdataInside)
643-
} else if (tokenizer.tokenize_state.marker == BASIC
644-
|| tokenizer.tokenize_state.marker == COMPLETE)
643+
} else if matches!(tokenizer.tokenize_state.marker, BASIC | COMPLETE)
645644
&& tokenizer.current == Some(b'\n')
646645
{
647646
tokenizer.exit(Name::HtmlFlowData);

src/construct/html_text.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ use crate::state::{Name as StateName, State};
5757
use crate::tokenizer::Tokenizer;
5858
use crate::util::constant::HTML_CDATA_PREFIX;
5959

60-
/// Start of HTML (text)
60+
/// Start of HTML (text).
6161
///
6262
/// ```markdown
6363
/// > | a <b> c
@@ -606,7 +606,7 @@ pub fn tag_open_attribute_value_unquoted(tokenizer: &mut Tokenizer) -> State {
606606
/// ```
607607
pub fn tag_open_attribute_value_quoted_after(tokenizer: &mut Tokenizer) -> State {
608608
match tokenizer.current {
609-
Some(b'\t' | b'\n' | b' ' | b'>' | b'/') => State::Retry(StateName::HtmlTextTagOpenBetween),
609+
Some(b'\t' | b'\n' | b' ' | b'/' | b'>') => State::Retry(StateName::HtmlTextTagOpenBetween),
610610
_ => State::Nok,
611611
}
612612
}

src/construct/label_end.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ pub fn resource_title_after(tokenizer: &mut Tokenizer) -> State {
529529

530530
if matches!(tokenizer.current, Some(b'\t' | b'\n' | b' ')) {
531531
tokenizer.attempt(
532-
State::Next(StateName::LabelEndResourceBetween),
532+
State::Next(StateName::LabelEndResourceEnd),
533533
State::Next(StateName::LabelEndResourceEnd),
534534
);
535535
State::Retry(space_or_tab_eol(tokenizer))
@@ -571,7 +571,7 @@ pub fn reference_full(tokenizer: &mut Tokenizer) -> State {
571571
tokenizer.tokenize_state.token_3 = Name::ReferenceString;
572572
tokenizer.attempt(
573573
State::Next(StateName::LabelEndReferenceFullAfter),
574-
State::Nok,
574+
State::Next(StateName::LabelEndReferenceFullMissing)
575575
);
576576
State::Retry(StateName::LabelStart)
577577
}
@@ -615,6 +615,19 @@ pub fn reference_full_after(tokenizer: &mut Tokenizer) -> State {
615615
}
616616
}
617617

618+
/// In reference (full) that was missing.
619+
///
620+
/// ```markdown
621+
/// > | [a][b d
622+
/// ^
623+
/// ```
624+
pub fn reference_full_missing(tokenizer: &mut Tokenizer) -> State {
625+
tokenizer.tokenize_state.token_1 = Name::Data;
626+
tokenizer.tokenize_state.token_2 = Name::Data;
627+
tokenizer.tokenize_state.token_3 = Name::Data;
628+
State::Nok
629+
}
630+
618631
/// In reference (collapsed), at `[`.
619632
///
620633
/// > 👉 **Note**: we only get here if the label is defined.

src/construct/label_start_image.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ pub fn open(tokenizer: &mut Tokenizer) -> State {
6868
tokenizer.enter(Name::LabelMarker);
6969
tokenizer.consume();
7070
tokenizer.exit(Name::LabelMarker);
71+
tokenizer.exit(Name::LabelImage);
7172
State::Next(StateName::LabelStartImageAfter)
7273
}
7374
_ => State::Nok,
@@ -107,7 +108,6 @@ pub fn after(tokenizer: &mut Tokenizer) -> State {
107108
{
108109
State::Nok
109110
} else {
110-
tokenizer.exit(Name::LabelImage);
111111
tokenizer.tokenize_state.label_starts.push(LabelStart {
112112
kind: LabelKind::Image,
113113
start: (tokenizer.events.len() - 6, tokenizer.events.len() - 1),

src/construct/raw_flow.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ pub fn meta(tokenizer: &mut Tokenizer) -> State {
434434
}
435435
}
436436

437-
/// At eol/eof in code, before a non-lazy closing fence or content.
437+
/// At eol/eof in raw, before a non-lazy closing fence or content.
438438
///
439439
/// ```markdown
440440
/// > | ~~~js
@@ -552,7 +552,7 @@ pub fn sequence_close_after(tokenizer: &mut Tokenizer) -> State {
552552
}
553553
}
554554

555-
/// Before closing fence, at eol.
555+
/// Before raw content, not a closing fence, at eol.
556556
///
557557
/// ```markdown
558558
/// | ~~~js
@@ -567,7 +567,7 @@ pub fn content_before(tokenizer: &mut Tokenizer) -> State {
567567
State::Next(StateName::RawFlowContentStart)
568568
}
569569

570-
/// Before code content, definitely not before a closing fence.
570+
/// Before raw content, not a closing fence.
571571
///
572572
/// ```markdown
573573
/// | ~~~js
@@ -591,7 +591,7 @@ pub fn content_start(tokenizer: &mut Tokenizer) -> State {
591591
}
592592
}
593593

594-
/// Before code content, after optional prefix.
594+
/// Before raw content, after optional prefix.
595595
///
596596
/// ```markdown
597597
/// | ~~~js
@@ -615,7 +615,7 @@ pub fn before_content_chunk(tokenizer: &mut Tokenizer) -> State {
615615
}
616616
}
617617

618-
/// In code content.
618+
/// In raw content.
619619
///
620620
/// ```markdown
621621
/// | ~~~js

src/construct/raw_text.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ pub fn sequence_open(tokenizer: &mut Tokenizer) -> State {
185185
}
186186
}
187187

188-
/// Between something and something else
188+
/// Between something and something else.
189189
///
190190
/// ```markdown
191191
/// > | `a`

src/state.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ pub enum Name {
316316
LabelEndNok,
317317
LabelEndReferenceFull,
318318
LabelEndReferenceFullAfter,
319+
LabelEndReferenceFullMissing,
319320
LabelEndReferenceNotFull,
320321
LabelEndReferenceCollapsed,
321322
LabelEndReferenceCollapsedOpen,
@@ -801,6 +802,7 @@ pub fn call(tokenizer: &mut Tokenizer, name: Name) -> State {
801802
Name::LabelEndNok => construct::label_end::nok,
802803
Name::LabelEndReferenceFull => construct::label_end::reference_full,
803804
Name::LabelEndReferenceFullAfter => construct::label_end::reference_full_after,
805+
Name::LabelEndReferenceFullMissing => construct::label_end::reference_full_missing,
804806
Name::LabelEndReferenceNotFull => construct::label_end::reference_not_full,
805807
Name::LabelEndReferenceCollapsed => construct::label_end::reference_collapsed,
806808
Name::LabelEndReferenceCollapsedOpen => construct::label_end::reference_collapsed_open,

src/util/character_reference.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use core::str;
1515
/// [`CHARACTER_REFERENCES`][] (or [`CHARACTER_REFERENCES_HTML_4`][]) and then
1616
/// takes the corresponding value from `1`.
1717
///
18-
/// The `html5` boolean us used for named character references, and specifier
18+
/// The `html5` boolean is used for named character references, and specifier
1919
/// whether the 2125 names from HTML 5 or the 252 names from HTML 4 are
2020
/// supported.
2121
///
@@ -82,9 +82,9 @@ pub fn decode_named(value: &str, html5: bool) -> Option<String> {
8282
pub fn decode_numeric(value: &str, radix: u32) -> String {
8383
if let Some(char) = char::from_u32(u32::from_str_radix(value, radix).unwrap()) {
8484
if !matches!(char,
85-
// C0 except for HT, LF, FF, CR, space
85+
// C0 except for HT, LF, FF, CR, space.
8686
'\0'..='\u{08}' | '\u{0B}' | '\u{0E}'..='\u{1F}' |
87-
// Control character (DEL) of c0, and C1 controls.
87+
// Control character (DEL) of C0, and C1 controls.
8888
'\u{7F}'..='\u{9F}'
8989
// Lone surrogates, noncharacters, and out of range are handled by
9090
// Rust.
@@ -104,7 +104,7 @@ pub fn decode_numeric(value: &str, radix: u32) -> String {
104104
/// The marker specifies the format: `#` for hexadecimal, `x` for decimal, and
105105
/// `&` for named.
106106
///
107-
/// The `html5` boolean us used for named character references, and specifier
107+
/// The `html5` boolean is used for named character references, and specifier
108108
/// whether the 2125 names from HTML 5 or the 252 names from HTML 4 are
109109
/// supported.
110110
///

0 commit comments

Comments
 (0)