Call the text markup parser.

This commit is contained in:
Tom Alexander 2023-04-22 18:54:19 -04:00
parent 99645ea14c
commit 538031c688
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
3 changed files with 28 additions and 6 deletions

View File

@ -29,6 +29,7 @@ mod property_drawer;
pub mod sexp;
mod source;
mod table;
mod text_markup;
mod util;
pub use document::document;
pub use document::Document;

View File

@ -1,4 +1,6 @@
use crate::error::Res;
use crate::parser::text_markup::text_markup;
use nom::branch::alt;
use nom::combinator::map;
use nom::combinator::not;
@ -16,9 +18,13 @@ pub fn standard_set_object<'r, 's>(
// TODO: add entities, LaTeX fragments, export snippets, footnote references, citations (NOT citation references), inline babel calls, inline source blocks, line breaks, links, macros, targets and radio targets, statistics cookies, subscript and superscript, timestamps, and text markup.
not(|i| context.check_exit_matcher(i))(input)?;
let plain_text_matcher = parser_with_context!(plain_text)(context);
map(plain_text_matcher, Object::PlainText)(input)
alt((
map(
parser_with_context!(text_markup)(context),
Object::TextMarkup,
),
map(parser_with_context!(plain_text)(context), Object::PlainText),
))(input)
}
#[tracing::instrument(ret, level = "debug")]
@ -29,7 +35,11 @@ pub fn minimal_set_object<'r, 's>(
// TODO: add text markup, entities, LaTeX fragments, superscripts and subscripts
not(|i| context.check_exit_matcher(i))(input)?;
let plain_text_matcher = parser_with_context!(plain_text)(context);
map(plain_text_matcher, Object::PlainText)(input)
alt((
map(
parser_with_context!(text_markup)(context),
Object::TextMarkup,
),
map(parser_with_context!(plain_text)(context), Object::PlainText),
))(input)
}

11
src/parser/text_markup.rs Normal file
View File

@ -0,0 +1,11 @@
use super::Context;
use crate::error::Res;
use crate::parser::TextMarkup;
#[tracing::instrument(ret, level = "debug")]
pub fn text_markup<'r, 's>(
context: Context<'r, 's>,
input: &'s str,
) -> Res<&'s str, TextMarkup<'s>> {
todo!()
}