diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-11 10:34:47 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-02-12 07:43:59 -0400 |
commit | 26c9f3a8feb3803322a14f6f980f96ab62676b35 (patch) | |
tree | 5eff9e9d185cd338e98b437f41c8edfade28949b /src/content | |
parent | 39f7e9e975990bcfa28f9ccb20ff98e4a2867ddf (diff) |
content: generateWikiHomepage{*}: homepage sections
Diffstat (limited to 'src/content')
4 files changed, 43 insertions, 58 deletions
diff --git a/src/content/dependencies/generateWikiHomepageAlbumsRow.js b/src/content/dependencies/generateWikiHomepageAlbumsRow.js index 4ae48758..b8e56a97 100644 --- a/src/content/dependencies/generateWikiHomepageAlbumsRow.js +++ b/src/content/dependencies/generateWikiHomepageAlbumsRow.js @@ -3,7 +3,6 @@ import {getNewAdditions, getNewReleases} from '#wiki-data'; export default { contentDependencies: [ - 'generateWikiHomepageContentRow', 'generateCoverCarousel', 'generateCoverGrid', 'image', @@ -44,9 +43,6 @@ export default { }, relations: (relation, sprawl, row) => ({ - contentRow: - relation('generateWikiHomepageContentRow', row), - coverGrid: (row.displayStyle === 'grid' ? relation('generateCoverGrid') @@ -117,23 +113,15 @@ export default { .slot('mode', 'single-link') .content); - let content; - switch (data.displayStyle) { case 'grid': - content = - relations.coverGrid.slots({ - ...commonSlots, - names: data.names, - }); - break; + return relations.coverGrid.slots({ + ...commonSlots, + names: data.names, + }); case 'carousel': - content = - relations.coverCarousel.slots(commonSlots); - break; + return relations.coverCarousel.slots(commonSlots); } - - return relations.contentRow.slots({content}); }, }; diff --git a/src/content/dependencies/generateWikiHomepageContentRow.js b/src/content/dependencies/generateWikiHomepageContentRow.js deleted file mode 100644 index 3a36033f..00000000 --- a/src/content/dependencies/generateWikiHomepageContentRow.js +++ /dev/null @@ -1,30 +0,0 @@ -export default { - contentDependencies: ['generateColorStyleAttribute'], - extraDependencies: ['html'], - - relations: (relation, row) => ({ - colorStyle: - relation('generateColorStyleAttribute', row.color), - }), - - data: (row) => ({ - name: - row.name, - }), - - slots: { - content: { - type: 'html', - mutable: false, - }, - }, - - generate: (data, relations, slots, {html}) => - html.tag('section', {class: 'row'}, - relations.colorStyle, - - [ - html.tag('h2', data.name), - slots.content, - ]), -}; diff --git a/src/content/dependencies/generateWikiHomepagePage.js b/src/content/dependencies/generateWikiHomepagePage.js index 6698f0ef..8c09a007 100644 --- a/src/content/dependencies/generateWikiHomepagePage.js +++ b/src/content/dependencies/generateWikiHomepagePage.js @@ -3,8 +3,8 @@ export default { 'generatePageLayout', 'generatePageSidebar', 'generatePageSidebarBox', - 'generateWikiHomepageAlbumsRow', 'generateWikiHomepageNewsBox', + 'generateWikiHomepageSection', 'transformContent', ], @@ -40,15 +40,9 @@ export default { homepageLayout.navbarLinks .map(content => relation('transformContent', content)), - contentRows: - homepageLayout.rows.map(row => { - switch (row.type) { - case 'albums': - return relation('generateWikiHomepageAlbumsRow', row); - default: - return null; - } - }), + sections: + homepageLayout.sections + .map(section => relation('generateWikiHomepageSection', section)), }), data: (sprawl) => ({ @@ -65,7 +59,7 @@ export default { headingMode: 'static', mainContent: [ - relations.contentRows, + relations.sections, ], leftSidebar: diff --git a/src/content/dependencies/generateWikiHomepageSection.js b/src/content/dependencies/generateWikiHomepageSection.js new file mode 100644 index 00000000..15299dd4 --- /dev/null +++ b/src/content/dependencies/generateWikiHomepageSection.js @@ -0,0 +1,33 @@ +export default { + contentDependencies: [ + 'generateColorStyleAttribute', + 'generateWikiHomepageAlbumsRow', + ], + + extraDependencies: ['html'], + + relations: (relation, homepageSection) => ({ + colorStyle: + relation('generateColorStyleAttribute', homepageSection.color), + + rows: + homepageSection.rows.map(row => + (row.type === 'albums' + ? relation('generateWikiHomepageAlbumsRow', row) + : null)), + }), + + data: (homepageSection) => ({ + name: + homepageSection.name, + }), + + generate: (data, relations, {html}) => + html.tag('section', + relations.colorStyle, + + [ + html.tag('h2', data.name), + relations.rows, + ]), +}; |