4545{
4646 let path = path. into ( ) ;
4747 template. render_to_file ( & path, content) ?;
48- if let Some ( path) = rendered. lock ( ) . replace ( path) {
48+ if let Some ( path) = rendered. lock ( ) . unwrap ( ) . replace ( path) {
4949 println ! ( "Warning: more paths render to {}" , path. to_string_lossy( ) ) ;
5050 }
5151 Ok ( ( ) )
@@ -61,14 +61,10 @@ struct Meta<'p, 'r>(
6161
6262impl < ' p > Meta < ' p , ' _ > {
6363 #[ inline]
64- fn render (
65- & self ,
66- name : & str ,
67- template : & str ,
68- path : & Path ,
69- rendered : & MutSet ,
70- ) -> Result < ( ) , ramhorns:: Error > {
71- render ( & Template :: new ( template) ?, path. join ( name) , self , rendered)
64+ fn render ( & self , name : & str , template : & str , path : & Path ) -> Result < ( ) , ramhorns:: Error > {
65+ Template :: new ( template) ?
66+ . render_to_file ( path. join ( name) , self )
67+ . map_err ( Into :: into)
7268 }
7369}
7470
@@ -77,23 +73,22 @@ pub fn render_meta<'p>(
7773 pages : & [ Page < ' p > ] ,
7874 taxons : & Classification < ' p , ' _ > ,
7975 config : & Config < ' p > ,
80- rendered : & MutSet ,
8176) -> Result < ( ) , ramhorns:: Error > {
8277 let pages = PageList :: new ( pages, 0 ..pages. len ( ) , 0 , & config. url ) ;
8378 let meta = Meta ( DateTime :: now ( ) , pages, TaxonList ( taxons) , config) ;
8479 let path = Path :: new ( config. output_dir . as_ref ( ) ) ;
8580
8681 if config. sitemap {
8782 let sitemap = include_str ! ( "templates/sitemap.xml" ) ;
88- meta. render ( "sitemap.xml" , sitemap, path, rendered ) ?;
83+ meta. render ( "sitemap.xml" , sitemap, path) ?;
8984 }
9085 if config. rss {
9186 let rss = include_str ! ( "templates/rss.xml" ) ;
92- meta. render ( "rss.xml" , rss, path, rendered ) ?;
87+ meta. render ( "rss.xml" , rss, path) ?;
9388 }
9489 if config. atom {
9590 let atom = include_str ! ( "templates/atom.xml" ) ;
96- meta. render ( "atom.xml" , atom, path, rendered ) ?;
91+ meta. render ( "atom.xml" , atom, path) ?;
9792 }
9893 Ok ( ( ) )
9994}
@@ -146,7 +141,7 @@ pub fn colocate_assets(config: &Config) -> Result<(), io::Error> {
146141/// Delete all the pages that were present in the previous render, but not the current one.
147142/// Then, write all the paths that were rendered to the file `filelist`
148143pub fn cleanup ( rendered : MutSet , filelist : & str ) -> Result < ( ) , io:: Error > {
149- let rendered = rendered. into_inner ( ) ;
144+ let rendered = rendered. into_inner ( ) . unwrap ( ) ;
150145 if let Ok ( f) = File :: open ( filelist) {
151146 BufReader :: new ( f) . lines ( ) . try_for_each ( |filename| {
152147 let filename = filename?;
0 commit comments