From 2dfdffe7468e4d5ceab3b5bf0d52f47a24369114 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 26 May 2014 17:47:23 +0200 Subject: generate_page: mark active page in navbar --- _scripts/generate_page.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to '_scripts/generate_page.lua') diff --git a/_scripts/generate_page.lua b/_scripts/generate_page.lua index ad5f6d9..e3ef183 100644 --- a/_scripts/generate_page.lua +++ b/_scripts/generate_page.lua @@ -34,7 +34,16 @@ function read_layout(file) end end -function generate_navbar(active) +function ref_class(pagename, href) + local refpage = href:gsub(".html$", "") + refpage = refpage:gsub("/$", "/index") + if refpage:match("^/?"..pagename.."$") then + return ' class="active"' + end + return '' +end + +function generate_navbar(pagename) local f = assert(io.open("_navbar.yaml")) local nav = yaml.load(f:read("*a")) f:close() @@ -43,8 +52,8 @@ function generate_navbar(active) data = ('%s'):format(data, align) for _,t in pairs(menu) do for label, ref in pairs(t) do - data = ('%s%s'):format(data, - ref, label) + data = ('%s%s'):format(data, + ref, ref_class(pagename,ref), label) end end data = data ..'\n' @@ -60,7 +69,7 @@ end page, content = read_markdown(assert(arg[1])) layout = read_layout(arg[1]) -page.navbar = generate_navbar() +page.navbar = generate_navbar(page.pagename) page.content = replace_tags(content, page) -- cgit v1.2.3