Something went wrong. Try again.
Markdown parser fork with extended syntax for personal use.
Something went wrong. Try again.
1.8 kB · 64 lines
Rust
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465//! MDX expression (text) occurs in the [text][] content type.//!//! ## Grammar//!//! MDX expression (text) forms with the following BNF//! (<small>see [construct][crate::construct] for character groups</small>)://!//! ```bnf//! mdx_expression_text ::= mdx_expression//!//! ; See the `partial_mdx_expression` construct for the BNF of that part.//! ```//!//! See [`mdx_expression`][mdx_expression] for more info.//!//! ## Tokens//!//! * [`MdxTextExpression`][Name::MdxTextExpression]//! * see [`mdx_expression`][mdx_expression] for more//!//! ## Recommendation//!//! See [`mdx_expression`][mdx_expression] for recommendations.//!//! ## References//!//! * [`syntax.js` in `micromark-extension-mdx-expression`](https://github.com/micromark/micromark-extension-mdx-expression/blob/main/packages/micromark-extension-mdx-expression/dev/lib/syntax.js)//! * [`mdxjs.com`](https://mdxjs.com)//!//! [text]: crate::construct::text//! [mdx_expression]: crate::construct::partial_mdx_expression
use crate::event::Name;use crate::state::{Name as StateName, State};use crate::tokenizer::Tokenizer;
/// Start of an MDX expression (text).////// ```markdown/// > | a {Math.PI} c/// ^/// ```pub fn start(tokenizer: &mut Tokenizer) -> State { if Some(b'{') == tokenizer.current && tokenizer.parse_state.options.constructs.mdx_expression_text { tokenizer.tokenize_state.token_1 = Name::MdxTextExpression; tokenizer.attempt(State::Next(StateName::MdxExpressionTextAfter), State::Nok); State::Retry(StateName::MdxExpressionStart) } else { State::Nok }}
/// After expression.////// ```markdown/// > | a {Math.PI} c/// ^/// ```pub fn after(tokenizer: &mut Tokenizer) -> State { tokenizer.tokenize_state.token_1 = Name::Data; State::Ok}