From b530d646ac0857a10463bfb7e3a6dff810114f40 Mon Sep 17 00:00:00 2001 From: Kyle Mendell Date: Tue, 28 Jan 2025 15:19:16 -0600 Subject: [PATCH] docs: add version label to navbar (#186) Co-authored-by: Elias Schneider --- docs/docusaurus.config.ts | 11 ++++++++++- docs/src/version-label.ts | 23 +++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 docs/src/version-label.ts diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 506f286..6ca1aaa 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -47,6 +47,12 @@ const config: Config = { src: "img/pocket-id.png", }, items: [ + // Version gets replaced by the version-label.ts script + { + to: "#version", + label: " ", + position: "right", + }, { href: "https://github.com/stonith404/pocket-id", label: "GitHub", @@ -59,6 +65,9 @@ const config: Config = { darkTheme: prismThemes.dracula, }, } satisfies Preset.ThemeConfig, -}; + clientModules: [ + require.resolve('./src/version-label.ts'), +], +}; export default config; diff --git a/docs/src/version-label.ts b/docs/src/version-label.ts new file mode 100644 index 0000000..a83ff5d --- /dev/null +++ b/docs/src/version-label.ts @@ -0,0 +1,23 @@ +import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment"; + +if (ExecutionEnvironment.canUseDOM) { + function readVersionFile() { + return fetch( + "https://raw.githubusercontent.com/stonith404/pocket-id/refs/heads/main/.version" + ) + .then((response) => response.text()) + .catch((error) => `Error reading version file: ${error}`); + } + + function getVersion() { + readVersionFile() + .then((version) => { + const versionLabels = document.querySelectorAll('[href="#version"]'); + versionLabels.forEach((label) => { + (label as HTMLElement).innerText = `v${version}`; + }); + }) + .catch((error) => console.error("Error fetching version:", error)); + } + window.addEventListener("load", getVersion); +}