diff options
| author | Volpeon <git@volpeon.ink> | 2022-07-27 19:10:15 +0200 |
|---|---|---|
| committer | Volpeon <git@volpeon.ink> | 2022-07-27 19:10:15 +0200 |
| commit | fd8aa54a4ce623d55219b1865e23b93b3b26e265 (patch) | |
| tree | dc9ae2a4bcbfebe35defaede22e21b9cc1bd08d3 /scripts | |
| parent | Updated emojis (diff) | |
| download | volpeon.ink-fd8aa54a4ce623d55219b1865e23b93b3b26e265.tar.gz volpeon.ink-fd8aa54a4ce623d55219b1865e23b93b3b26e265.tar.bz2 volpeon.ink-fd8aa54a4ce623d55219b1865e23b93b3b26e265.zip | |
Added draft feature
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/metadata.lua | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/scripts/metadata.lua b/scripts/metadata.lua index 872034c..98ad9e5 100644 --- a/scripts/metadata.lua +++ b/scripts/metadata.lua | |||
| @@ -170,14 +170,10 @@ end | |||
| 170 | function find_depth(pages) | 170 | function find_depth(pages) |
| 171 | local depth = 0 | 171 | local depth = 0 |
| 172 | 172 | ||
| 173 | if #pages.all ~= 0 then | 173 | for i = 1, #pages.all do |
| 174 | for i = 1, #pages.all do | 174 | local p = pages.all[i] |
| 175 | local p = pages.all[i] | 175 | local d = tonumber(p.depth) + 1 |
| 176 | local d = tonumber(p.depth) | 176 | if d > depth then depth = d end |
| 177 | if d > depth then depth = d end | ||
| 178 | end | ||
| 179 | |||
| 180 | depth = depth + 1 | ||
| 181 | end | 177 | end |
| 182 | 178 | ||
| 183 | return depth | 179 | return depth |
| @@ -187,9 +183,11 @@ function d1_page_to_list_item(meta, p) | |||
| 187 | return { | 183 | return { |
| 188 | title = p.title, | 184 | title = p.title, |
| 189 | subtitle = p.subtitle, | 185 | subtitle = p.subtitle, |
| 190 | date = meta.list_order == "date_desc" and p.date, | 186 | date = p.date, |
| 191 | last_update = meta.list_order == "date_desc" and p.last_update, | 187 | last_update = p.last_update, |
| 188 | show_date = meta.list_order == "date_desc", | ||
| 192 | schema_type = p.schema_type, | 189 | schema_type = p.schema_type, |
| 190 | draft = p.draft, | ||
| 193 | position = p.position, | 191 | position = p.position, |
| 194 | url = p.url, | 192 | url = p.url, |
| 195 | rel = p.rel, | 193 | rel = p.rel, |
| @@ -206,9 +204,11 @@ function d2_page_to_list_item(meta, cat, p, set_cat_title) | |||
| 206 | title = p.title, | 204 | title = p.title, |
| 207 | subtitle = p.subtitle, | 205 | subtitle = p.subtitle, |
| 208 | category = set_cat_title and cat.title, | 206 | category = set_cat_title and cat.title, |
| 209 | date = cat.list_order == "date_desc" and p.date, | 207 | date = p.date, |
| 210 | last_update = cat.list_order == "date_desc" and p.last_update, | 208 | last_update = p.last_update, |
| 209 | show_date = cat.list_order == "date_desc", | ||
| 211 | schema_type = p.schema_type, | 210 | schema_type = p.schema_type, |
| 211 | draft = p.draft, | ||
| 212 | position = p.position, | 212 | position = p.position, |
| 213 | url = p.url, | 213 | url = p.url, |
| 214 | rel = p.rel, | 214 | rel = p.rel, |
| @@ -240,17 +240,21 @@ function cat_to_list_cat(cat, allItems) | |||
| 240 | } | 240 | } |
| 241 | end | 241 | end |
| 242 | 242 | ||
| 243 | function generate_list(meta) | 243 | function generate_list(global, meta) |
| 244 | if meta.depth < 1 then return nil end | 244 | if meta.depth < 1 then return nil end |
| 245 | 245 | ||
| 246 | if meta.depth == 1 then | 246 | if meta.depth == 1 then |
| 247 | return meta.pages.all:map(function(p) return d1_page_to_list_item(meta, p) end) | 247 | return meta.pages.all |
| 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) | ||
| 248 | end | 250 | end |
| 249 | 251 | ||
| 250 | if meta.depth == 2 then | 252 | if meta.depth == 2 then |
| 251 | return meta.pages.all | 253 | return meta.pages.all |
| 252 | :map(function(cat) | 254 | :map(function(cat) |
| 253 | local allItems = cat.pages.all:map(function(p) return d2_page_to_list_item(meta, cat, p, false) end) | 255 | local allItems = cat.pages.all |
| 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) | ||
| 254 | 258 | ||
| 255 | return cat_to_list_cat(cat, allItems) | 259 | return cat_to_list_cat(cat, allItems) |
| 256 | end) | 260 | end) |
| @@ -258,20 +262,25 @@ function generate_list(meta) | |||
| 258 | end | 262 | end |
| 259 | 263 | ||
| 260 | if meta.depth == 3 then | 264 | if meta.depth == 3 then |
| 261 | return meta.pages.all | 265 | local list = meta.pages.all |
| 262 | :map(function(cat) | 266 | :map(function(cat) |
| 263 | local allItems = cat.pages.all:flatMap(function(c) | 267 | local allItems = cat.pages.all |
| 264 | if #c.pages.all ~= 0 and cat.list_flatten then | 268 | :flatMap(function(c) |
| 265 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) | 269 | if #c.pages.all ~= 0 and cat.list_flatten then |
| 266 | else | 270 | return c.pages.all:map(function(p) return d2_page_to_list_item(cat, c, p, true) end) |
| 267 | return pandoc.List({ d1_page_to_list_item(cat, c) }) | 271 | else |
| 268 | end | 272 | return pandoc.List({ d1_page_to_list_item(cat, c) }) |
| 269 | end) | 273 | end |
| 274 | end) | ||
| 275 | :filter(function(p) return not p.draft or global.mode == "dev" end) | ||
| 276 | |||
| 270 | allItems:sort(page_sort(cat.list_order)) | 277 | allItems:sort(page_sort(cat.list_order)) |
| 271 | 278 | ||
| 272 | return cat_to_list_cat(cat, allItems) | 279 | return cat_to_list_cat(cat, allItems) |
| 273 | end) | 280 | end) |
| 274 | :filter(function(cat) return #cat.items ~= 0 end) | 281 | :filter(function(cat) return #cat.items ~= 0 end) |
| 282 | |||
| 283 | return list | ||
| 275 | end | 284 | end |
| 276 | end | 285 | end |
| 277 | 286 | ||
| @@ -329,7 +338,7 @@ function process(global, meta) | |||
| 329 | meta.date = meta.last_update | 338 | meta.date = meta.last_update |
| 330 | end | 339 | end |
| 331 | 340 | ||
| 332 | meta.list = generate_list(meta) | 341 | meta.list = generate_list(global, meta) |
| 333 | 342 | ||
| 334 | return meta | 343 | return meta |
| 335 | end | 344 | end |
