diff options
| author | Carol (Nichols || Goulding) <carol.nichols@gmail.com> | 2018-03-04 14:02:20 -0500 |
|---|---|---|
| committer | Carol (Nichols || Goulding) <carol.nichols@gmail.com> | 2018-03-04 14:11:11 -0500 |
| commit | 70aa18699bf5f9d6ba8692c52806387506623f6f (patch) | |
| tree | fdf99ab709827dee1a03a30482f3d945510e426b /src | |
| parent | b11fb2f5a1f531439a16abd90da95199f49c0eb7 (diff) | |
Make a handlebars helper that uses prlink to generate a link from a file
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/generate_readme.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/bin/generate_readme.rs b/src/bin/generate_readme.rs index 08c83d7..a482fc5 100644 --- a/src/bin/generate_readme.rs +++ b/src/bin/generate_readme.rs @@ -7,13 +7,15 @@ // README.md. extern crate handlebars; +extern crate prlink; #[macro_use] extern crate serde_json; -use handlebars::Handlebars; +use handlebars::{Handlebars, Helper, RenderContext, RenderError}; use std::fs::File; use std::io::prelude::*; +use std::path::PathBuf; fn main() { let template = include_str!("../../README-template.hbs"); @@ -23,7 +25,9 @@ order to make changes here rather than committing the changes directly."; let mut generated_readme = File::create("README.md").unwrap(); - let hbs = Handlebars::new(); + let mut hbs = Handlebars::new(); + hbs.register_helper("playground_link", Box::new(playground_link_helper)); + write!( generated_readme, "{}", @@ -33,3 +37,10 @@ order to make changes here rather than committing the changes directly."; ).unwrap() ).unwrap(); } + +fn playground_link_helper(h: &Helper, _: &Handlebars, rc: &mut RenderContext) -> Result<(), RenderError> { + let filename = PathBuf::from(h.param(0).unwrap().value().as_str().unwrap()); + let link = prlink::linkify_file(&filename); + rc.writer.write(link.into_bytes().as_ref())?; + Ok(()) +} |
