diff options
Diffstat (limited to 'src/construct')
-rw-r--r-- | src/construct/autolink.rs | 5 | ||||
-rw-r--r-- | src/construct/definition.rs | 23 | ||||
-rw-r--r-- | src/construct/label_end.rs | 6 | ||||
-rw-r--r-- | src/construct/partial_destination.rs | 2 | ||||
-rw-r--r-- | src/construct/partial_label.rs | 16 | ||||
-rw-r--r-- | src/construct/partial_title.rs | 5 |
6 files changed, 29 insertions, 28 deletions
diff --git a/src/construct/autolink.rs b/src/construct/autolink.rs index e94066b..6486a2d 100644 --- a/src/construct/autolink.rs +++ b/src/construct/autolink.rs @@ -62,8 +62,8 @@ //! are not considered HTML. //! //! While `CommonMark` restricts links from occurring in other links in the -//! case of bracketed links, this restriction is not in place for autolinks -//! inside autolinks: +//! case of labels (see [label end][label_end]), this restriction is not in +//! place for autolinks inside labels: //! //! ```markdown //! [<https://example.com>](#) @@ -95,6 +95,7 @@ //! * [*§ 6.4 Autolinks* in `CommonMark`](https://spec.commonmark.org/0.30/#autolinks) //! //! [text]: crate::content::text +//! [label_end]: crate::construct::label_end //! [autolink_scheme_size_max]: crate::constant::AUTOLINK_SCHEME_SIZE_MAX //! [autolink_domain_size_max]: crate::constant::AUTOLINK_DOMAIN_SIZE_MAX //! [sanitize_uri]: crate::util::sanitize_uri diff --git a/src/construct/definition.rs b/src/construct/definition.rs index 6a3aceb..5e80a93 100644 --- a/src/construct/definition.rs +++ b/src/construct/definition.rs @@ -5,22 +5,20 @@ //! ```bnf //! definition ::= label ':' whitespace destination [ whitespace title ] [ space_or_tab ] //! -//! whitespace ::= eol *whitespace | 1*space_or_tab [ eol *whitespace ] -//! space_or_tab ::= ' ' | '\t' +//! ; See the `destination`, `title`, and `label` constructs for the BNF of +//! ; those parts. //! ``` //! -//! See [`destination`][destination], [`title`][title], and [`label`][label] +//! See [`destination`][destination], [`label`][label], and [`title`][title] //! for grammar, notes, and recommendations. //! //! Definitions in markdown do not, on their own, relate to anything in HTML. -//! When matched with a link (reference), they together relate to the `<a>` -//! element in HTML. -//! The definition forms its `href`, and optionally `title`, attributes. -//! See [*§ 4.5.1 The `a` element*][html-a] in the HTML spec for more info. -//! Definitions can also match with image (reference), in which case they -//! form an `<img>` element, where the definition contributes the `src`, and -//! optionally `title`, attributes. -//! See [*§ 4.8.3 The `img` element*][html-img] in the HTML spec for more info. +//! When matched with a [label end (reference)][label_end], they together +//! relate to the `<a>` or `<img>` elements in HTML. +//! The definition forms its `href` or `src`, and optionally `title`, +//! attributes. +//! See [*§ 4.5.1 The `a` element*][html-a] and +//! [*§ 4.8.3 The `img` element*][html-img] in the HTML spec for more info. //! //! The `label`, `destination`, and `title` parts are interpreted as the //! [string][] content type. @@ -86,6 +84,7 @@ //! [string]: crate::content::string //! [character_escape]: crate::construct::character_escape //! [character_reference]: crate::construct::character_reference +//! [label_end]: crate::construct::label_end //! [destination]: crate::construct::partial_destination //! [title]: crate::construct::partial_title //! [label]: crate::construct::partial_label @@ -93,8 +92,6 @@ //! [normalize_identifier]: crate::util::normalize_identifier //! [html-a]: https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-a-element //! [html-img]: https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element -//! -//! <!-- To do: link link/image (reference) --> use crate::construct::{ partial_destination::{start as destination, Options as DestinationOptions}, diff --git a/src/construct/label_end.rs b/src/construct/label_end.rs index 05c7635..581e5e9 100644 --- a/src/construct/label_end.rs +++ b/src/construct/label_end.rs @@ -13,7 +13,7 @@ //! ; those parts. //! ``` //! -//! See [`destination`][destination], [`title`][title], and [`label`][label] +//! See [`destination`][destination], [`label`][label], and [`title`][title] //! for grammar, notes, and recommendations. //! //! Label end does not, on its own, relate to anything in HTML. @@ -95,8 +95,8 @@ //! //! This limiation is imposed because links in links is invalid according to //! HTML. -//! Technically though, it is possible by using an [autolink][] in a link, -//! but you definitely should not do that. +//! Technically though, it is still possible to construct them by using an +//! [autolink][] in a link, but you definitely should not do that. //! //! ## Tokens //! diff --git a/src/construct/partial_destination.rs b/src/construct/partial_destination.rs index 71e26df..8b281c7 100644 --- a/src/construct/partial_destination.rs +++ b/src/construct/partial_destination.rs @@ -1,4 +1,4 @@ -//! Destination occurs in [definition][] and [label end][]. +//! Destination occurs in [definition][] and [label end][label_end]. //! //! They’re formed with the following BNF: //! diff --git a/src/construct/partial_label.rs b/src/construct/partial_label.rs index dd8ee84..2e8e950 100644 --- a/src/construct/partial_label.rs +++ b/src/construct/partial_label.rs @@ -37,9 +37,11 @@ //! > `y`. //! > //! > The thing that contains `x` is not a single thing when parsing markdown, -//! > but instead constists of an opening (label start (image) or label start -//! > (link)) and a closing (label end), so as to allow further phrasing such -//! > as code (text) or attention. +//! > but instead constists of an opening +//! > ([label start (image)][label_start_image] or +//! > [label start (link)][label_start_link]) and a closing +//! > ([label end][label_end]), so as to allow further phrasing such as +//! > [code (text)][code_text] or attention. //! //! ## References //! @@ -49,11 +51,13 @@ //! [string]: crate::content::string //! [character_escape]: crate::construct::character_escape //! [character_reference]: crate::construct::character_reference +//! [label_start_image]: crate::construct::label_start_image +//! [label_start_link]: crate::construct::label_start_link +//! [label_end]: crate::construct::label_end +//! [code_text]: crate::construct::code_text //! [link_reference_size_max]: crate::constant::LINK_REFERENCE_SIZE_MAX //! -//! <!-- To do: link label end, label starts. --> - -// To do: pass token types in. +//! <!-- To do: link attention. --> use super::partial_space_or_tab::{ space_or_tab_one_line_ending_with_options, OneLineEndingOptions, diff --git a/src/construct/partial_title.rs b/src/construct/partial_title.rs index b102f7e..044a8db 100644 --- a/src/construct/partial_title.rs +++ b/src/construct/partial_title.rs @@ -1,4 +1,4 @@ -//! Title occurs in [definition][] and label end. +//! Title occurs in [definition][] and [label end][label_end]. //! //! They’re formed with the following BNF: //! @@ -28,8 +28,7 @@ //! [string]: crate::content::string //! [character_escape]: crate::construct::character_escape //! [character_reference]: crate::construct::character_reference -//! -//! <!-- To do: link label end. --> +//! [label_end]: crate::construct::label_end use super::partial_space_or_tab::{ space_or_tab_one_line_ending_with_options, OneLineEndingOptions, |