summaryrefslogtreecommitdiffstats
path: root/_scripts
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-06-13 16:50:24 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2014-06-13 16:50:24 +0200
commit27117c6b3c0b0db68a21428302c5a0928533dea6 (patch)
treed98704c5da3eed1db80da97e6ff3e09a2e98a36f /_scripts
parent2dfdffe7468e4d5ceab3b5bf0d52f47a24369114 (diff)
downloadalpine-mksite-27117c6b3c0b0db68a21428302c5a0928533dea6.tar.bz2
alpine-mksite-27117c6b3c0b0db68a21428302c5a0928533dea6.tar.xz
generate_page: use lustache
Diffstat (limited to '_scripts')
-rw-r--r--_scripts/generate_page.lua42
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))