Add "Log in as user" button in Admin pane on users#show.
[arvados.git] / doc / zenweb-liquid.rb
1 require 'zenweb'
2
3 module ZenwebLiquid
4   VERSION = '0.0.1'
5 end
6
7 module Zenweb
8
9   class Page
10
11     def render_liquid page, content
12       liquid self.body, content, page, binding
13     end
14     
15     ##
16     # Render a page's liquid and return the intermediate result
17     def liquid template, content, page, binding = TOPLEVEL_BINDING
18       require 'liquid'
19       Liquid::Template.file_system = Liquid::LocalFileSystem.new(File.join(File.dirname(Rake.application().rakefile), "_includes"))
20       unless defined? @liquid_template
21         @liquid_template = Liquid::Template.parse(template)
22       end
23       
24       vars = {}
25       vars["content"] = content
26
27       vars["site"] = site.config.h.clone
28       pages = {}
29       site.pages.each do |f, p|
30         pages[f] = p.config.h.clone
31         pages[f]["url"] = p.url
32       end
33       vars["site"]["pages"] = pages
34
35       vars["page"] = page.config.h.clone
36       vars["page"]["url"] = page.url
37       
38       @liquid_template.render(vars)
39     end
40   end
41 end