From 705e80e5f2f33cf84bb1031217bc46e097a7c0d9 Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Mon, 6 Feb 2023 14:29:23 +0600 Subject: [PATCH 1/5] dynamic import implementation --- .eleventy.js | 3 +++ src/site/_data/dynamics.js | 33 +++++++++++++++++++++++++++++ src/site/_includes/layouts/note.njk | 18 ++++++++++++++++ src/site/index.njk | 18 ++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 src/site/_data/dynamics.js diff --git a/.eleventy.js b/.eleventy.js index 4e79e52..8ec34bc 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -11,6 +11,9 @@ const { headerToId, namedHeadingsFilter } = require("./src/helpers/utils"); const tagRegex = /(^|\s|\>)(#[^\s!@#$%^&*()=+\.,\[{\]};:'"?><]+)(?!([^<]*>))/g; module.exports = function (eleventyConfig) { + eleventyConfig.setLiquidOptions({ + dynamicPartials: true, + }); let markdownLib = markdownIt({ breaks: true, html: true, diff --git a/src/site/_data/dynamics.js b/src/site/_data/dynamics.js new file mode 100644 index 0000000..5aa87d2 --- /dev/null +++ b/src/site/_data/dynamics.js @@ -0,0 +1,33 @@ +const fsFileTree = require("fs-file-tree"); + +const BASE_PATH = "src/site/_includes/components/user" +const NAMESPACES = ["index", "notes", "common"]; +const SLOTS = ["header", "afterContent", "footer"] + +const generateComponentPaths = async (namespace) => { + const data = {}; + for (let index = 0; index < SLOTS.length; index++) { + const slot = SLOTS[index]; + try { + console.log(`${BASE_PATH}/${namespace}/${slot}`); + const tree = await fsFileTree(`${BASE_PATH}/${namespace}/${slot}`); + let comps = Object.keys(tree).filter((p) => p.indexOf(".njk") != -1).map((p) => `components/user/${namespace}/${slot}/${p}`); + comps.sort() + data[slot] = comps; + } catch { + data[slot] = []; + } + } + return data; +} + + +module.exports = async () => { + const data = {}; + for (let index = 0; index < NAMESPACES.length; index++) { + const ns = NAMESPACES[index]; + data[ns] = await generateComponentPaths(ns); + } + console.log(data); + return data; +} \ No newline at end of file diff --git a/src/site/_includes/layouts/note.njk b/src/site/_includes/layouts/note.njk index aa428e1..247bd27 100644 --- a/src/site/_includes/layouts/note.njk +++ b/src/site/_includes/layouts/note.njk @@ -38,8 +38,20 @@ permalink: "notes/{{ page.fileSlug | slugify }}/" {% endif %} + {% for imp in dynamics.common.header %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.notes.header %} + {% include imp %} + {% endfor %} {{ content | hideDataview | link | taggify | highlight | safe}} + {% for imp in dynamics.common.afterContent %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.notes.afterContent %} + {% include imp %} + {% endfor %} {% if settings.dgShowBacklinks === true or settings.dgShowLocalGraph === true or settings.dgShowToc === true%} @@ -50,5 +62,11 @@ permalink: "notes/{{ page.fileSlug | slugify }}/" {%include "components/linkPreview.njk"%} {% endif %} {% include "components/references.njk" %} + {% for imp in dynamics.common.footer %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.notes.footer %} + {% include imp %} + {% endfor %} diff --git a/src/site/index.njk b/src/site/index.njk index f753a53..8c8a0a8 100644 --- a/src/site/index.njk +++ b/src/site/index.njk @@ -33,10 +33,22 @@ {% endif %} + {% for imp in dynamics.common.header %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.index.header %} + {% include imp %} + {% endfor %} {%- for garden in collections.gardenEntry -%} {{garden.templateContent | hideDataview | link | taggify | highlight | safe }} {%- endfor -%} + {% for imp in dynamics.common.afterContent %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.index.afterContent %} + {% include imp %} + {% endfor %} {% if settings.dgShowBacklinks === true or settings.dgShowLocalGraph === true or settings.dgShowToc === true%} @@ -46,5 +58,11 @@ {% if settings.dgLinkPreview === true %} {%include "components/linkPreview.njk"%} {% endif %} + {% for imp in dynamics.common.footer %} + {% include imp %} + {% endfor %} + {% for imp in dynamics.index.footer %} + {% include imp %} + {% endfor %} From f123c5cfeb822f12612cd6de258052dacc773fb8 Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Mon, 6 Feb 2023 18:00:41 +0600 Subject: [PATCH 2/5] removed console log --- src/site/_data/dynamics.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/site/_data/dynamics.js b/src/site/_data/dynamics.js index 5aa87d2..d8afd3b 100644 --- a/src/site/_data/dynamics.js +++ b/src/site/_data/dynamics.js @@ -9,7 +9,6 @@ const generateComponentPaths = async (namespace) => { for (let index = 0; index < SLOTS.length; index++) { const slot = SLOTS[index]; try { - console.log(`${BASE_PATH}/${namespace}/${slot}`); const tree = await fsFileTree(`${BASE_PATH}/${namespace}/${slot}`); let comps = Object.keys(tree).filter((p) => p.indexOf(".njk") != -1).map((p) => `components/user/${namespace}/${slot}/${p}`); comps.sort() @@ -28,6 +27,5 @@ module.exports = async () => { const ns = NAMESPACES[index]; data[ns] = await generateComponentPaths(ns); } - console.log(data); return data; } \ No newline at end of file From e1c2268f37227b80d294d061a667b687c9ed44f5 Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Tue, 7 Feb 2023 17:10:22 +0600 Subject: [PATCH 3/5] external css support --- src/site/_data/dynamics.js | 13 +++++++++++++ src/site/_includes/components/pageheader.njk | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/site/_data/dynamics.js b/src/site/_data/dynamics.js index d8afd3b..973e3fb 100644 --- a/src/site/_data/dynamics.js +++ b/src/site/_data/dynamics.js @@ -1,6 +1,7 @@ const fsFileTree = require("fs-file-tree"); const BASE_PATH = "src/site/_includes/components/user" +const STYLE_PATH = "src/site/styles/user" const NAMESPACES = ["index", "notes", "common"]; const SLOTS = ["header", "afterContent", "footer"] @@ -20,6 +21,17 @@ const generateComponentPaths = async (namespace) => { return data; } +const generateStylesPaths = async () => { + try { + const tree = await fsFileTree(`${STYLE_PATH}`); + let comps = Object.keys(tree).map((p) => `/styles/user/${p}`); + comps.sort() + return comps + } catch { + return []; + } +} + module.exports = async () => { const data = {}; @@ -27,5 +39,6 @@ module.exports = async () => { const ns = NAMESPACES[index]; data[ns] = await generateComponentPaths(ns); } + data['styles'] = await generateStylesPaths() return data; } \ No newline at end of file diff --git a/src/site/_includes/components/pageheader.njk b/src/site/_includes/components/pageheader.njk index 4e3fe30..5895284 100644 --- a/src/site/_includes/components/pageheader.njk +++ b/src/site/_includes/components/pageheader.njk @@ -29,6 +29,9 @@ {%endif%} +{%- for style in dynamics.styles -%} + +{%- endfor -%} From 970b2acd93cfa2db42d5dffb61ab0f9116e23128 Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Tue, 7 Feb 2023 17:16:16 +0600 Subject: [PATCH 4/5] dynamic scss fix --- src/site/_data/dynamics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/site/_data/dynamics.js b/src/site/_data/dynamics.js index 973e3fb..d356a2c 100644 --- a/src/site/_data/dynamics.js +++ b/src/site/_data/dynamics.js @@ -24,7 +24,7 @@ const generateComponentPaths = async (namespace) => { const generateStylesPaths = async () => { try { const tree = await fsFileTree(`${STYLE_PATH}`); - let comps = Object.keys(tree).map((p) => `/styles/user/${p}`); + let comps = Object.keys(tree).map((p) => `/styles/user/${p}`.replace('.scss', '.css')); comps.sort() return comps } catch { From baa3191df091e58076fa740f7f46457ca99a10c1 Mon Sep 17 00:00:00 2001 From: Ole Eskild Steensen Date: Tue, 7 Feb 2023 13:07:17 +0100 Subject: [PATCH 5/5] Added new file to plugin info --- plugin-info.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin-info.json b/plugin-info.json index 405464c..9403ce4 100644 --- a/plugin-info.json +++ b/plugin-info.json @@ -45,6 +45,7 @@ "src/site/_data/versionednotes.js", "src/site/_data/meta.js", "src/site/_data/filetree.js", + "src/site/_data/dynamics.js", "src/site/img/outgoing.svg", "src/helpers/constants.js", "src/helpers/utils.js", @@ -56,4 +57,4 @@ "src/site/_data/eleventyComputed.js", "src/site/graph.njk" ] -} \ No newline at end of file +}