« get me outta code hell

content: generatePageLayout: divide style rules, apply default color - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generatePageLayout.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-06-03 09:30:56 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-06-03 09:30:56 -0300
commita6493da3ba7809dad4fd482936449e5649fa3a01 (patch)
tree2b0873faf275aeed18313a56bbc6075f0ffa5eb1 /src/content/dependencies/generatePageLayout.js
parentd68134384ada33975ffcf1085b79b6e1e8bfdd74 (diff)
content: generatePageLayout: divide style rules, apply default color
Diffstat (limited to 'src/content/dependencies/generatePageLayout.js')
-rw-r--r--src/content/dependencies/generatePageLayout.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js
index be61a6c..32effbf 100644
--- a/src/content/dependencies/generatePageLayout.js
+++ b/src/content/dependencies/generatePageLayout.js
@@ -2,6 +2,7 @@ import {empty, openAggregate} from '../../util/sugar.js';
 
 export default {
   contentDependencies: [
+    'generateColorStyleRules',
     'generateFooterLocalizationLinks',
     'generateStickyHeadingContainer',
     'transformContent',
@@ -19,6 +20,7 @@ export default {
   sprawl({wikiInfo}) {
     return {
       footerContent: wikiInfo.footerContent,
+      wikiColor: wikiInfo.color,
       wikiName: wikiInfo.nameShort,
     };
   },
@@ -41,6 +43,9 @@ export default {
     relations.defaultFooterContent =
       relation('transformContent', sprawl.footerContent);
 
+    relations.defaultColorStyleRules =
+      relation('generateColorStyleRules', sprawl.wikiColor);
+
     return relations;
   },
 
@@ -100,7 +105,12 @@ export default {
 
         socialEmbed: {type: 'html'},
 
-        styleRules: {
+        colorStyleRules: {
+          validate: v => v.arrayOf(v.isString),
+          default: [],
+        },
+
+        additionalStyleRules: {
           validate: v => v.arrayOf(v.isString),
           default: [],
         },
@@ -456,9 +466,12 @@ export default {
                   href: to('shared.staticFile', `site4.css?${cachebust}`),
                 }),
 
-                html.tag('style',
-                  {[html.onlyIfContent]: true},
-                  slots.styleRules),
+                html.tag('style', [
+                  (empty(slots.colorStyleRules)
+                    ? relations.defaultColorStyleRules
+                    : slots.colorStyleRules),
+                  slots.additionalStyleRules,
+                ]),
 
                 html.tag('script', {
                   src: to('shared.staticFile', `lazy-loading.js?${cachebust}`),