diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-10-06 00:53:46 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-02-25 20:03:26 -0400 |
commit | 00d3a1f0e9fb09b1ebb3b5feb74aa0e72ffaead6 (patch) | |
tree | c57a12d87b526dbe27cbf4058a6fbb1487d34c4d /src/content/dependencies | |
parent | 931f3c0c86a0919ef8ebd8be69a9e081d579b1e6 (diff) |
content: generateArtTagSidebar: list current tag's descendants
Diffstat (limited to 'src/content/dependencies')
-rw-r--r-- | src/content/dependencies/generateArtTagSidebar.js | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/content/dependencies/generateArtTagSidebar.js b/src/content/dependencies/generateArtTagSidebar.js index 8b6b1a5f..bb93a952 100644 --- a/src/content/dependencies/generateArtTagSidebar.js +++ b/src/content/dependencies/generateArtTagSidebar.js @@ -1,4 +1,4 @@ -import {collectTreeLeaves, stitchArrays} from '#sugar'; +import {collectTreeLeaves, empty, stitchArrays} from '#sugar'; export default { contentDependencies: [ @@ -35,6 +35,11 @@ export default { artTagLink: relation('linkArtTagDynamically', artTag), + directDescendantArtTagLinks: + artTag.directDescendantArtTags + .map(descendantArtTag => + relation('linkArtTagDynamically', descendantArtTag)), + furthestAncestorArtTagMapLists: query.furthestAncestorArtTags .map(ancestorArtTag => @@ -43,7 +48,9 @@ export default { artTag)), }), - data: query => ({ + data: (query, sprawl, artTag) => ({ + name: artTag.name, + furthestAncestorArtTagNames: query.furthestAncestorArtTags .map(ancestorArtTag => ancestorArtTag.name), @@ -57,6 +64,18 @@ export default { html.tag('h1', relations.artTagLink), + !empty(relations.directDescendantArtTagLinks) && + html.tag('details', {class: 'current', open: true}, [ + html.tag('summary', + html.tag('span', + html.tag('b', + language.sanitize(data.name)))), + + html.tag('ul', + relations.directDescendantArtTagLinks + .map(link => html.tag('li', link))), + ]), + stitchArrays({ name: data.furthestAncestorArtTagNames, list: relations.furthestAncestorArtTagMapLists, @@ -64,7 +83,9 @@ export default { html.tag('details', { class: 'has-tree-list', - open: relations.furthestAncestorArtTagMapLists.length === 1, + open: + empty(relations.directDescendantArtTagLinks) && + relations.furthestAncestorArtTagMapLists.length === 1, }, [ html.tag('summary', @@ -72,8 +93,8 @@ export default { html.tag('b', language.sanitize(name)))), - list, - ])), + list, + ])), ], }), ], |