From d14bf4dea47af3948b9f5d6a823699ac3c09a0bf Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 30 Apr 2024 19:59:09 -0300 Subject: content: generateSearchSidebarBox (input appearance stub) --- src/content/dependencies/generatePageLayout.js | 17 +++++++++++++++++ .../dependencies/generateSearchSidebarBox.js | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/content/dependencies/generateSearchSidebarBox.js (limited to 'src/content/dependencies') diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js index 5d2a48cb..54a75771 100644 --- a/src/content/dependencies/generatePageLayout.js +++ b/src/content/dependencies/generatePageLayout.js @@ -5,6 +5,7 @@ export default { contentDependencies: [ 'generateColorStyleRules', 'generateFooterLocalizationLinks', + 'generateSearchSidebarBox', 'generateStickyHeadingContainer', 'transformContent', ], @@ -42,6 +43,9 @@ export default { relations.stickyHeadingContainer = relation('generateStickyHeadingContainer'); + relations.searchBox = + relation('generateSearchSidebarBox'); + if (sprawl.footerContent) { relations.defaultFooterContent = relation('transformContent', sprawl.footerContent); @@ -64,6 +68,11 @@ export default { default: true, }, + showSearch: { + type: 'boolean', + default: true, + }, + additionalNames: { type: 'html', mutable: false, @@ -385,6 +394,14 @@ export default { const leftSidebar = getSidebar('leftSidebar', 'sidebar-left'); const rightSidebar = getSidebar('rightSidebar', 'sidebar-right'); + if (slots.showSearch && !html.isBlank(leftSidebar)) { + leftSidebar.setSlot('boxes', + html.tags([ + relations.searchBox, + leftSidebar.getSlotValue('boxes'), + ])); + } + const hasSidebarLeft = !html.isBlank(html.resolve(leftSidebar)); const hasSidebarRight = !html.isBlank(html.resolve(rightSidebar)); diff --git a/src/content/dependencies/generateSearchSidebarBox.js b/src/content/dependencies/generateSearchSidebarBox.js new file mode 100644 index 00000000..f2fddfa5 --- /dev/null +++ b/src/content/dependencies/generateSearchSidebarBox.js @@ -0,0 +1,21 @@ +export default { + contentDependencies: ['generatePageSidebarBox'], + extraDependencies: ['html'], + + relations: (relation) => ({ + sidebarBox: + relation('generatePageSidebarBox'), + }), + + generate: (relations, {html}) => + relations.sidebarBox.slots({ + attributes: {class: 'search-sidebar-box'}, + collapsible: false, + + content: [ + html.tag('input', {class: 'wiki-search-input'}, + {placeholder: `Search for anything`}, + {type: 'search'}) + ], + }), +}; -- cgit 1.3.0-6-gf8a5