From 11947869e44d423171cfd3c6c76be0fbbbfb5da4 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Fri, 10 Jun 2022 14:31:33 +0200 Subject: Update --- scripts/metadata_filter.lua | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'scripts/metadata_filter.lua') diff --git a/scripts/metadata_filter.lua b/scripts/metadata_filter.lua index 413ded5..4ac4a4d 100644 --- a/scripts/metadata_filter.lua +++ b/scripts/metadata_filter.lua @@ -19,6 +19,10 @@ function pandoc.List:take(n) return result end +function slug(str) + return str:lower():gsub("[^ a-z]", ""):gsub("[ ]+", "-") +end + function file_exists(name) local f = io.open(name, "r") if f ~= nil then @@ -196,6 +200,7 @@ function generate_list(meta) subtitle = p.subtitle, date = p.date, url = p.url, + slug = p.slug, thumbnail = p.thumbnail, icon = p.icon or meta.icon, post_icon = p.post_icon or meta.list_post_icon, @@ -205,13 +210,14 @@ function generate_list(meta) elseif meta.depth == "2" then return meta.pages.all:map(function(cat) local limit = (cat.list_limit and tonumber(pandoc.utils.stringify(cat.list_limit))) or - 9999 + 9999 local allItems = ((cat.pages and cat.pages.all) or pandoc.List()):map(function(p) return { title = p.title, subtitle = p.subtitle, date = p.date, url = p.url, + slug = p.slug, thumbnail = p.thumbnail, icon = p.icon or cat.icon, post_icon = p.post_icon or cat.list_post_icon or meta.list_post_icon, @@ -226,6 +232,7 @@ function generate_list(meta) description = (cat.description and pandoc.MetaBlocks(pandoc.Para(cat.description))) or (not cat.no_description and cat.content), url = cat.url, + slug = cat.slug, layout = cat.list_layout, items = items, total = tostring(#allItems), @@ -235,7 +242,7 @@ function generate_list(meta) elseif meta.depth == "3" then return meta.pages.all:map(function(cat) local limit = (cat.list_limit and tonumber(pandoc.utils.stringify(cat.list_limit))) or - 9999 + 9999 local allItems = (cat.pages and cat.pages.all or pandoc.List()):flatMap(function(c) if c.pages then return c.pages.all:map(function(p) @@ -244,6 +251,7 @@ function generate_list(meta) subtitle = p.subtitle, category = c.title, url = p.url, + slug = p.slug, thumbnail = p.thumbnail, icon = p.icon or c.icon, post_icon = p.post_icon or c.list_post_icon or cat.list_post_icon, @@ -256,6 +264,7 @@ function generate_list(meta) title = c.title, subtitle = c.subtitle, url = c.url, + slug = c.slug, icon = c.icon or cat.icon, post_icon = c.post_icon or cat.list_post_icon, indicator = cat.list_read_indicators, @@ -271,6 +280,7 @@ function generate_list(meta) description = (cat.description and pandoc.MetaBlocks(pandoc.Para(cat.description))) or (not cat.no_description and cat.content), url = cat.url, + slug = cat.slug, layout = cat.list_layout, items = items, total = tostring(#allItems), @@ -287,6 +297,7 @@ function process(global, meta) meta.url = meta.url and pandoc.utils.stringify(meta.url) meta.url = resolve_url(global.site.url, global.file_out, meta.url or meta.file_out) meta.title = (meta.title and pandoc.utils.stringify(meta.title)) or "" + meta.slug = slug(meta.title) if meta.list_order then meta.list_order = pandoc.utils.stringify(meta.list_order) end meta.list_layout = meta.list_layout and prep_layout(meta.list_layout) if meta.position then meta.position = pandoc.utils.stringify(meta.position) end @@ -318,7 +329,7 @@ function process(global, meta) meta.pages = process_pages(global, meta.list_order, meta.pages) meta.depth = (meta.pages and find_depth(meta.pages.all)) or "0" meta.layout = prep_layout(meta.layout or (meta.redirect and "redirect") or - resolve_layout(meta.depth)) + resolve_layout(meta.depth)) if meta.date then meta.date = format_date(meta.date) -- cgit v1.2.3-54-g00ecf