From 881a43c7619e46c0fbbcdc86853fc4e87b005e21 Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Wed, 24 Jan 2024 14:30:16 +0200 Subject: [PATCH 1/6] feat: new nav macros --- src/registry/index.ts | 1 + src/registry/macros-runner.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/registry/index.ts b/src/registry/index.ts index 5267ab1..3f30075 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -146,6 +146,7 @@ interface InternalPageData { enum MetaMacros { cssref = 'cssref', + glossarysidebar = 'glossarysidebar', jsref = 'jsref', jssidebar = 'jssidebar', } diff --git a/src/registry/macros-runner.ts b/src/registry/macros-runner.ts index 7f06f88..9a480e6 100644 --- a/src/registry/macros-runner.ts +++ b/src/registry/macros-runner.ts @@ -6,7 +6,14 @@ import { ExpungedMacroInsert } from '../components'; const { macros: Macros, parseMacroArgs, extractMacros } = kuma; // List of macros that should be processed anyway, i.e for rendering navigation -const navigationalMacros = ['cssref', 'jssidebar', 'jsref', 'htmlref']; +const navigationalMacros = [ + 'cssref', + 'jssidebar', + 'jsref', + 'glossarysidebar', + 'htmlsidebar', + 'svgref', +]; const UNESCAPED_BACKTICK_MATCH = /([^\\])`/g; const UNESCAPED_SINGLE_QUOTE_MATCH = /([^\\])'/g; From 035b345f99e18140057dcd0381ec54b63a980001 Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Wed, 24 Jan 2024 14:43:12 +0200 Subject: [PATCH 2/6] fix: metamacros correction --- src/registry/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/registry/index.ts b/src/registry/index.ts index 3f30075..c39615e 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -146,9 +146,11 @@ interface InternalPageData { enum MetaMacros { cssref = 'cssref', - glossarysidebar = 'glossarysidebar', jsref = 'jsref', jssidebar = 'jssidebar', + glossarysidebar = 'glossarysidebar', + htmlsidebar = 'htmlsidebar', + svgref = 'svgref', } interface SidebarNavLink { From 24d04a2320628469a9d53be5f0b6c2e68b004446 Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Thu, 25 Jan 2024 12:47:38 +0200 Subject: [PATCH 3/6] feat: nav macro listsubpagesforsidebar --- src/registry/index.ts | 1 + src/registry/macros-runner.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/registry/index.ts b/src/registry/index.ts index c39615e..7b7af9f 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -151,6 +151,7 @@ enum MetaMacros { glossarysidebar = 'glossarysidebar', htmlsidebar = 'htmlsidebar', svgref = 'svgref', + listsubpagesforsidebar = 'listsubpagesforsidebar', } interface SidebarNavLink { diff --git a/src/registry/macros-runner.ts b/src/registry/macros-runner.ts index 9a480e6..321e04b 100644 --- a/src/registry/macros-runner.ts +++ b/src/registry/macros-runner.ts @@ -13,6 +13,7 @@ const navigationalMacros = [ 'glossarysidebar', 'htmlsidebar', 'svgref', + 'listsubpagesforsidebar', ]; const UNESCAPED_BACKTICK_MATCH = /([^\\])`/g; From b0b878e1cc36e1cf59cee75eec5e288dafe57450 Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Sat, 27 Jan 2024 22:21:33 +0200 Subject: [PATCH 4/6] fix: add mdn-data --- package.json | 3 ++- yarn.lock | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5193054..60822b5 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", "@types/unist": "^2.0.6", - "@webdoky/yari-ports": "^3.8.0", + "@webdoky/yari-ports": "^3.17.1", "acorn-import-assertions": "^1.8.0", "cyrillic-to-translit-js": "^3.2.1", "github-slugger": "^1.4.0", @@ -52,6 +52,7 @@ "lodash-es": "^4.17.21", "mdast-util-to-hast": "^12.1.1", "mdast-util-to-string": "^3.1.0", + "mdn-data": "^2.4.0", "prism-themes": "^1.9.0", "rehype-autolink-headings": "^6.1.1", "rehype-external-links": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index dc993bd..91408f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1130,10 +1130,10 @@ resolved "https://registry.yarnpkg.com/@use-it/interval/-/interval-1.0.0.tgz#c42c68f22ca29a0dc929041746373d94496d2b3a" integrity sha512-WQFcnSt/xM/mS8ZtJ0ut5lhPrl+V0HDPPcI/J0eUClsfiD+/r8A7IeW/pVcfpSVGWRmN3+WnjNteWuKyWs2WZg== -"@webdoky/yari-ports@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@webdoky/yari-ports/-/yari-ports-3.8.0.tgz#30646e30647c086ac31394cc46ee3a6f2fc77673" - integrity sha512-Oy5F2YeHbJ02LuS0PC7KZGkJnTNicpXDQCYYsPVfqgnxq9e5SiR3g4nySBtASd7QLrELHSq7VKtYC0kFqRmAPw== +"@webdoky/yari-ports@^3.17.1": + version "3.17.1" + resolved "https://registry.yarnpkg.com/@webdoky/yari-ports/-/yari-ports-3.17.1.tgz#d8bc7a49d6fd31ba9216bf29419921199c619e21" + integrity sha512-kBac8XjI+iNGzN/GVsbiOyHuN+ImC8+qFa04K4L25xen/llKFOYTrCBRTjNus3f5B8tsdmtHvyMiX1blVgrr3w== dependencies: "@mdn/browser-compat-data" "^4.1.2" "@mdn/yari" "^1.7.0" @@ -5829,6 +5829,11 @@ mdn-data@2.0.27, mdn-data@^2.0.26, mdn-data@^2.0.27: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.27.tgz#1710baa7b0db8176d3b3d565ccb7915fc69525ab" integrity sha512-kwqO0I0jtWr25KcfLm9pia8vLZ8qoAKhWZuZMbneJq3jjBD3gl5nZs8l8Tu3ZBlBAHVQtDur9rdDGyvtfVraHQ== +mdn-data@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.4.0.tgz#e78cdea15ddf9841c4de44b604ebefa0bce2978a" + integrity sha512-AB4NUFtlTkd4rhr73ocuerhDkpe71kr0VpFLwoYuALjYo8XBrGcBJFgqHADjPHj7Ux50bg+SyLEt6mcodrafzw== + mdurl@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" From 00d76f2d13ae89ff5b658b7b9bbd7fbd6c95b697 Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Sat, 27 Jan 2024 22:22:07 +0200 Subject: [PATCH 5/6] fix: walk util --- src/registry/utils/walk.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/registry/utils/walk.ts b/src/registry/utils/walk.ts index 4665c77..f5065d1 100644 --- a/src/registry/utils/walk.ts +++ b/src/registry/utils/walk.ts @@ -1,7 +1,10 @@ import { promises as fs } from 'fs'; import path from 'path'; -const walk = async (dirname, deep = true) => { +export default async function walk( + dirname: string, + deep = true, +): Promise { const list = await fs.readdir(dirname); let files = []; @@ -11,10 +14,13 @@ const walk = async (dirname, deep = true) => { if (fileStat && fileStat.isDirectory()) { if (deep) { - const innerList = await walk(resolvedFile); + const innerList = await walk(resolvedFile, deep); files = files.concat(innerList); } } else { + if (fileName !== 'index.md') { + return; + } files.push(resolvedFile); } }); @@ -22,6 +28,4 @@ const walk = async (dirname, deep = true) => { await Promise.all(operations); return files; -}; - -export default walk; +} From 2f10fbd3b7c1f8456f63ee6fedd63fd922d489db Mon Sep 17 00:00:00 2001 From: Vitalii Perehonchuk Date: Sun, 28 Jan 2024 12:01:23 +0200 Subject: [PATCH 6/6] fix: correct listpages usage --- src/registry/index.ts | 10 +++++++--- src/registry/macros-runner.ts | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/registry/index.ts b/src/registry/index.ts index 7b7af9f..708e712 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -152,6 +152,7 @@ enum MetaMacros { htmlsidebar = 'htmlsidebar', svgref = 'svgref', listsubpagesforsidebar = 'listsubpagesforsidebar', + listsubpages = 'listsubpages', } interface SidebarNavLink { @@ -202,9 +203,12 @@ class Registry { (slugKey) => slugKey.startsWith(slug) && slugKey !== slug, ); if (!includeNested) { - childrenSlugs = childrenSlugs.filter( - (childSlug) => !trimSlashes(childSlug.split(slug).at(-1)).includes('/'), - ); + childrenSlugs = childrenSlugs.filter((childSlug) => { + const childSlugWithoutParent = trimSlashes( + childSlug.substring(slug.length + 1), + ); + return !childSlugWithoutParent.includes('/'); + }); } return childrenSlugs.map((slugKey) => this.getPageBySlug(slugKey)); } diff --git a/src/registry/macros-runner.ts b/src/registry/macros-runner.ts index 321e04b..9cedcb6 100644 --- a/src/registry/macros-runner.ts +++ b/src/registry/macros-runner.ts @@ -14,6 +14,7 @@ const navigationalMacros = [ 'htmlsidebar', 'svgref', 'listsubpagesforsidebar', + 'listsubpages', ]; const UNESCAPED_BACKTICK_MATCH = /([^\\])`/g;