Return log buffer "(not available)" instead of crashing if redis is down.
[arvados.git] / doc / zenweb-liquid.rb
index f301aa4ad9c6a7ec3fa9e15d0bc56236e2da6335..545a0d8f5a31f58421e263288540c8eff9f4ecc7 100644 (file)
@@ -5,18 +5,37 @@ module ZenwebLiquid
 end
 
 module Zenweb
+
   class Page
+
+    def render_liquid page, content
+      liquid self.body, content, page, binding
+    end
     
     ##
     # Render a page's liquid and return the intermediate result
-    def render_liquid page, content, binding = TOPLEVEL_BINDING
+    def liquid template, content, page, binding = TOPLEVEL_BINDING
       require 'liquid'
+      Liquid::Template.file_system = Liquid::LocalFileSystem.new(File.join(File.dirname(Rake.application().rakefile), "_includes"))
+      unless defined? @liquid_template
+        @liquid_template = Liquid::Template.parse(template)
+      end
       
-      unless defined? @liquid_template then
-        @liquid_template = Liquid::Template.parse(content).render()
+      vars = {}
+      vars["content"] = content
+
+      vars["site"] = site.config.h.clone
+      pages = {}
+      site.pages.each do |f, p|
+        pages[f] = p.config.h.clone
+        pages[f]["url"] = p.url
       end
+      vars["site"]["pages"] = pages
+
+      vars["page"] = page.config.h.clone
+      vars["page"]["url"] = page.url
       
-      @liquid_template.render(binding)
+      @liquid_template.render(vars)
     end
   end
 end