summaryrefslogtreecommitdiffstats
path: root/scripts/metadata_filter.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/metadata_filter.lua')
-rw-r--r--scripts/metadata_filter.lua35
1 files changed, 15 insertions, 20 deletions
diff --git a/scripts/metadata_filter.lua b/scripts/metadata_filter.lua
index fb7b3c9..61fe90f 100644
--- a/scripts/metadata_filter.lua
+++ b/scripts/metadata_filter.lua
@@ -13,7 +13,8 @@ function format_date(date)
13 return pandoc.MetaMap({ 13 return pandoc.MetaMap({
14 yyyy_mm_dd = pandoc.MetaString(os.date("%F", time)), 14 yyyy_mm_dd = pandoc.MetaString(os.date("%F", time)),
15 yyyy = pandoc.MetaString(os.date("%Y", time)), 15 yyyy = pandoc.MetaString(os.date("%Y", time)),
16 mm_dd = pandoc.MetaString(os.date("%m-%d", time)), 16 mm = pandoc.MetaString(os.date("%m", time)),
17 dd = pandoc.MetaString(os.date("%d", time)),
17 rfc3339 = pandoc.MetaString(os.date("%FT%T+00:00", time)) 18 rfc3339 = pandoc.MetaString(os.date("%FT%T+00:00", time))
18 }) 19 })
19end 20end
@@ -91,15 +92,11 @@ function relative_to(dir, target)
91 return path 92 return path
92end 93end
93 94
94function resolve_url(page_type, site_url, content_dir, base_dir, cur_file) 95function resolve_url(page_type, site_url, output_dir, base_dir_out, cur_file_out)
95 if page_type == "page" then 96 local abs = cur_file_out:gsub("^" .. output_dir, ""):gsub("/index.html$",
96 cur_file = cur_file:gsub("%.md$", ".html") 97 "/")
97 elseif page_type == "feed" then 98 local rel =
98 cur_file = cur_file:gsub("%.md$", ".xml") 99 relative_to(base_dir_out, cur_file_out):gsub("/index.html$", "/")
99 end
100
101 local abs = cur_file:gsub("^" .. content_dir, ""):gsub("/index.html$", "/")
102 local rel = relative_to(base_dir, cur_file):gsub("/index.html$", "/")
103 100
104 return pandoc.MetaMap({ 101 return pandoc.MetaMap({
105 abs = pandoc.MetaString(abs), 102 abs = pandoc.MetaString(abs),
@@ -143,9 +140,7 @@ function create_main_menu_state(section, main_menu)
143 local item = main_menu[i] 140 local item = main_menu[i]
144 local active = pandoc.utils.stringify(item.id) == section.id 141 local active = pandoc.utils.stringify(item.id) == section.id
145 item.active = pandoc.MetaBool(active) 142 item.active = pandoc.MetaBool(active)
146 if active then 143 if active then active_item = item end
147 active_item = item
148 end
149 end 144 end
150 145
151 return pandoc.MetaMap({ 146 return pandoc.MetaMap({
@@ -206,10 +201,10 @@ function organize_subpages(pages)
206end 201end
207 202
208function Meta(meta) 203function Meta(meta)
209 meta.content_dir = meta.content_dir:gsub("/$", "") 204 meta.output_dir = meta.output_dir:gsub("/$", "")
210 meta.site.url = pandoc.utils.stringify(meta.site.url):gsub("/$", "") 205 meta.site.url = pandoc.utils.stringify(meta.site.url):gsub("/$", "")
211 meta.base_file = meta.base_file or meta.file 206 meta.base_file_out = meta.base_file_out or meta.file_out
212 meta.base_dir = meta.base_file:gsub("^(.*)/.-$", "%1") 207 meta.base_dir_out = meta.base_file_out:gsub("^(.*)/.-$", "%1")
213 meta.page_type = meta.page_type or "page" 208 meta.page_type = meta.page_type or "page"
214 209
215 meta.layout = resolve_layout(meta.layout) 210 meta.layout = resolve_layout(meta.layout)
@@ -223,13 +218,13 @@ function Meta(meta)
223 218
224 if meta.page_type == "feed" then 219 if meta.page_type == "feed" then
225 meta.page = pandoc.MetaMap({ 220 meta.page = pandoc.MetaMap({
226 url = resolve_url("page", meta.site.url, meta.content_dir, 221 url = resolve_url("page", meta.site.url, meta.output_dir,
227 meta.base_dir, meta.file) 222 meta.base_dir_out, meta.file_out)
228 }) 223 })
229 end 224 end
230 225
231 meta.url = resolve_url(meta.page_type, meta.site.url, meta.content_dir, 226 meta.url = resolve_url(meta.page_type, meta.site.url, meta.output_dir,
232 meta.base_dir, meta.file) 227 meta.base_dir_out, meta.file_out)
233 meta.section = resolve_section(meta.url.abs) 228 meta.section = resolve_section(meta.url.abs)
234 meta.category = resolve_category(meta.categories[meta.section.id], 229 meta.category = resolve_category(meta.categories[meta.section.id],
235 meta.category) 230 meta.category)