diff options
| -rw-r--r-- | content/notebook/pages/index.md | 1 | ||||
| -rw-r--r-- | scripts/metadata.lua | 35 | ||||
| -rw-r--r-- | templates/feed.xml | 22 | 
3 files changed, 24 insertions, 34 deletions
| diff --git a/content/notebook/pages/index.md b/content/notebook/pages/index.md index b32e28a..1c8fbc5 100644 --- a/content/notebook/pages/index.md +++ b/content/notebook/pages/index.md | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | --- | 1 | --- | 
| 2 | title: Pages | 2 | title: Pages | 
| 3 | depth: 1 | ||
| 3 | position: 1 | 4 | position: 1 | 
| 4 | list_read_indicators: true | 5 | list_read_indicators: true | 
| 5 | feed: true | 6 | feed: true | 
| diff --git a/scripts/metadata.lua b/scripts/metadata.lua index 98ad9e5..9cb9970 100644 --- a/scripts/metadata.lua +++ b/scripts/metadata.lua | |||
| @@ -162,9 +162,7 @@ function process_pages(global, order, pages_by_id) | |||
| 162 | pages_date_desc:sort(page_sort("date_desc")) | 162 | pages_date_desc:sort(page_sort("date_desc")) | 
| 163 | end | 163 | end | 
| 164 | 164 | ||
| 165 | local pages_data = { all = pages_all, date_desc = pages_date_desc, by_id = pages_by_id } | 165 | return { all = pages_all, date_desc = pages_date_desc, by_id = pages_by_id } | 
| 166 | |||
| 167 | return pages_data | ||
| 168 | end | 166 | end | 
| 169 | 167 | ||
| 170 | function find_depth(pages) | 168 | function find_depth(pages) | 
| @@ -240,21 +238,17 @@ function cat_to_list_cat(cat, allItems) | |||
| 240 | } | 238 | } | 
| 241 | end | 239 | end | 
| 242 | 240 | ||
| 243 | function generate_list(global, meta) | 241 | function generate_list(meta) | 
| 244 | if meta.depth < 1 then return nil end | 242 | if meta.depth < 1 then return nil end | 
| 245 | 243 | ||
| 246 | if meta.depth == 1 then | 244 | if meta.depth == 1 then | 
| 247 | return meta.pages.all | 245 | return meta.pages.all:map(function(p) return d1_page_to_list_item(meta, p) end) | 
| 248 | :map(function(p) return d1_page_to_list_item(meta, p) end) | ||
| 249 | :filter(function(p) return not p.draft or global.mode == "dev" end) | ||
| 250 | end | 246 | end | 
| 251 | 247 | ||
| 252 | if meta.depth == 2 then | 248 | if meta.depth == 2 then | 
| 253 | return meta.pages.all | 249 | return meta.pages.all | 
| 254 | :map(function(cat) | 250 | :map(function(cat) | 
| 255 | local allItems = cat.pages.all | 251 | local allItems = cat.pages.all:map(function(p) return d2_page_to_list_item(meta, cat, p, false) end) | 
| 256 | :map(function(p) return d2_page_to_list_item(meta, cat, p, false) end) | ||
| 257 | :filter(function(p) return not p.draft or global.mode == "dev" end) | ||
| 258 | 252 | ||
| 259 | return cat_to_list_cat(cat, allItems) | 253 | return cat_to_list_cat(cat, allItems) | 
| 260 | end) | 254 | end) | 
| @@ -264,15 +258,13 @@ function generate_list(global, meta) | |||
| 264 | if meta.depth == 3 then | 258 | if meta.depth == 3 then | 
| 265 | local list = meta.pages.all | 259 | local list = meta.pages.all | 
| 266 | :map(function(cat) | 260 | :map(function(cat) | 
| 267 | local allItems = cat.pages.all | 261 | local allItems = cat.pages.all:flatMap(function(c) | 
| 268 | :flatMap(function(c) | 262 | if cat.list_flatten and c.depth ~= 0 then | 
| 269 | if #c.pages.all ~= 0 and cat.list_flatten then | 263 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) | 
| 270 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) | 264 | else | 
| 271 | else | 265 | return pandoc.List({ d1_page_to_list_item(cat, c) }) | 
| 272 | return pandoc.List({ d1_page_to_list_item(cat, c) }) | 266 | end | 
| 273 | end | 267 | end) | 
| 274 | end) | ||
| 275 | :filter(function(p) return not p.draft or global.mode == "dev" end) | ||
| 276 | 268 | ||
| 277 | allItems:sort(page_sort(cat.list_order)) | 269 | allItems:sort(page_sort(cat.list_order)) | 
| 278 | 270 | ||
| @@ -287,6 +279,7 @@ end | |||
| 287 | function process(global, meta) | 279 | function process(global, meta) | 
| 288 | meta.namespace = resolve_namespace(meta.namespace) | 280 | meta.namespace = resolve_namespace(meta.namespace) | 
| 289 | meta.file_out = pandoc.utils.stringify(meta.file_out):gsub("^out", "") | 281 | meta.file_out = pandoc.utils.stringify(meta.file_out):gsub("^out", "") | 
| 282 | meta.unlisted = meta.unlisted or (meta.draft and global.mode ~= "dev") | ||
| 290 | meta.redirect = meta.url and true | 283 | meta.redirect = meta.url and true | 
| 291 | meta.url = meta.url and pandoc.utils.stringify(meta.url) | 284 | meta.url = meta.url and pandoc.utils.stringify(meta.url) | 
| 292 | meta.url = resolve_url(global.site.url, global.file_out, meta.url or meta.file_out) | 285 | meta.url = resolve_url(global.site.url, global.file_out, meta.url or meta.file_out) | 
| @@ -321,7 +314,7 @@ function process(global, meta) | |||
| 321 | end | 314 | end | 
| 322 | 315 | ||
| 323 | meta.pages = process_pages(global, meta.list_order, meta.pages) | 316 | meta.pages = process_pages(global, meta.list_order, meta.pages) | 
| 324 | meta.depth = find_depth(meta.pages) | 317 | meta.depth = meta.depth and tonumber(pandoc.utils.stringify(meta.depth)) or find_depth(meta.pages) | 
| 325 | meta.layout = prep_layout(meta.layout or (meta.redirect and "redirect") or resolve_layout(meta.depth)) | 318 | meta.layout = prep_layout(meta.layout or (meta.redirect and "redirect") or resolve_layout(meta.depth)) | 
| 326 | 319 | ||
| 327 | if meta.last_update then | 320 | if meta.last_update then | 
| @@ -338,7 +331,7 @@ function process(global, meta) | |||
| 338 | meta.date = meta.last_update | 331 | meta.date = meta.last_update | 
| 339 | end | 332 | end | 
| 340 | 333 | ||
| 341 | meta.list = generate_list(global, meta) | 334 | meta.list = generate_list(meta) | 
| 342 | 335 | ||
| 343 | return meta | 336 | return meta | 
| 344 | end | 337 | end | 
| diff --git a/templates/feed.xml b/templates/feed.xml index e6d3cae..915c000 100644 --- a/templates/feed.xml +++ b/templates/feed.xml | |||
| @@ -17,24 +17,20 @@ | |||
| 17 | $if(layout.is_categorized_list)$ | 17 | $if(layout.is_categorized_list)$ | 
| 18 | $for(pages.date_desc)$ | 18 | $for(pages.date_desc)$ | 
| 19 | $for(it.pages.date_desc)$ | 19 | $for(it.pages.date_desc)$ | 
| 20 | $if(it.draft)$$else$ | ||
| 21 | $if(it.url)$ | ||
| 22 | <entry> | ||
| 23 | <category term="$pages.date_desc.namespace.full$" label="$pages.date_desc.title$"/> | ||
| 24 | $it:feed_entry()$ | ||
| 25 | </entry> | ||
| 26 | $endif$ | ||
| 27 | $endif$ | ||
| 28 | $endfor$ | ||
| 29 | $endfor$ | ||
| 30 | $else$ | ||
| 31 | $for(pages.date_desc)$ | ||
| 32 | $if(it.draft)$$else$ | ||
| 33 | $if(it.url)$ | 20 | $if(it.url)$ | 
| 34 | <entry> | 21 | <entry> | 
| 22 | <category term="$pages.date_desc.namespace.full$" label="$pages.date_desc.title$"/> | ||
| 35 | $it:feed_entry()$ | 23 | $it:feed_entry()$ | 
| 36 | </entry> | 24 | </entry> | 
| 37 | $endif$ | 25 | $endif$ | 
| 26 | $endfor$ | ||
| 27 | $endfor$ | ||
| 28 | $else$ | ||
| 29 | $for(pages.date_desc)$ | ||
| 30 | $if(it.url)$ | ||
| 31 | <entry> | ||
| 32 | $it:feed_entry()$ | ||
| 33 | </entry> | ||
| 38 | $endif$ | 34 | $endif$ | 
| 39 | $endfor$ | 35 | $endfor$ | 
| 40 | $endif$ | 36 | $endif$ | 
