Move render_alias to templates mod

This commit is contained in:
Vincent Prouillet 2017-05-13 13:05:38 +09:00
parent 299c3c8b22
commit 76527801ce
2 changed files with 16 additions and 12 deletions

View file

@ -15,18 +15,9 @@ use pagination::Paginator;
use utils::{create_file, create_directory}; use utils::{create_file, create_directory};
use section::{Section}; use section::{Section};
use front_matter::{SortBy}; use front_matter::{SortBy};
use templates::{GUTENBERG_TERA, global_fns}; use templates::{GUTENBERG_TERA, global_fns, render_redirect_template};
/// Renders the `internal/alias.html` template that will redirect
/// via refresh to the url given
fn render_alias(url: &str, tera: &Tera) -> Result<String> {
let mut context = Context::new();
context.add("url", &url);
tera.render("internal/alias.html", &context)
.chain_err(|| format!("Failed to render alias for '{}'", url))
}
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
@ -670,7 +661,7 @@ impl Site {
create_file(page_path.join("index.html"), &self.inject_livereload(output))?; create_file(page_path.join("index.html"), &self.inject_livereload(output))?;
} else { } else {
create_file(output_path.join("index.html"), &self.inject_livereload(output))?; create_file(output_path.join("index.html"), &self.inject_livereload(output))?;
create_file(page_path.join("index.html"), &render_alias(&section.permalink, &self.tera)?)?; create_file(page_path.join("index.html"), &render_redirect_template(&section.permalink, &self.tera)?)?;
} }
} }

View file

@ -1,4 +1,6 @@
use tera::Tera; use tera::{Tera, Context};
use errors::{Result, ResultExt};
pub mod filters; pub mod filters;
pub mod global_fns; pub mod global_fns;
@ -24,3 +26,14 @@ lazy_static! {
tera tera
}; };
} }
/// Renders the `internal/alias.html` template that will redirect
/// via refresh to the url given
pub fn render_redirect_template(url: &str, tera: &Tera) -> Result<String> {
let mut context = Context::new();
context.add("url", &url);
tera.render("internal/alias.html", &context)
.chain_err(|| format!("Failed to render alias for '{}'", url))
}