diff options
| author | Volpeon <git@volpeon.ink> | 2021-01-09 21:32:20 +0100 |
|---|---|---|
| committer | Volpeon <git@volpeon.ink> | 2021-01-09 21:32:20 +0100 |
| commit | 3085689202ddfdae2b1d4a1ff5fd1566a130cf55 (patch) | |
| tree | d01994ce99e168970cd3dddfb2e14ec0136b96f5 /scripts/metadata_filter.lua | |
| parent | Added section link to the header in regular pages, improved template structur... (diff) | |
| download | volpeon.ink-3085689202ddfdae2b1d4a1ff5fd1566a130cf55.tar.gz volpeon.ink-3085689202ddfdae2b1d4a1ff5fd1566a130cf55.tar.bz2 volpeon.ink-3085689202ddfdae2b1d4a1ff5fd1566a130cf55.zip | |
Improved build script variable names, use output instead of input filenames to generate URLs
Diffstat (limited to 'scripts/metadata_filter.lua')
| -rw-r--r-- | scripts/metadata_filter.lua | 35 |
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 | }) |
| 19 | end | 20 | end |
| @@ -91,15 +92,11 @@ function relative_to(dir, target) | |||
| 91 | return path | 92 | return path |
| 92 | end | 93 | end |
| 93 | 94 | ||
| 94 | function resolve_url(page_type, site_url, content_dir, base_dir, cur_file) | 95 | function 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) | |||
| 206 | end | 201 | end |
| 207 | 202 | ||
| 208 | function Meta(meta) | 203 | function 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) |
