From 6af85b002fcbf0523fd964af7db95449198a4c5e Mon Sep 17 00:00:00 2001 From: risson <18313093+rissson@users.noreply.github.com> Date: Fri, 19 May 2023 00:59:43 +0200 Subject: [PATCH] website: automatically add PR links to release notes (#5682) * website: automatically add PR links to release notes Signed-off-by: Marc 'risson' Schmitt * small cleanup, also link in docs-only build Signed-off-by: Jens Langhammer * fix docs-only build Signed-off-by: Jens Langhammer * some more minor cleanup Signed-off-by: Jens Langhammer --------- Signed-off-by: Marc 'risson' Schmitt Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- website/docusaurus.config.js | 400 +++++++++++++++++--------------- website/docusaurus.docs-only.js | 217 +++++++++-------- website/package-lock.json | 349 +++++++++++++++++++++++++++- website/package.json | 3 +- 4 files changed, 681 insertions(+), 288 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 12d39925b..de57762f2 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -1,207 +1,231 @@ -const fs = require("fs"); +const fs = require("fs").promises; const sidebar = require("./sidebars.js"); const releases = sidebar.docs .filter((doc) => doc.link?.slug === "releases")[0] .items.filter((release) => typeof release === "string"); -const footerEmail = fs.readFileSync("src/footer.html", { encoding: "utf-8" }); - /** @type {import('@docusaurus/types').DocusaurusConfig} */ -module.exports = { - title: "authentik", - tagline: "Making authentication simple.", - url: "https://goauthentik.io", - baseUrl: "/", - onBrokenLinks: "throw", - favicon: "img/icon.png", - organizationName: "Authentik Security Inc.", - projectName: "authentik", - themeConfig: { - navbar: { - title: "authentik", - logo: { - alt: "authentik logo", - src: "img/icon_left_brand.svg", +module.exports = async function () { + const remarkGithub = (await import("remark-github")).default; + const footerEmail = await fs.readFile("src/footer.html", { + encoding: "utf-8", + }); + return { + title: "authentik", + tagline: "Making authentication simple.", + url: "https://goauthentik.io", + baseUrl: "/", + onBrokenLinks: "throw", + favicon: "img/icon.png", + organizationName: "Authentik Security Inc.", + projectName: "authentik", + themeConfig: { + navbar: { + title: "authentik", + logo: { + alt: "authentik logo", + src: "img/icon_left_brand.svg", + }, + items: [ + { to: "blog", label: "Blog", position: "left" }, + { + to: "docs/", + label: "Docs", + position: "left", + }, + { + to: "integrations/", + label: "Integrations", + position: "left", + }, + { + to: "developer-docs/", + label: "Developer", + position: "left", + }, + { + to: "pricing/", + label: "Pricing", + position: "left", + }, + { + to: "jobs/", + label: "Jobs", + position: "left", + }, + { + type: "dropdown", + label: `Version: ${releases[0].replace( + /releases\/\d+\/v/, + "" + )}`, + position: "right", + items: releases.map((release) => { + const version = release.replace( + /releases\/\d+\/v/, + "" + ); + const subdomain = version.replace(".", "-"); + const label = `Version: ${version}`; + return { + label: label, + href: `https://version-${subdomain}.goauthentik.io`, + }; + }), + }, + { + href: "https://github.com/goauthentik/authentik", + className: "header-github-link", + "aria-label": "GitHub repository", + position: "right", + }, + { + href: "https://goauthentik.io/discord", + className: "header-discord-link", + "aria-label": "GitHub repository", + position: "right", + }, + ], }, - items: [ - { to: "blog", label: "Blog", position: "left" }, + footer: { + links: [ + { + title: "Subscribe to authentik News", + items: [ + { + html: footerEmail, + }, + ], + }, + { + title: "Documentation", + items: [ + { + label: "Documentation", + to: "docs/", + }, + { + label: "Integrations", + to: "integrations/", + }, + { + label: "Developer Documentation", + to: "developer-docs/", + }, + { + label: "Installations", + to: "docs/installation/", + }, + ], + }, + { + title: "More", + items: [ + { + label: "GitHub", + href: "https://github.com/goauthentik/authentik", + }, + { + label: "Discord", + href: "https://goauthentik.io/discord", + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`, + }, + tableOfContents: { + maxHeadingLevel: 5, + }, + colorMode: { + respectPrefersColorScheme: true, + }, + algolia: { + appId: "36ROD0O0FV", + apiKey: "727db511300ca9aec5425645bbbddfb5", + indexName: "goauthentik", + }, + }, + presets: [ + [ + "@docusaurus/preset-classic", { - to: "docs/", - label: "Docs", - position: "left", - }, - { - to: "integrations/", - label: "Integrations", - position: "left", - }, - { - to: "developer-docs/", - label: "Developer", - position: "left", - }, - { - to: "pricing/", - label: "Pricing", - position: "left", - }, - { - to: "jobs/", - label: "Jobs", - position: "left", - }, - { - type: "dropdown", - label: `Version: ${releases[0].replace( - /releases\/\d+\/v/, - "" - )}`, - position: "right", - items: releases.map((release) => { - const version = release.replace(/releases\/\d+\/v/, ""); - const subdomain = version.replace(".", "-"); - const label = `Version: ${version}`; - return { - label: label, - href: `https://version-${subdomain}.goauthentik.io`, - }; - }), - }, - { - href: "https://github.com/goauthentik/authentik", - className: "header-github-link", - "aria-label": "GitHub repository", - position: "right", - }, - { - href: "https://goauthentik.io/discord", - className: "header-discord-link", - "aria-label": "GitHub repository", - position: "right", + docs: { + id: "docs", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: + "https://github.com/goauthentik/authentik/edit/main/website/", + remarkPlugins: [ + [ + remarkGithub, + { + repository: "goauthentik/authentik", + // Only replace issues and PR links + buildUrl: function ( + values, + defaultBuildUrl + ) { + return values.type === "issue" + ? defaultBuildUrl(values) + : false; + }, + }, + ], + ], + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + gtag: { + trackingID: "G-9MVR9WZFZH", + anonymizeIP: true, + }, + blog: { + showReadingTime: true, + blogSidebarTitle: "All our posts", + blogSidebarCount: "ALL", + }, }, ], - }, - footer: { - links: [ + ], + plugins: [ + [ + "@docusaurus/plugin-content-docs", { - title: "Subscribe to authentik News", - items: [ - { - html: footerEmail, - }, - ], - }, - { - title: "Documentation", - items: [ - { - label: "Documentation", - to: "docs/", - }, - { - label: "Integrations", - to: "integrations/", - }, - { - label: "Developer Documentation", - to: "developer-docs/", - }, - { - label: "Installations", - to: "docs/installation/", - }, - ], - }, - { - title: "More", - items: [ - { - label: "GitHub", - href: "https://github.com/goauthentik/authentik", - }, - { - label: "Discord", - href: "https://goauthentik.io/discord", - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} Authentik Security Inc. Built with Docusaurus.`, - }, - tableOfContents: { - maxHeadingLevel: 5, - }, - colorMode: { - respectPrefersColorScheme: true, - }, - algolia: { - appId: "36ROD0O0FV", - apiKey: "727db511300ca9aec5425645bbbddfb5", - indexName: "goauthentik", - }, - }, - presets: [ - [ - "@docusaurus/preset-classic", - { - docs: { - id: "docs", - sidebarPath: require.resolve("./sidebars.js"), + id: "docsIntegrations", + path: "integrations", + routeBasePath: "integrations", + sidebarPath: require.resolve("./sidebarsIntegrations.js"), editUrl: "https://github.com/goauthentik/authentik/edit/main/website/", }, - theme: { - customCss: require.resolve("./src/css/custom.css"), + ], + [ + "@docusaurus/plugin-content-docs", + { + id: "docsDevelopers", + path: "developer-docs", + routeBasePath: "developer-docs", + sidebarPath: require.resolve("./sidebarsDev.js"), + editUrl: + "https://github.com/goauthentik/authentik/edit/main/website/", }, - gtag: { - trackingID: "G-9MVR9WZFZH", - anonymizeIP: true, - }, - blog: { - showReadingTime: true, - blogSidebarTitle: "All our posts", - blogSidebarCount: "ALL", - }, - }, + ], ], - ], - plugins: [ - [ - "@docusaurus/plugin-content-docs", - { - id: "docsIntegrations", - path: "integrations", - routeBasePath: "integrations", - sidebarPath: require.resolve("./sidebarsIntegrations.js"), - editUrl: - "https://github.com/goauthentik/authentik/edit/main/website/", - }, - ], - [ - "@docusaurus/plugin-content-docs", - { - id: "docsDevelopers", - path: "developer-docs", - routeBasePath: "developer-docs", - sidebarPath: require.resolve("./sidebarsDev.js"), - editUrl: - "https://github.com/goauthentik/authentik/edit/main/website/", - }, - ], - ], - markdown: { - mermaid: true, - }, - themes: ["@docusaurus/theme-mermaid"], - scripts: [ - { - src: "https://goauthentik.io/js/script.js", - async: true, - "data-domain": "goauthentik.io", + markdown: { + mermaid: true, }, - { - src: "https://boards.greenhouse.io/embed/job_board/js?for=authentiksecurity", - }, - ], + themes: ["@docusaurus/theme-mermaid"], + scripts: [ + { + src: "https://goauthentik.io/js/script.js", + async: true, + "data-domain": "goauthentik.io", + }, + { + src: "https://boards.greenhouse.io/embed/job_board/js?for=authentiksecurity", + }, + ], + }; }; diff --git a/website/docusaurus.docs-only.js b/website/docusaurus.docs-only.js index 9db7171ee..b2f791687 100644 --- a/website/docusaurus.docs-only.js +++ b/website/docusaurus.docs-only.js @@ -1,106 +1,127 @@ -const mainConfig = require("./docusaurus.config"); +const config = require("./docusaurus.config"); -module.exports = { - title: "authentik", - tagline: "Making authentication simple.", - url: "https://goauthentik.io", - baseUrl: "/if/help/", - onBrokenLinks: "throw", - favicon: "img/icon.png", - organizationName: "BeryJu", - projectName: "authentik", - themeConfig: { - navbar: { - title: "authentik", - logo: { - alt: "authentik logo", - src: "img/icon_left_brand.svg", - }, - items: [ - { - to: "docs/", - activeBasePath: "docs", - label: "Docs", - position: "left", +module.exports = async function () { + const remarkGithub = (await import("remark-github")).default; + const mainConfig = await config(); + return { + title: "authentik", + tagline: "Making authentication simple.", + url: "https://goauthentik.io", + baseUrl: "/if/help/", + onBrokenLinks: "throw", + favicon: "img/icon.png", + organizationName: "BeryJu", + projectName: "authentik", + themeConfig: { + navbar: { + title: "authentik", + logo: { + alt: "authentik logo", + src: "img/icon_left_brand.svg", }, - { - to: "integrations/", - activeBasePath: "integrations", - label: "Integrations", - position: "left", - }, - { - to: "developer-docs/", - activeBasePath: "developer-docs", - label: "Developer Docs", - position: "left", - }, - { - href: "https://github.com/goauthentik/authentik", - label: "GitHub", - position: "right", - }, - { - href: "https://goauthentik.io/discord", - label: "Discord", - position: "right", - }, - ], - }, - footer: mainConfig.themeConfig.footer, - colorMode: mainConfig.themeConfig.colorMode, - tableOfContents: mainConfig.themeConfig.tableOfContents, - }, - presets: [ - [ - "@docusaurus/preset-classic", - { - docs: { - id: "docs", - sidebarPath: require.resolve("./sidebars.js"), - editUrl: - "https://github.com/goauthentik/authentik/edit/main/website/", - }, - pages: false, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, - }, - ], - ], - plugins: [ - [ - "@docusaurus/plugin-content-docs", - { - id: "docsIntegrations", - path: "integrations", - routeBasePath: "integrations", - sidebarPath: require.resolve("./sidebarsIntegrations.js"), - editUrl: - "https://github.com/goauthentik/authentik/edit/main/website/", - }, - ], - [ - "@docusaurus/plugin-content-docs", - { - id: "docsDevelopers", - path: "developer-docs", - routeBasePath: "developer-docs", - sidebarPath: require.resolve("./sidebarsDev.js"), - editUrl: - "https://github.com/goauthentik/authentik/edit/main/website/", - }, - ], - [ - "@docusaurus/plugin-client-redirects", - { - redirects: [ + items: [ { - to: "/docs/", - from: ["/"], + to: "docs/", + activeBasePath: "docs", + label: "Docs", + position: "left", + }, + { + to: "integrations/", + activeBasePath: "integrations", + label: "Integrations", + position: "left", + }, + { + to: "developer-docs/", + activeBasePath: "developer-docs", + label: "Developer Docs", + position: "left", + }, + { + href: "https://github.com/goauthentik/authentik", + label: "GitHub", + position: "right", + }, + { + href: "https://goauthentik.io/discord", + label: "Discord", + position: "right", }, ], }, + footer: mainConfig.themeConfig.footer, + colorMode: mainConfig.themeConfig.colorMode, + tableOfContents: mainConfig.themeConfig.tableOfContents, + }, + presets: [ + [ + "@docusaurus/preset-classic", + { + docs: { + id: "docs", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: + "https://github.com/goauthentik/authentik/edit/main/website/", + remarkPlugins: [ + [ + remarkGithub, + { + repository: "goauthentik/authentik", + // Only replace issues and PR links + buildUrl: function ( + values, + defaultBuildUrl + ) { + return values.type === "issue" + ? defaultBuildUrl(values) + : false; + }, + }, + ], + ], + }, + pages: false, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }, + ], ], - ], + plugins: [ + [ + "@docusaurus/plugin-content-docs", + { + id: "docsIntegrations", + path: "integrations", + routeBasePath: "integrations", + sidebarPath: require.resolve("./sidebarsIntegrations.js"), + editUrl: + "https://github.com/goauthentik/authentik/edit/main/website/", + }, + ], + [ + "@docusaurus/plugin-content-docs", + { + id: "docsDevelopers", + path: "developer-docs", + routeBasePath: "developer-docs", + sidebarPath: require.resolve("./sidebarsDev.js"), + editUrl: + "https://github.com/goauthentik/authentik/edit/main/website/", + }, + ], + [ + "@docusaurus/plugin-client-redirects", + { + redirects: [ + { + to: "/docs/", + from: ["/"], + }, + ], + }, + ], + ], + }; }; diff --git a/website/package-lock.json b/website/package-lock.json index 692507821..de3c8040e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -21,7 +21,8 @@ "react-before-after-slider-component": "^1.1.8", "react-dom": "^17.0.2", "react-feather": "^2.0.10", - "react-toggle": "^4.1.3" + "react-toggle": "^4.1.3", + "remark-github": "^11.2.4" }, "devDependencies": { "prettier": "2.8.8" @@ -8443,6 +8444,57 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-to-hast": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", @@ -10664,6 +10716,160 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-github": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", + "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-github/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-github/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-github/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-github/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", @@ -19636,6 +19842,41 @@ "unist-util-visit": "^2.0.0" } }, + "mdast-util-find-and-replace": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "requires": { + "@types/mdast": "^3.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + } + } + }, "mdast-util-to-hast": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", @@ -21163,6 +21404,112 @@ "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" }, + "remark-github": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", + "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "mdast-util-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" + }, + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" + }, + "mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "requires": { + "@types/mdast": "^3.0.0" + } + }, + "trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" + }, + "unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + }, + "vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + } + }, + "vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + } + } + }, "remark-mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", diff --git a/website/package.json b/website/package.json index af0b68897..62e24e5ac 100644 --- a/website/package.json +++ b/website/package.json @@ -28,7 +28,8 @@ "react-before-after-slider-component": "^1.1.8", "react-dom": "^17.0.2", "react-feather": "^2.0.10", - "react-toggle": "^4.1.3" + "react-toggle": "^4.1.3", + "remark-github": "^11.2.4" }, "browserslist": { "production": [