diff --git a/doc/.vitepress/config.ts b/doc/.vitepress/config.ts index e816e25ebb..7a6b76a0f6 100644 --- a/doc/.vitepress/config.ts +++ b/doc/.vitepress/config.ts @@ -193,9 +193,16 @@ export default defineConfig({ ], }, + // GitHub and Discord stay here so the mobile overlay still has them. + // theme/Community.vue is the desktop pair, with live counts and the + // hand-drawn icons from moq.dev; custom.css hides these two in the + // navbar so they do not duplicate. socialLinks: [ { icon: "github", link: "https://github.com/moq-dev/moq" }, { icon: "discord", link: "https://discord.gg/FCYF3p99mr" }, + { icon: "x", link: "https://x.com/kixelated" }, + { icon: "bluesky", link: "https://bsky.app/profile/kixel.me" }, + { icon: "linkedin", link: "https://www.linkedin.com/in/luke-curley-635a457/" }, ], editLink: { diff --git a/doc/.vitepress/theme/Community.vue b/doc/.vitepress/theme/Community.vue new file mode 100644 index 0000000000..2dd8b312d4 --- /dev/null +++ b/doc/.vitepress/theme/Community.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/doc/.vitepress/theme/custom.css b/doc/.vitepress/theme/custom.css index 04bab82fb4..80986a4c5c 100644 --- a/doc/.vitepress/theme/custom.css +++ b/doc/.vitepress/theme/custom.css @@ -130,6 +130,14 @@ border-bottom-color: #334155; } +/* Community.vue is the GitHub/Discord pair in the desktop navbar. Keep the + stock entries so the mobile overlay still has those links, and hide the + duplicates here (VPNavBarExtra is also inside VPNavBar). */ +.VPNavBar .VPSocialLink[href="https://github.com/moq-dev/moq"], +.VPNavBar .VPSocialLink[href="https://discord.gg/FCYF3p99mr"] { + display: none; +} + /* Sidebar styling */ .VPSidebar { background-color: #0f172a; diff --git a/doc/.vitepress/theme/index.js b/doc/.vitepress/theme/index.js index c4fdf26edc..9f500b36a6 100644 --- a/doc/.vitepress/theme/index.js +++ b/doc/.vitepress/theme/index.js @@ -1,14 +1,17 @@ import { h } from "vue"; import DefaultTheme from "vitepress/theme"; import Banner from "./Banner.vue"; +import Community from "./Community.vue"; import "./custom.css"; export default { extends: DefaultTheme, Layout() { - // Render the site-wide notice above every page via the layout-top slot. + // Render the site-wide notice above every page via the layout-top slot, + // and the GitHub/Discord counts at the end of the navbar. return h(DefaultTheme.Layout, null, { "layout-top": () => h(Banner), + "nav-bar-content-after": () => h(Community), }); }, }; diff --git a/doc/public/emoji/discord.svg b/doc/public/emoji/discord.svg new file mode 100644 index 0000000000..df2ce338a1 --- /dev/null +++ b/doc/public/emoji/discord.svg @@ -0,0 +1,66 @@ + + + + + diff --git a/doc/public/emoji/github.svg b/doc/public/emoji/github.svg new file mode 100644 index 0000000000..1ddcb5cb98 --- /dev/null +++ b/doc/public/emoji/github.svg @@ -0,0 +1,50 @@ + + +