-pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, _: &Vec<Post>) -> Result<()> {
- println!("READING TEMP");
- match find(template_directory, "index.html") {
- Some(template) => {
- let parsed_template = parse(&template);
- for token in parsed_template.tokens {
- println!("TOKEN {}", token);
- }
- },
- None => {}
+const FILENAME: &str = "index.html";
+
+pub fn generate(
+ _: &Path,
+ template_directory: &Path,
+ target: &Path,
+ context: &Context,
+) -> Result<()> {
+ if let Some(template) = find(template_directory, FILENAME) {
+ let parsed_template =
+ parse(&template).ok_or_else(|| Error::new(Other, "Unable to parse HTML template"))?;
+ let rendered_template = parsed_template.render(context)?;
+ let location = target.join(FILENAME);
+ write(location, rendered_template)?;