aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tokenizer.rs450
1 files changed, 434 insertions, 16 deletions
diff --git a/src/tokenizer.rs b/src/tokenizer.rs
index cb02e21..950c935 100644
--- a/src/tokenizer.rs
+++ b/src/tokenizer.rs
@@ -525,7 +525,7 @@ pub enum TokenType {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`partial_data`][crate::construct::partial_data]
+ /// [`data`][crate::construct::partial_data]
///
/// ## Example
///
@@ -569,7 +569,7 @@ pub enum TokenType {
/// [`LineEnding`][TokenType::LineEnding],
/// [`SpaceOrTab`][TokenType::SpaceOrTab]
/// * **Construct**:
- /// [`partial_label`][crate::construct::partial_label]
+ /// [`label`][crate::construct::partial_label]
///
/// ## Example
///
@@ -587,7 +587,7 @@ pub enum TokenType {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`partial_label`][crate::construct::partial_label]
+ /// [`label`][crate::construct::partial_label]
///
/// ## Example
///
@@ -605,7 +605,7 @@ pub enum TokenType {
/// * **Content model**:
/// [string content][crate::content::string]
/// * **Construct**:
- /// [`partial_label`][crate::construct::partial_label]
+ /// [`label`][crate::construct::partial_label]
///
/// ## Example
///
@@ -642,7 +642,7 @@ pub enum TokenType {
/// [`DefinitionDestinationLiteral`][TokenType::DefinitionDestinationLiteral],
/// [`DefinitionDestinationRaw`][TokenType::DefinitionDestinationRaw]
/// * **Construct**:
- /// [`partial_destination`][crate::construct::partial_destination]
+ /// [`destination`][crate::construct::partial_destination]
///
/// ## Example
///
@@ -663,7 +663,7 @@ pub enum TokenType {
/// [`DefinitionDestinationLiteralMarker`][TokenType::DefinitionDestinationLiteralMarker],
/// [`DefinitionDestinationString`][TokenType::DefinitionDestinationString]
/// * **Construct**:
- /// [`partial_destination`][crate::construct::partial_destination]
+ /// [`destination`][crate::construct::partial_destination]
///
/// ## Example
///
@@ -681,7 +681,7 @@ pub enum TokenType {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`partial_destination`][crate::construct::partial_destination]
+ /// [`destination`][crate::construct::partial_destination]
///
/// ## Example
///
@@ -699,7 +699,7 @@ pub enum TokenType {
/// * **Content model**:
/// [`DefinitionDestinationString`][TokenType::DefinitionDestinationString]
/// * **Construct**:
- /// [`partial_destination`][crate::construct::partial_destination]
+ /// [`destination`][crate::construct::partial_destination]
///
/// ## Example
///
@@ -718,7 +718,7 @@ pub enum TokenType {
/// * **Content model**:
/// [string content][crate::content::string]
/// * **Construct**:
- /// [`partial_destination`][crate::construct::partial_destination]
+ /// [`destination`][crate::construct::partial_destination]
///
/// ## Example
///
@@ -741,7 +741,7 @@ pub enum TokenType {
/// [`LineEnding`][TokenType::LineEnding],
/// [`SpaceOrTab`][TokenType::SpaceOrTab]
/// * **Construct**:
- /// [`partial_title`][crate::construct::partial_title]
+ /// [`title`][crate::construct::partial_title]
///
/// ## Example
///
@@ -759,7 +759,7 @@ pub enum TokenType {
/// * **Content model**:
/// void
/// * **Construct**:
- /// [`partial_title`][crate::construct::partial_title]
+ /// [`title`][crate::construct::partial_title]
///
/// ## Example
///
@@ -777,7 +777,7 @@ pub enum TokenType {
/// * **Content model**:
/// [string content][crate::content::string]
/// * **Construct**:
- /// [`partial_title`][crate::construct::partial_title]
+ /// [`title`][crate::construct::partial_title]
///
/// ## Example
///
@@ -1055,31 +1055,449 @@ pub enum TokenType {
/// ^^^
/// ```
HtmlTextData,
- /// To do,
+ /// Label start (image).
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Label`][TokenType::Label]
+ /// * **Content model**:
+ /// [`LabelImageMarker`][TokenType::LabelImageMarker],
+ /// [`LabelMarker`][TokenType::LabelMarker]
+ /// * **Construct**:
+ /// [`label_start_image`][crate::construct::label_start_image]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c) d
+ /// ^^
+ /// ```
LabelImage,
- /// To do,
+ /// Label start (image) marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`LabelImage`][TokenType::LabelImage]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`label_start_image`][crate::construct::label_start_image]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c) d
+ /// ^
+ /// ```
LabelImageMarker,
- /// To do,
+ /// Label start (link).
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Label`][TokenType::Label]
+ /// * **Content model**:
+ /// [`LabelMarker`][TokenType::LabelMarker]
+ /// * **Construct**:
+ /// [`label_start_link`][crate::construct::label_start_link]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a [b](c) d
+ /// ^
+ /// ```
LabelLink,
- /// To do,
+ /// Label marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`LabelImage`][TokenType::LabelImage],
+ /// [`LabelLink`][TokenType::LabelLink],
+ /// [`LabelEnd`][TokenType::LabelEnd]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`label_start_image`][crate::construct::label_start_image],
+ /// [`label_start_link`][crate::construct::label_start_link],
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c) d
+ /// ^ ^
+ /// > | a [b](c) d
+ /// ^ ^
+ /// ```
LabelMarker,
+ /// Label end.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Label`][TokenType::Label]
+ /// * **Content model**:
+ /// [`LabelMarker`][TokenType::LabelMarker]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c) d
+ /// ^
+ /// > | a [b](c) d
+ /// ^
+ /// ```
LabelEnd,
+ /// Resource.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Image`][TokenType::Image],
+ /// [`Link`][TokenType::Link]
+ /// * **Content model**:
+ /// [`ResourceMarker`][TokenType::ResourceMarker],
+ /// [`ResourceDestination`][TokenType::ResourceDestination],
+ /// [`ResourceTitle`][TokenType::ResourceTitle],
+ /// [`SpaceOrTab`][TokenType::SpaceOrTab],
+ /// [`LineEnding`][TokenType::LineEnding]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c "d") e
+ /// ^^^^^^^
+ /// > | a [b](c) d
+ /// ^^^
+ /// ```
Resource,
+ /// Resource marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Resource`][TokenType::Resource]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c "d") e
+ /// ^ ^
+ /// ```
ResourceMarker,
+ /// Resource destination.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Resource`][TokenType::Resource]
+ /// * **Content model**:
+ /// [`ResourceDestinationLiteral`][TokenType::ResourceDestinationLiteral],
+ /// [`ResourceDestinationRaw`][TokenType::ResourceDestinationRaw]
+ /// * **Construct**:
+ /// [`destination`][crate::construct::partial_destination]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c "d") e
+ /// ^
+ /// ```
ResourceDestination,
+ /// Resource destination literal.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceDestination`][TokenType::ResourceDestination]
+ /// * **Content model**:
+ /// [`ResourceDestinationLiteralMarker`][TokenType::ResourceDestinationLiteralMarker],
+ /// [`ResourceDestinationString`][TokenType::ResourceDestinationString]
+ /// * **Construct**:
+ /// [`destination`][crate::construct::partial_destination]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^^^
+ /// ```
ResourceDestinationLiteral,
+ /// Resource destination literal marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceDestinationLiteral`][TokenType::ResourceDestinationLiteral]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`destination`][crate::construct::partial_destination]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^ ^
+ /// ```
ResourceDestinationLiteralMarker,
+ /// Resource destination raw.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceDestination`][TokenType::ResourceDestination]
+ /// * **Content model**:
+ /// [`ResourceDestinationString`][TokenType::ResourceDestinationString]
+ /// * **Construct**:
+ /// [`destination`][crate::construct::partial_destination]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](c "d") e
+ /// ^
+ /// ```
ResourceDestinationRaw,
+ /// Resource destination raw.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceDestinationLiteral`][TokenType::ResourceDestinationLiteral],
+ /// [`ResourceDestinationRaw`][TokenType::ResourceDestinationRaw]
+ /// * **Content model**:
+ /// [string content][crate::content::string]
+ /// * **Construct**:
+ /// [`destination`][crate::construct::partial_destination]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^
+ /// > | a ![b](c "d") e
+ /// ^
+ /// ```
ResourceDestinationString,
+ /// Resource title.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Resource`][TokenType::Resource]
+ /// * **Content model**:
+ /// [`ResourceTitleMarker`][TokenType::ResourceTitleMarker],
+ /// [`ResourceTitleString`][TokenType::ResourceTitleString]
+ /// * **Construct**:
+ /// [`title`][crate::construct::partial_title]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^^^
+ /// ```
ResourceTitle,
+ /// Resource title marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceTitle`][TokenType::ResourceTitle]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`title`][crate::construct::partial_title]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^ ^
+ /// ```
ResourceTitleMarker,
+ /// Resource title string.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`ResourceTitle`][TokenType::ResourceTitle]
+ /// * **Content model**:
+ /// [string content][crate::content::string]
+ /// * **Construct**:
+ /// [`title`][crate::construct::partial_title]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b](<c> "d") e
+ /// ^
+ /// ```
ResourceTitleString,
+ /// Reference.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Image`][TokenType::Image],
+ /// [`Link`][TokenType::Link]
+ /// * **Content model**:
+ /// [`ReferenceMarker`][TokenType::ReferenceMarker],
+ /// [`ReferenceString`][TokenType::ReferenceString]
+ /// * **Construct**:
+ /// [`label`][crate::construct::partial_label]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b][c] d
+ /// ^^^
+ /// ```
Reference,
+ /// Reference marker.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Reference`][TokenType::Reference]
+ /// * **Content model**:
+ /// void
+ /// * **Construct**:
+ /// [`label`][crate::construct::partial_label]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b][c] d
+ /// ^ ^
+ /// ```
ReferenceMarker,
+ /// Reference string.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Reference`][TokenType::Reference]
+ /// * **Content model**:
+ /// [string content][crate::content::string]
+ /// * **Construct**:
+ /// [`label`][crate::construct::partial_label]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b][c] d
+ /// ^
+ /// ```
ReferenceString,
+ /// Link.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [text content][crate::content::text]
+ /// * **Content model**:
+ /// [`Label`][TokenType::Label],
+ /// [`Resource`][TokenType::Resource],
+ /// [`Reference`][TokenType::Reference]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a [b] c
+ /// ^^^
+ /// > | a [b][c] d
+ /// ^^^^^^
+ /// > | a [b](c) d
+ /// ^^^^^^
+ /// ```
Link,
+ /// Image.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [text content][crate::content::text]
+ /// * **Content model**:
+ /// [`Label`][TokenType::Label],
+ /// [`Resource`][TokenType::Resource],
+ /// [`Reference`][TokenType::Reference]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a ![b] c
+ /// ^^^^
+ /// > | a ![b][c] d
+ /// ^^^^^^^
+ /// > | a ![b](c) d
+ /// ^^^^^^^
+ /// ```
Image,
+ /// Label.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Image`][TokenType::Image],
+ /// [`Link`][TokenType::Link]
+ /// * **Content model**:
+ /// [`LabelImage`][TokenType::LabelImage],
+ /// [`LabelLink`][TokenType::LabelLink],
+ /// [`LabelEnd`][TokenType::LabelEnd],
+ /// [`LabelText`][TokenType::LabelText]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a [b] c
+ /// ^^^
+ /// > | a ![b][c] d
+ /// ^^^^
+ /// > | a [b](c) d
+ /// ^^^
+ /// ```
Label,
+ /// Label text.
+ ///
+ /// ## Info
+ ///
+ /// * **Context**:
+ /// [`Label`][TokenType::Label]
+ /// * **Content model**:
+ /// [text content][crate::content::text]
+ /// * **Construct**:
+ /// [`label_end`][crate::construct::label_end]
+ ///
+ /// ## Example
+ ///
+ /// ```markdown
+ /// > | a [b] c
+ /// ^
+ /// > | a ![b][c] d
+ /// ^
+ /// > | a [b](c) d
+ /// ^
+ /// ```
LabelText,
/// Line ending.
///