diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/metadata.lua | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/scripts/metadata.lua b/scripts/metadata.lua index 4b77541..872034c 100644 --- a/scripts/metadata.lua +++ b/scripts/metadata.lua | |||
@@ -146,21 +146,21 @@ function prep_menu(active_id, main_menu) | |||
146 | end | 146 | end |
147 | 147 | ||
148 | function process_pages(global, order, pages_by_id) | 148 | function process_pages(global, order, pages_by_id) |
149 | if not pages_by_id then return nil end | ||
150 | |||
151 | local pages_all = pandoc.List() | 149 | local pages_all = pandoc.List() |
152 | local pages_date_desc = pandoc.List() | 150 | local pages_date_desc = pandoc.List() |
153 | 151 | ||
154 | for _, page in pairs(pages_by_id) do | 152 | if pages_by_id then |
155 | local p = process(global, page) | 153 | for _, page in pairs(pages_by_id) do |
156 | if not p.unlisted then | 154 | local p = process(global, page) |
157 | pages_all:insert(p) | 155 | if not p.unlisted then |
158 | if p.last_update then pages_date_desc:insert(p) end | 156 | pages_all:insert(p) |
157 | if p.last_update then pages_date_desc:insert(p) end | ||
158 | end | ||
159 | end | 159 | end |
160 | end | ||
161 | 160 | ||
162 | pages_all:sort(page_sort(order)) | 161 | pages_all:sort(page_sort(order)) |
163 | pages_date_desc:sort(page_sort("date_desc")) | 162 | pages_date_desc:sort(page_sort("date_desc")) |
163 | end | ||
164 | 164 | ||
165 | local pages_data = { all = pages_all, date_desc = pages_date_desc, by_id = pages_by_id } | 165 | local pages_data = { all = pages_all, date_desc = pages_date_desc, by_id = pages_by_id } |
166 | 166 | ||
@@ -170,7 +170,7 @@ end | |||
170 | function find_depth(pages) | 170 | function find_depth(pages) |
171 | local depth = 0 | 171 | local depth = 0 |
172 | 172 | ||
173 | if pages then | 173 | if #pages.all ~= 0 then |
174 | for i = 1, #pages.all do | 174 | for i = 1, #pages.all do |
175 | local p = pages.all[i] | 175 | local p = pages.all[i] |
176 | local d = tonumber(p.depth) | 176 | local d = tonumber(p.depth) |
@@ -250,8 +250,7 @@ function generate_list(meta) | |||
250 | if meta.depth == 2 then | 250 | if meta.depth == 2 then |
251 | return meta.pages.all | 251 | return meta.pages.all |
252 | :map(function(cat) | 252 | :map(function(cat) |
253 | local allItems = ((cat.pages and cat.pages.all) or pandoc.List()) | 253 | local allItems = cat.pages.all:map(function(p) return d2_page_to_list_item(meta, cat, p, false) end) |
254 | :map(function(p) return d2_page_to_list_item(meta, cat, p, false) end) | ||
255 | 254 | ||
256 | return cat_to_list_cat(cat, allItems) | 255 | return cat_to_list_cat(cat, allItems) |
257 | end) | 256 | end) |
@@ -261,11 +260,11 @@ function generate_list(meta) | |||
261 | if meta.depth == 3 then | 260 | if meta.depth == 3 then |
262 | return meta.pages.all | 261 | return meta.pages.all |
263 | :map(function(cat) | 262 | :map(function(cat) |
264 | local allItems = (cat.pages and cat.pages.all or pandoc.List()):flatMap(function(c) | 263 | local allItems = cat.pages.all:flatMap(function(c) |
265 | if not c.pages or not cat.list_flatten then | 264 | if #c.pages.all ~= 0 and cat.list_flatten then |
266 | return pandoc.List({ d1_page_to_list_item(cat, c) }) | ||
267 | else | ||
268 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) | 265 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) |
266 | else | ||
267 | return pandoc.List({ d1_page_to_list_item(cat, c) }) | ||
269 | end | 268 | end |
270 | end) | 269 | end) |
271 | allItems:sort(page_sort(cat.list_order)) | 270 | allItems:sort(page_sort(cat.list_order)) |
@@ -318,7 +317,7 @@ function process(global, meta) | |||
318 | 317 | ||
319 | if meta.last_update then | 318 | if meta.last_update then |
320 | meta.last_update = format_date(meta.last_update) | 319 | meta.last_update = format_date(meta.last_update) |
321 | elseif meta.pages and #meta.pages.date_desc ~= 0 then | 320 | elseif #meta.pages.date_desc ~= 0 then |
322 | meta.last_update = meta.pages.date_desc[1].last_update | 321 | meta.last_update = meta.pages.date_desc[1].last_update |
323 | elseif meta.date then | 322 | elseif meta.date then |
324 | meta.last_update = format_date(meta.date) | 323 | meta.last_update = format_date(meta.date) |