diff options
Diffstat (limited to 'src/render.rs')
-rw-r--r-- | src/render.rs | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/src/render.rs b/src/render.rs index d5f49f6..e8e30a1 100644 --- a/src/render.rs +++ b/src/render.rs @@ -2,34 +2,11 @@ use mdbook::utils::unique_id_from_content; use std::borrow::Cow; use std::collections::HashMap; -pub use crate::preprocessor::Admonish; -use crate::{ - resolve::AdmonitionMeta, - types::{CssId, Directive}, -}; - -impl Directive { - fn classname(&self) -> &'static str { - match self { - Directive::Note => "admonish-note", - Directive::Abstract => "admonish-abstract", - Directive::Info => "admonish-info", - Directive::Tip => "admonish-tip", - Directive::Success => "admonish-success", - Directive::Question => "admonish-question", - Directive::Warning => "admonish-warning", - Directive::Failure => "admonish-failure", - Directive::Danger => "admonish-danger", - Directive::Bug => "admonish-bug", - Directive::Example => "admonish-example", - Directive::Quote => "admonish-quote", - } - } -} +use crate::{resolve::AdmonitionMeta, types::CssId}; #[derive(Debug, PartialEq)] pub(crate) struct Admonition<'a> { - pub(crate) directive: Directive, + pub(crate) directive: String, pub(crate) title: String, pub(crate) content: Cow<'a, str>, pub(crate) css_id: CssId, @@ -75,7 +52,6 @@ impl<'a> Admonition<'a> { } }; - let mut additional_class = Cow::Borrowed(self.directive.classname()); let title = &self.title; let content = &self.content; let indent = " ".repeat(self.indent); @@ -96,14 +72,12 @@ impl<'a> Admonition<'a> { Cow::Borrowed("") }; + let mut additional_class = format!("admonish-{}", self.directive); if !self.additional_classnames.is_empty() { - let mut buffer = additional_class.into_owned(); for additional_classname in &self.additional_classnames { - buffer.push(' '); - buffer.push_str(additional_classname); + additional_class.push(' '); + additional_class.push_str(additional_classname); } - - additional_class = Cow::Owned(buffer); } let admonition_block = if self.collapsible { "details" } else { "div" }; |