diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-06-13 16:50:24 +0200 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-06-13 16:50:24 +0200 |
commit | 27117c6b3c0b0db68a21428302c5a0928533dea6 (patch) | |
tree | d98704c5da3eed1db80da97e6ff3e09a2e98a36f /_scripts | |
parent | 2dfdffe7468e4d5ceab3b5bf0d52f47a24369114 (diff) | |
download | alpine-mksite-27117c6b3c0b0db68a21428302c5a0928533dea6.tar.bz2 alpine-mksite-27117c6b3c0b0db68a21428302c5a0928533dea6.tar.xz |
generate_page: use lustache
Diffstat (limited to '_scripts')
-rw-r--r-- | _scripts/generate_page.lua | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/_scripts/generate_page.lua b/_scripts/generate_page.lua index e3ef183..18b7aa9 100644 --- a/_scripts/generate_page.lua +++ b/_scripts/generate_page.lua @@ -2,6 +2,7 @@ markdown = require('discount') yaml = require('yaml') +lustache = require('lustache') function read_markdown(file) local f = assert(io.open(file)) @@ -15,7 +16,8 @@ function read_markdown(file) t.pagename = pagename return t, markdown(md) else - return {title=pagename, pagename=pagename}, markdown(data) + return {title=pagename:gsub("/index$", ""), pagename=pagename}, + markdown(data) end end @@ -43,34 +45,24 @@ function ref_class(pagename, href) return '' end -function generate_navbar(pagename) - local f = assert(io.open("_navbar.yaml")) - local nav = yaml.load(f:read("*a")) +function import_yaml(filename) + local f = assert(io.open(filename)) + local t = yaml.load(f:read("*a*")) f:close() - local data = "" - for align, menu in pairs(nav) do - data = ('%s<span class="%s">'):format(data, align) - for _,t in pairs(menu) do - for label, ref in pairs(t) do - data = ('%s<a href="%s"%s>%s</a>'):format(data, - ref, ref_class(pagename,ref), label) - end - end - data = data ..'</span>\n' - end - return data -end - -function replace_tags(content, meta) - return content:gsub("{{(.-)}}", function(tag) - return meta[tag] - end) + return t end page, content = read_markdown(assert(arg[1])) layout = read_layout(arg[1]) -page.navbar = generate_navbar(page.pagename) +for i = 2, #arg do + for k,v in pairs(import_yaml(arg[i])) do + page[k] = v + end +end + +page.pagestate = {} +page.pagestate[page.pagename] = 'active' -page.content = replace_tags(content, page) +page.content = lustache:render(content, page) -io.write((replace_tags(layout, page))) +io.write(lustache:render(layout, page)) |