diff --git a/.eleventy.js b/.eleventy.js index a8c32b7..56e8da1 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,11 +1,11 @@ +module.exports = function(eleventyConfig) { + const slugify = require("@sindresorhus/slugify"); + const markdownIt = require("markdown-it"); -module.exports = function (eleventyConfig) { - - let markdownIt = require("markdown-it"); let markdownLib = markdownIt({ breaks: true, html: true - }).use(function (md) { + }).use(function(md) { //https://github.com/DCsunset/markdown-it-mermaid-plugin const origRule = md.renderer.rules.fence.bind(md.renderer.rules); md.renderer.rules.fence = (tokens, idx, options, env, slf) => { @@ -27,11 +27,11 @@ module.exports = function (eleventyConfig) { return origRule(tokens, idx, options, env, slf); }; - const defaultRender = md.renderer.rules.link_open || function (tokens, idx, options, env, self) { + const defaultRender = md.renderer.rules.link_open || function(tokens, idx, options, env, self) { return self.renderToken(tokens, idx, options); }; - md.renderer.rules.link_open = function (tokens, idx, options, env, self) { + md.renderer.rules.link_open = function(tokens, idx, options, env, self) { const aIndex = tokens[idx].attrIndex('target'); const classIndex = tokens[idx].attrIndex('class'); @@ -57,8 +57,10 @@ module.exports = function (eleventyConfig) { eleventyConfig.setLibrary("md", markdownLib); - eleventyConfig.addFilter('link', function (str) { - return str && str.replace(/\[\[(.*?)\]\]/g, '$1'); + eleventyConfig.addFilter('link', function(str) { + return str && str.replace(/\[\[(.*?)\]\]/g, function(match, p1) { + return `${p1}`; + }); }) return { diff --git a/package-lock.json b/package-lock.json index 41376e0..a830ce5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@azure/storage-blob": "^12.8.0", "@octokit/core": "^3.5.1", + "@sindresorhus/slugify": "^1.1.0", "dotenv": "^10.0.0", "markdown-it": "^12.3.2" }, @@ -363,7 +364,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", - "dev": true, "dependencies": { "@sindresorhus/transliterate": "^0.1.1", "escape-string-regexp": "^4.0.0" @@ -379,7 +379,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", - "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0", "lodash.deburr": "^4.1.0" @@ -395,7 +394,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, "engines": { "node": ">=8" } @@ -1361,7 +1359,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "engines": { "node": ">=10" }, @@ -2307,8 +2304,7 @@ "node_modules/lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", - "dev": true + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, "node_modules/lodash.isfinite": { "version": "3.3.2", @@ -4459,7 +4455,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", - "dev": true, "requires": { "@sindresorhus/transliterate": "^0.1.1", "escape-string-regexp": "^4.0.0" @@ -4469,7 +4464,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", - "dev": true, "requires": { "escape-string-regexp": "^2.0.0", "lodash.deburr": "^4.1.0" @@ -4478,8 +4472,7 @@ "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" } } }, @@ -5278,8 +5271,7 @@ "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "esprima": { "version": "4.0.1", @@ -5993,8 +5985,7 @@ "lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", - "dev": true + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, "lodash.isfinite": { "version": "3.3.2", diff --git a/package.json b/package.json index 049cb65..1c3293b 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "dependencies": { "@azure/storage-blob": "^12.8.0", "@octokit/core": "^3.5.1", + "@sindresorhus/slugify": "^1.1.0", "dotenv": "^10.0.0", "markdown-it": "^12.3.2" } -} +} \ No newline at end of file diff --git a/src/site/_includes/layouts/note.njk b/src/site/_includes/layouts/note.njk index dfdabe6..d05b8b6 100644 --- a/src/site/_includes/layouts/note.njk +++ b/src/site/_includes/layouts/note.njk @@ -1,3 +1,7 @@ +--- +title: "/{{ page.fileSlug }}/" +permalink: "notes/{{ page.fileSlug | slugify }}/" +---