diff options
Diffstat (limited to 'src/eval/mod.rs')
| -rw-r--r-- | src/eval/mod.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/eval/mod.rs b/src/eval/mod.rs index ed73b07c..c4da1fe0 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -18,9 +18,9 @@ use std::rc::Rc; use fontdock::FontStyle; +use crate::color::Color; use crate::diag::Diag; use crate::diag::{Deco, Feedback, Pass}; -use crate::color::Color; use crate::env::SharedEnv; use crate::geom::{BoxAlign, Dir, Flow, Gen, Length, Linear, Relative, Sides, Size}; use crate::layout::{ @@ -328,6 +328,11 @@ impl Eval for SynNode { fn eval(&self, ctx: &mut EvalContext) -> Self::Output { match self { + SynNode::Text(text) => { + let node = ctx.make_text_node(text.clone()); + ctx.push(node); + } + SynNode::Space => { let em = ctx.state.font.font_size(); ctx.push(Spacing { @@ -336,11 +341,6 @@ impl Eval for SynNode { }); } - SynNode::Text(text) => { - let node = ctx.make_text_node(text.clone()); - ctx.push(node); - } - SynNode::Linebreak => { ctx.end_par_group(); ctx.start_par_group(); @@ -356,10 +356,12 @@ impl Eval for SynNode { ctx.start_par_group(); } - SynNode::Emph => ctx.state.font.emph ^= true, SynNode::Strong => ctx.state.font.strong ^= true, + SynNode::Emph => ctx.state.font.emph ^= true, + SynNode::Heading(heading) => heading.eval(ctx), SynNode::Raw(raw) => raw.eval(ctx), + SynNode::Expr(expr) => expr.eval(ctx).eval(ctx), } } |
