From 59c3cde9e0af93baf1d8157ffe7579d2010a15a1 Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Mon, 6 Mar 2023 13:37:17 +0600 Subject: [PATCH] feat: User setup (#95) * allow users to add plugins to setup markdown and eleventy * comments on function * added userSetup.js to plugin-info.json --- .eleventy.js | 9 ++++++++- plugin-info.json | 3 ++- src/helpers/userSetup.js | 10 ++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/helpers/userSetup.js diff --git a/.eleventy.js b/.eleventy.js index ce2d887..2cce55a 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -7,6 +7,10 @@ const tocPlugin = require("eleventy-plugin-nesting-toc"); const { parse } = require("node-html-parser"); const { headerToId, namedHeadingsFilter } = require("./src/helpers/utils"); +const { + userMarkdownSetup, + userEleventySetup, +} = require("./src/helpers/userSetup"); const tagRegex = /(^|\s|\>)(#[^\s!@#$%^&*()=+\.,\[{\]};:'"?><]+)(?!([^<]*>))/g; @@ -156,7 +160,8 @@ module.exports = function (eleventyConfig) { return prefix + n; }; - }); + }) + .use(userMarkdownSetup); eleventyConfig.setLibrary("md", markdownLib); @@ -320,6 +325,8 @@ module.exports = function (eleventyConfig) { return variable; }); + userEleventySetup(eleventyConfig); + return { dir: { input: "src/site", diff --git a/plugin-info.json b/plugin-info.json index 7e43408..28b8064 100644 --- a/plugin-info.json +++ b/plugin-info.json @@ -12,7 +12,8 @@ "src/site/img/tree-1.svg", "src/site/img/tree-2.svg", "src/site/img/tree-3.svg", - "src/helpers/userUtils.js" + "src/helpers/userUtils.js", + "src/helpers/userSetup.js" ], "filesToModify": [ ".eleventy.js", diff --git a/src/helpers/userSetup.js b/src/helpers/userSetup.js new file mode 100644 index 0000000..ade7c3c --- /dev/null +++ b/src/helpers/userSetup.js @@ -0,0 +1,10 @@ +function userMarkdownSetup(md) { + // The md parameter stands for the markdown-it instance used throughout the site generator. + // Feel free to add any plugin you want here instead of /.eleventy.js +} +function userEleventySetup(eleventyConfig) { + // The eleventyConfig parameter stands for the the config instantiated in /.eleventy.js. + // Feel free to add any plugin you want here instead of /.eleventy.js +} +exports.userMarkdownSetup = userMarkdownSetup; +exports.userEleventySetup = userEleventySetup;