diff --git a/package.json b/package.json index 596218c..ea0e26b 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.1", + "@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/src/registry/index.ts b/src/registry/index.ts index 5267ab1..708e712 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -148,6 +148,11 @@ enum MetaMacros { cssref = 'cssref', jsref = 'jsref', jssidebar = 'jssidebar', + glossarysidebar = 'glossarysidebar', + htmlsidebar = 'htmlsidebar', + svgref = 'svgref', + listsubpagesforsidebar = 'listsubpagesforsidebar', + listsubpages = 'listsubpages', } interface SidebarNavLink { @@ -198,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 7f06f88..9cedcb6 100644 --- a/src/registry/macros-runner.ts +++ b/src/registry/macros-runner.ts @@ -6,7 +6,16 @@ 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', + 'listsubpagesforsidebar', + 'listsubpages', +]; const UNESCAPED_BACKTICK_MATCH = /([^\\])`/g; const UNESCAPED_SINGLE_QUOTE_MATCH = /([^\\])'/g; 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; +} diff --git a/yarn.lock b/yarn.lock index df58c15..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.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@webdoky/yari-ports/-/yari-ports-3.8.1.tgz#1150503dbd70629d7e2c638a9d13b11c676e5b46" - integrity sha512-2rk7qoP94RUGo9mX4SZ7N48su6Nbwy8DuwD6jkIUou7bEFBVeCDmRznidpukccvE9V9mX5J9KuFuUlnb66pL7g== +"@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"