diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-12-15 14:29:30 +0100 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-12-15 14:29:30 +0100 |
commit | 05868777b47a60cba919fa6bd5e90737979de6f7 (patch) | |
tree | ec4118042034ad45934e9c5a86c3030f287e54ad | |
parent | 9ced764fc28d8d655da178badf8ab94211676700 (diff) |
Clean up post compilation
* All posts are compiled before writing them
* Templated posts don't end up with .erb suffix
-rw-r--r-- | lib/blog.rb | 15 | ||||
-rwxr-xr-x | scripts/build.rb | 3 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/blog.rb b/lib/blog.rb index 656f815..7500aa8 100644 --- a/lib/blog.rb +++ b/lib/blog.rb @@ -6,7 +6,7 @@ def parse_post filename post['date'] = DateTime.parse(post['date']) post['raw_content'] = file_raw[1].strip - post['filename'] = filename + post['html_filename'] = filename.sub /\.erb$/, '' post['id'] = "blog_#{basename_no_extension filename}" post end @@ -19,12 +19,20 @@ def compile_post post post['content'] = ERB.new(post['raw_content']).result binding end +def compile_posts posts + posts.each do |post| + compile_post post + end +end + def generate_blog_post post ERB.new(File.read(src 'post-template.html.erb')).result binding end +@posts = nil + def posts - Dir.new(src 'blog').children.map do |filename| + @posts ||= Dir.new(src 'blog').children.map do |filename| post = parse_post "blog/#{filename}" end.sort do |a, b| b['date'] <=> a['date'] @@ -37,9 +45,8 @@ end def write_blog_files posts.each do |post| - compile_post post content = ERB.new(File.read(src 'post-template.html.erb')).result binding - write_templated content, post['filename'], head_title: post['title'], h1_title: 'Blog.' + write_templated content, post['html_filename'], head_title: post['title'], h1_title: 'Blog.' end end diff --git a/scripts/build.rb b/scripts/build.rb index 1895781..9b48da4 100755 --- a/scripts/build.rb +++ b/scripts/build.rb @@ -45,7 +45,7 @@ if !Dir.exists? 'public/blog' end posts.each do |post| - P.add post['id'], post['filename'] + P.add post['id'], post['html_filename'] end write_statics statics @@ -55,6 +55,7 @@ write_blog_archive P.cd 'blog' +compile_posts posts write_blog_files P.cd '..' |