Add helper to format theme name for theme changer
This commit is contained in:
parent
0c31ab2953
commit
d2565af000
|
@ -214,6 +214,7 @@ impl HtmlHandlebars {
|
||||||
);
|
);
|
||||||
handlebars.register_helper("previous", Box::new(helpers::navigation::previous));
|
handlebars.register_helper("previous", Box::new(helpers::navigation::previous));
|
||||||
handlebars.register_helper("next", Box::new(helpers::navigation::next));
|
handlebars.register_helper("next", Box::new(helpers::navigation::next));
|
||||||
|
handlebars.register_helper("theme_option", Box::new(helpers::theme::theme_option));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Copy across any additional CSS and JavaScript files which the book
|
/// Copy across any additional CSS and JavaScript files which the book
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
pub mod navigation;
|
pub mod navigation;
|
||||||
pub mod toc;
|
pub mod toc;
|
||||||
|
pub mod theme;
|
|
@ -0,0 +1,30 @@
|
||||||
|
use handlebars::{Context, Handlebars, Helper, Output, RenderContext, RenderError};
|
||||||
|
|
||||||
|
pub fn theme_option(
|
||||||
|
h: &Helper,
|
||||||
|
_r: &Handlebars,
|
||||||
|
ctx: &Context,
|
||||||
|
rc: &mut RenderContext,
|
||||||
|
out: &mut Output,
|
||||||
|
) -> Result<(), RenderError> {
|
||||||
|
trace!("theme_option (handlebars helper)");
|
||||||
|
|
||||||
|
let param = h
|
||||||
|
.param(0)
|
||||||
|
.and_then(|v| v.value().as_str())
|
||||||
|
.ok_or(RenderError::new(
|
||||||
|
"Param 0 with String type is required for theme_option helper.",
|
||||||
|
))?;
|
||||||
|
|
||||||
|
let theme_name = rc
|
||||||
|
.evaluate_absolute(ctx, "default_theme", true)?
|
||||||
|
.as_str()
|
||||||
|
.ok_or_else(|| RenderError::new("Type error for `default_theme`, string expected"))?;
|
||||||
|
|
||||||
|
out.write(param)?;
|
||||||
|
if param.to_lowercase() == theme_name.to_lowercase() {
|
||||||
|
out.write(" (default)")?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
|
@ -97,11 +97,11 @@
|
||||||
<i class="fa fa-paint-brush"></i>
|
<i class="fa fa-paint-brush"></i>
|
||||||
</button>
|
</button>
|
||||||
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
||||||
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
<li role="none"><button role="menuitem" class="theme" id="light">{{ theme_option "Light" }}</button></li>
|
||||||
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
<li role="none"><button role="menuitem" class="theme" id="rust">{{ theme_option "Rust" }}</button></li>
|
||||||
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
<li role="none"><button role="menuitem" class="theme" id="coal">{{ theme_option "Coal" }}</button></li>
|
||||||
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
<li role="none"><button role="menuitem" class="theme" id="navy">{{ theme_option "Navy" }}</button></li>
|
||||||
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
<li role="none"><button role="menuitem" class="theme" id="ayu">{{ theme_option "Ayu" }}</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
{{#if search_enabled}}
|
{{#if search_enabled}}
|
||||||
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
||||||
|
|
Loading…
Reference in New Issue