diff --git a/examples/html-slugify.rs b/examples/html-slugify.rs index 5909731..769699e 100644 --- a/examples/html-slugify.rs +++ b/examples/html-slugify.rs @@ -49,7 +49,8 @@ impl Traverser for MyHtmlHandler { inline_src inline_call code bold verbatim italic strike underline list list_item special_block quote_block center_block verse_block comment_block example_block export_block source_block babel_call clock cookie radio_target drawer dyn_block fn_def fn_ref macros - snippet timestamp target fixed_width org_table org_table_row org_table_cell + snippet timestamp target fixed_width org_table org_table_row org_table_cell latex_fragment + latex_environment } } diff --git a/src/export/forward.rs b/src/export/forward.rs index 4711ece..41adc51 100644 --- a/src/export/forward.rs +++ b/src/export/forward.rs @@ -48,7 +48,8 @@ /// inline_src inline_call code bold verbatim italic strike underline list list_item /// special_block quote_block center_block verse_block comment_block example_block export_block /// source_block babel_call clock cookie radio_target drawer dyn_block fn_def fn_ref macros -/// snippet timestamp target fixed_width org_table org_table_row org_table_cell +/// snippet timestamp target fixed_width org_table org_table_row org_table_cell latex_fragment +/// latex_environment /// } /// } /// @@ -190,6 +191,12 @@ macro_rules! forward_handler { (@method $handler:ty, link) => { forward_handler!(@method $handler, link, WalkEvent<&$crate::ast::Link>); }; + (@method $handler:ty, latex_fragment) => { + forward_handler!(@method $handler, latex_fragment, WalkEvent<&$crate::ast::LatexFragment>); + }; + (@method $handler:ty, latex_environment) => { + forward_handler!(@method $handler, latex_environment, WalkEvent<&$crate::ast::LatexEnvironment>); + }; (@method $handler:ty, $x:ident) => { std::compile_error!(std::concat!(std::stringify!($x), " is not a method")); }; diff --git a/src/export/html.rs b/src/export/html.rs index 5efba73..85f58f4 100644 --- a/src/export/html.rs +++ b/src/export/html.rs @@ -441,4 +441,24 @@ impl Traverser for HtmlExport { #[tracing::instrument(skip(self, _ctx))] fn target(&mut self, _event: WalkEvent<&Target>, _ctx: &mut TraversalContext) {} + + #[tracing::instrument(skip(self, ctx))] + fn latex_fragment(&mut self, event: WalkEvent<&LatexFragment>, ctx: &mut TraversalContext) { + if let WalkEvent::Enter(l) = event { + self.output += &l.syntax.to_string(); + ctx.skip(); + } + } + + #[tracing::instrument(skip(self, ctx))] + fn latex_environment( + &mut self, + event: WalkEvent<&LatexEnvironment>, + ctx: &mut TraversalContext, + ) { + if let WalkEvent::Enter(l) = event { + self.output += &l.syntax.to_string(); + ctx.skip(); + } + } } diff --git a/src/export/traverse.rs b/src/export/traverse.rs index 3956d0c..6884bf3 100644 --- a/src/export/traverse.rs +++ b/src/export/traverse.rs @@ -137,6 +137,8 @@ pub trait Traverser { ORG_TABLE_RULE_ROW | ORG_TABLE_STANDARD_ROW => traverse!(OrgTableRow, org_table_row), ORG_TABLE_CELL => traverse!(OrgTableCell, org_table_cell), LINK => traverse!(Link, link), + LATEX_FRAGMENT => traverse!(LatexFragment, latex_fragment), + LATEX_ENVIRONMENT => traverse!(LatexEnvironment, latex_environment), BLOCK_CONTENT | LIST_ITEM_CONTENT => traverse_children!(node), @@ -236,4 +238,12 @@ pub trait Traverser { fn org_table_cell(&mut self, _event: WalkEvent<&OrgTableCell>, _ctx: &mut TraversalContext); /// Called when entering or leaving `Link` node fn link(&mut self, _event: WalkEvent<&Link>, _ctx: &mut TraversalContext); + /// Called when entering or leaving `LatexFragment` node + fn latex_fragment(&mut self, _event: WalkEvent<&LatexFragment>, _ctx: &mut TraversalContext); + /// Called when entering or leaving `LatexEnvironment` node + fn latex_environment( + &mut self, + _event: WalkEvent<&LatexEnvironment>, + _ctx: &mut TraversalContext, + ); } diff --git a/wasm/index.html b/wasm/index.html index 717e91f..7160da1 100644 --- a/wasm/index.html +++ b/wasm/index.html @@ -11,6 +11,11 @@ href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown-light.min.css" /> + + @@ -20,6 +25,7 @@ html { height: 100%; margin: 0; + overflow: hidden; } .bordered { @@ -109,6 +115,7 @@