diff options
-rw-r--r-- | src/description.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/description.rs b/src/description.rs index e835751..3697673 100644 --- a/src/description.rs +++ b/src/description.rs @@ -259,6 +259,9 @@ pub enum ParagraphPart /// Informal table part. InformalTable(InformalTable), + + /// Paragraph part. + Paragraph(Paragraph), } impl FromElements for ParagraphPart @@ -294,7 +297,7 @@ impl ParagraphPart "inlineequation" => Self::InlineEquation, "programlisting" => Self::ProgramListing, "citerefentry" => Self::Entry, - "variablelist" | "itemizedlist" | "informaltable" => |_| { + "variablelist" | "itemizedlist" | "informaltable" | "para" => |_| { unreachable!(); }, _ => { @@ -351,6 +354,13 @@ impl ParagraphPart )); } + if tagged_element.name() == "para" { + return Ok(Self::Paragraph( + Paragraph::from_elements(tagged_element.child_elements()) + .map_err(|err| ParagraphPartError::InvalidParagraph(Box::new(err)))?, + )); + } + let text_element = tagged_element .child_elements() .get_first_text_element() @@ -391,4 +401,8 @@ pub enum ParagraphPartError /// Invalid informal table. #[error("Invalid informal table")] InvalidInformalTable(#[source] Box<InformalTableError>), + + /// Invalid paragraph. + #[error("Invalid paragraph")] + InvalidParagraph(#[source] Box<ParagraphError>), } |