aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/constant.rs5
-rw-r--r--src/construct/blank_line.rs4
-rw-r--r--src/construct/list_item.rs (renamed from src/construct/list.rs)42
-rw-r--r--src/construct/mod.rs4
-rw-r--r--src/construct/thematic_break.rs4
-rw-r--r--src/content/document.rs6
-rw-r--r--src/event.rs12
-rw-r--r--src/lib.rs6
-rw-r--r--src/resolve.rs2
-rw-r--r--src/state.rs60
10 files changed, 73 insertions, 72 deletions
diff --git a/src/constant.rs b/src/constant.rs
index 6ef851c..47cb50c 100644
--- a/src/constant.rs
+++ b/src/constant.rs
@@ -202,7 +202,8 @@ pub const HTML_RAW_SIZE_MAX: usize = 8;
/// To safeguard performance, labels are capped at a large number: `999`.
pub const LINK_REFERENCE_SIZE_MAX: usize = 999;
-/// The max number of decimals allowed to form an (ordered) [list][] item.
+/// The max number of decimals allowed to form an (ordered)
+/// [list item][list-item].
///
/// `CommonMark` caps this at 10 digits (9 is fine, 10 not).
/// This limit is imposed because bigger numbers result in integer overflows
@@ -212,7 +213,7 @@ pub const LINK_REFERENCE_SIZE_MAX: usize = 999;
///
/// * [*§ 5.2 List items* in `CommonMark`](https://spec.commonmark.org/0.30/#ordered-list-marker)
///
-/// [list]: crate::construct::list
+/// [list-item]: crate::construct::list_item
pub const LIST_ITEM_VALUE_SIZE_MAX: usize = 10;
/// Maximum allowed unbalanced parens in destination.
diff --git a/src/construct/blank_line.rs b/src/construct/blank_line.rs
index 7f1d023..87d257d 100644
--- a/src/construct/blank_line.rs
+++ b/src/construct/blank_line.rs
@@ -12,7 +12,7 @@
//! such as between two [heading (atx)][heading-atx]s.
//! Sometimes, whether blank lines are present, changes the behavior of how
//! HTML is rendered, such as whether blank lines are present between list
-//! items in a [list][].
+//! items in a [list][list-item].
//! More than one blank line is never needed in `CommonMark`.
//!
//! Because blank lines can be empty (line endings are not considered part of
@@ -28,7 +28,7 @@
//! * [*§ 4.9 Blank lines* in `CommonMark`](https://spec.commonmark.org/0.30/#blank-lines)
//!
//! [heading-atx]: crate::construct::heading_atx
-//! [list]: crate::construct::list
+//! [list-item]: crate::construct::list_item
//! [paragraph]: crate::construct::paragraph
//! [flow]: crate::content::flow
diff --git a/src/construct/list.rs b/src/construct/list_item.rs
index 596330c..5161254 100644
--- a/src/construct/list.rs
+++ b/src/construct/list_item.rs
@@ -1,4 +1,4 @@
-//! List is a construct that occurs in the [document][] content type.
+//! List item is a construct that occurs in the [document][] content type.
//!
//! It forms with, roughly, the following BNF:
//!
@@ -62,11 +62,11 @@ use crate::util::{
/// ^
/// ```
pub fn start(tokenizer: &mut Tokenizer) -> State {
- if tokenizer.parse_state.constructs.list {
+ if tokenizer.parse_state.constructs.list_item {
tokenizer.enter(Name::ListItem);
if matches!(tokenizer.current, Some(b'\t' | b' ')) {
- tokenizer.attempt(State::Next(StateName::ListBefore), State::Nok);
+ tokenizer.attempt(State::Next(StateName::ListItemBefore), State::Nok);
State::Retry(space_or_tab_min_max(
tokenizer,
0,
@@ -77,7 +77,7 @@ pub fn start(tokenizer: &mut Tokenizer) -> State {
},
))
} else {
- State::Retry(StateName::ListBefore)
+ State::Retry(StateName::ListItemBefore)
}
} else {
State::Nok
@@ -93,16 +93,16 @@ pub fn start(tokenizer: &mut Tokenizer) -> State {
pub fn before(tokenizer: &mut Tokenizer) -> State {
// Unordered.
if matches!(tokenizer.current, Some(b'*' | b'-')) {
- tokenizer.check(State::Nok, State::Next(StateName::ListBeforeUnordered));
+ tokenizer.check(State::Nok, State::Next(StateName::ListItemBeforeUnordered));
State::Retry(StateName::ThematicBreakStart)
} else if tokenizer.current == Some(b'+') {
- State::Retry(StateName::ListBeforeUnordered)
+ State::Retry(StateName::ListItemBeforeUnordered)
}
// Ordered.
else if tokenizer.current == Some(b'1')
|| (matches!(tokenizer.current, Some(b'0'..=b'9')) && !tokenizer.interrupt)
{
- State::Retry(StateName::ListBeforeOrdered)
+ State::Retry(StateName::ListItemBeforeOrdered)
} else {
State::Nok
}
@@ -118,7 +118,7 @@ pub fn before(tokenizer: &mut Tokenizer) -> State {
/// ```
pub fn before_unordered(tokenizer: &mut Tokenizer) -> State {
tokenizer.enter(Name::ListItemPrefix);
- State::Retry(StateName::ListMarker)
+ State::Retry(StateName::ListItemMarker)
}
/// At ordered list item value.
@@ -130,7 +130,7 @@ pub fn before_unordered(tokenizer: &mut Tokenizer) -> State {
pub fn before_ordered(tokenizer: &mut Tokenizer) -> State {
tokenizer.enter(Name::ListItemPrefix);
tokenizer.enter(Name::ListItemValue);
- State::Retry(StateName::ListValue)
+ State::Retry(StateName::ListItemValue)
}
/// In ordered list item value.
@@ -144,13 +144,13 @@ pub fn value(tokenizer: &mut Tokenizer) -> State {
&& (!tokenizer.interrupt || tokenizer.tokenize_state.size < 2)
{
tokenizer.exit(Name::ListItemValue);
- State::Retry(StateName::ListMarker)
+ State::Retry(StateName::ListItemMarker)
} else if matches!(tokenizer.current, Some(b'0'..=b'9'))
&& tokenizer.tokenize_state.size + 1 < LIST_ITEM_VALUE_SIZE_MAX
{
tokenizer.tokenize_state.size += 1;
tokenizer.consume();
- State::Next(StateName::ListValue)
+ State::Next(StateName::ListItemValue)
} else {
tokenizer.tokenize_state.size = 0;
State::Nok
@@ -169,7 +169,7 @@ pub fn marker(tokenizer: &mut Tokenizer) -> State {
tokenizer.enter(Name::ListItemMarker);
tokenizer.consume();
tokenizer.exit(Name::ListItemMarker);
- State::Next(StateName::ListMarkerAfter)
+ State::Next(StateName::ListItemMarkerAfter)
}
/// After list item marker.
@@ -183,8 +183,8 @@ pub fn marker(tokenizer: &mut Tokenizer) -> State {
pub fn marker_after(tokenizer: &mut Tokenizer) -> State {
tokenizer.tokenize_state.size = 1;
tokenizer.check(
- State::Next(StateName::ListAfter),
- State::Next(StateName::ListMarkerAfterFilled),
+ State::Next(StateName::ListItemAfter),
+ State::Next(StateName::ListItemMarkerAfterFilled),
);
State::Retry(StateName::BlankLineStart)
}
@@ -202,10 +202,10 @@ pub fn marker_after_filled(tokenizer: &mut Tokenizer) -> State {
// Attempt to parse up to the largest allowed indent, `nok` if there is more whitespace.
tokenizer.attempt(
- State::Next(StateName::ListAfter),
- State::Next(StateName::ListPrefixOther),
+ State::Next(StateName::ListItemAfter),
+ State::Next(StateName::ListItemPrefixOther),
);
- State::Retry(StateName::ListWhitespace)
+ State::Retry(StateName::ListItemWhitespace)
}
/// After marker, at whitespace.
@@ -215,7 +215,7 @@ pub fn marker_after_filled(tokenizer: &mut Tokenizer) -> State {
/// ^
/// ```
pub fn whitespace(tokenizer: &mut Tokenizer) -> State {
- tokenizer.attempt(State::Next(StateName::ListWhitespaceAfter), State::Nok);
+ tokenizer.attempt(State::Next(StateName::ListItemWhitespaceAfter), State::Nok);
State::Retry(space_or_tab_min_max(tokenizer, 1, TAB_SIZE))
}
@@ -245,7 +245,7 @@ pub fn prefix_other(tokenizer: &mut Tokenizer) -> State {
tokenizer.enter(Name::SpaceOrTab);
tokenizer.consume();
tokenizer.exit(Name::SpaceOrTab);
- State::Next(StateName::ListAfter)
+ State::Next(StateName::ListItemAfter)
}
_ => State::Nok,
}
@@ -303,8 +303,8 @@ pub fn after(tokenizer: &mut Tokenizer) -> State {
/// ```
pub fn cont_start(tokenizer: &mut Tokenizer) -> State {
tokenizer.check(
- State::Next(StateName::ListContBlank),
- State::Next(StateName::ListContFilled),
+ State::Next(StateName::ListItemContBlank),
+ State::Next(StateName::ListItemContFilled),
);
State::Retry(StateName::BlankLineStart)
}
diff --git a/src/construct/mod.rs b/src/construct/mod.rs
index 0adf611..566bb30 100644
--- a/src/construct/mod.rs
+++ b/src/construct/mod.rs
@@ -32,7 +32,7 @@
//! * [label end][label_end]
//! * [label start (image)][label_start_image]
//! * [label start (link)][label_start_link]
-//! * [list][]
+//! * [list item][list_item]
//! * [paragraph][]
//! * [thematic break][thematic_break]
//!
@@ -84,7 +84,7 @@ pub mod html_text;
pub mod label_end;
pub mod label_start_image;
pub mod label_start_link;
-pub mod list;
+pub mod list_item;
pub mod paragraph;
pub mod partial_bom;
pub mod partial_data;
diff --git a/src/construct/thematic_break.rs b/src/construct/thematic_break.rs
index f493b96..1b581ea 100644
--- a/src/construct/thematic_break.rs
+++ b/src/construct/thematic_break.rs
@@ -20,7 +20,7 @@
//! As using more than three markers has no effect other than wasting space,
//! it is recommended to use exactly three markers.
//! Thematic breaks formed with asterisks or dashes can interfere with
-//! [list][]s if there is whitespace between them: `* * *` and `- - -`.
+//! [list][list-item]s if there is whitespace between them: `* * *` and `- - -`.
//! For these reasons, it is recommend to not use spaces or tabs between the
//! markers.
//! Thematic breaks formed with dashes (without whitespace) can also form
@@ -45,7 +45,7 @@
//!
//! [flow]: crate::content::flow
//! [heading_setext]: crate::construct::heading_setext
-//! [list]: crate::construct::list
+//! [list-item]: crate::construct::list_item
//! [html]: https://html.spec.whatwg.org/multipage/grouping-content.html#the-hr-element
use super::partial_space_or_tab::{space_or_tab, space_or_tab_min_max};
diff --git a/src/content/document.rs b/src/content/document.rs
index 41d60e2..f90aea7 100644
--- a/src/content/document.rs
+++ b/src/content/document.rs
@@ -6,7 +6,7 @@
//! The constructs found in flow are:
//!
//! * [Block quote][crate::construct::block_quote]
-//! * [List][crate::construct::list]
+//! * [List][crate::construct::list_item]
use crate::event::{Content, Event, Kind, Link, Name, Point};
use crate::parser::ParseState;
@@ -103,7 +103,7 @@ pub fn container_existing_before(tokenizer: &mut Tokenizer) -> State {
let name = match container.kind {
Container::BlockQuote => StateName::BlockQuoteContStart,
- Container::ListItem => StateName::ListContStart,
+ Container::ListItem => StateName::ListItemContStart,
};
tokenizer.attempt(
@@ -201,7 +201,7 @@ pub fn container_new_before_not_block_quote(tokenizer: &mut Tokenizer) -> State
State::Next(StateName::DocumentContainerNewAfter),
State::Next(StateName::DocumentContainerNewBeforeNotList),
);
- State::Retry(StateName::ListStart)
+ State::Retry(StateName::ListItemStart)
}
/// At new container, but not a list (or block quote).
diff --git a/src/event.rs b/src/event.rs
index be32b5b..8cdb959 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -1332,7 +1332,7 @@ pub enum Name {
/// [`ListItemPrefix`][Name::ListItemPrefix],
/// [flow content][crate::content::flow]
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
@@ -1352,7 +1352,7 @@ pub enum Name {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
@@ -1374,7 +1374,7 @@ pub enum Name {
/// [`ListItemValue`][Name::ListItemValue],
/// [`SpaceOrTab`][Name::SpaceOrTab]
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
@@ -1394,7 +1394,7 @@ pub enum Name {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
@@ -1416,7 +1416,7 @@ pub enum Name {
/// [`LineEnding`][Name::LineEnding],
/// [`SpaceOrTab`][Name::SpaceOrTab]
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
@@ -1440,7 +1440,7 @@ pub enum Name {
/// [`LineEnding`][Name::LineEnding],
/// [`SpaceOrTab`][Name::SpaceOrTab]
/// * **Construct**:
- /// [`list`][crate::construct::list]
+ /// [`list item`][crate::construct::list_item]
///
/// ## Example
///
diff --git a/src/lib.rs b/src/lib.rs
index 24a794b..f9f5326 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -218,13 +218,13 @@ pub struct Constructs {
/// ^^^^
/// ```
pub label_end: bool,
- /// List.
+ /// List items.
///
/// ```markdown
/// > | * a
/// ^^^
/// ```
- pub list: bool,
+ pub list_item: bool,
/// Thematic break.
///
/// ```markdown
@@ -256,7 +256,7 @@ impl Default for Constructs {
label_start_image: true,
label_start_link: true,
label_end: true,
- list: true,
+ list_item: true,
thematic_break: true,
}
}
diff --git a/src/resolve.rs b/src/resolve.rs
index e7d63f9..edc92b2 100644
--- a/src/resolve.rs
+++ b/src/resolve.rs
@@ -23,7 +23,7 @@ pub fn call(tokenizer: &mut Tokenizer, name: Name) {
Name::Attention => construct::attention::resolve,
Name::HeadingAtx => construct::heading_atx::resolve,
Name::HeadingSetext => construct::heading_setext::resolve,
- Name::List => construct::list::resolve,
+ Name::List => construct::list_item::resolve,
Name::Paragraph => construct::paragraph::resolve,
Name::Data => construct::partial_data::resolve,
Name::String => content::string::resolve,
diff --git a/src/state.rs b/src/state.rs
index 006ffe1..344a31e 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -240,21 +240,21 @@ pub enum Name {
LabelStartLinkStart,
- ListStart,
- ListBefore,
- ListBeforeOrdered,
- ListBeforeUnordered,
- ListValue,
- ListMarker,
- ListMarkerAfter,
- ListAfter,
- ListMarkerAfterFilled,
- ListWhitespace,
- ListPrefixOther,
- ListWhitespaceAfter,
- ListContStart,
- ListContBlank,
- ListContFilled,
+ ListItemStart,
+ ListItemBefore,
+ ListItemBeforeOrdered,
+ ListItemBeforeUnordered,
+ ListItemValue,
+ ListItemMarker,
+ ListItemMarkerAfter,
+ ListItemAfter,
+ ListItemMarkerAfterFilled,
+ ListItemWhitespace,
+ ListItemPrefixOther,
+ ListItemWhitespaceAfter,
+ ListItemContStart,
+ ListItemContBlank,
+ ListItemContFilled,
NonLazyContinuationStart,
NonLazyContinuationAfter,
@@ -552,21 +552,21 @@ pub fn call(tokenizer: &mut Tokenizer, name: Name) -> State {
Name::LabelStartImageOpen => construct::label_start_image::open,
Name::LabelStartLinkStart => construct::label_start_link::start,
- Name::ListStart => construct::list::start,
- Name::ListBefore => construct::list::before,
- Name::ListBeforeOrdered => construct::list::before_ordered,
- Name::ListBeforeUnordered => construct::list::before_unordered,
- Name::ListValue => construct::list::value,
- Name::ListMarker => construct::list::marker,
- Name::ListMarkerAfter => construct::list::marker_after,
- Name::ListAfter => construct::list::after,
- Name::ListMarkerAfterFilled => construct::list::marker_after_filled,
- Name::ListWhitespace => construct::list::whitespace,
- Name::ListWhitespaceAfter => construct::list::whitespace_after,
- Name::ListPrefixOther => construct::list::prefix_other,
- Name::ListContStart => construct::list::cont_start,
- Name::ListContBlank => construct::list::cont_blank,
- Name::ListContFilled => construct::list::cont_filled,
+ Name::ListItemStart => construct::list_item::start,
+ Name::ListItemBefore => construct::list_item::before,
+ Name::ListItemBeforeOrdered => construct::list_item::before_ordered,
+ Name::ListItemBeforeUnordered => construct::list_item::before_unordered,
+ Name::ListItemValue => construct::list_item::value,
+ Name::ListItemMarker => construct::list_item::marker,
+ Name::ListItemMarkerAfter => construct::list_item::marker_after,
+ Name::ListItemAfter => construct::list_item::after,
+ Name::ListItemMarkerAfterFilled => construct::list_item::marker_after_filled,
+ Name::ListItemWhitespace => construct::list_item::whitespace,
+ Name::ListItemWhitespaceAfter => construct::list_item::whitespace_after,
+ Name::ListItemPrefixOther => construct::list_item::prefix_other,
+ Name::ListItemContStart => construct::list_item::cont_start,
+ Name::ListItemContBlank => construct::list_item::cont_blank,
+ Name::ListItemContFilled => construct::list_item::cont_filled,
Name::NonLazyContinuationStart => construct::partial_non_lazy_continuation::start,
Name::NonLazyContinuationAfter => construct::partial_non_lazy_continuation::after,