From 7a0c6cb5c31dbdc14ce2a8d9114b257dd3d65849 Mon Sep 17 00:00:00 2001 From: dyzulk <66510723+dyzulk@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:55:12 +0700 Subject: [PATCH] feat: Implement initial VitePress documentation site with multi-language navigation and Open Graph metadata. --- docs/.vitepress/config.mts | 28 ++++++++++++++++++++++++++-- docs/.vitepress/config/nav.ts | 8 ++++++-- docs/public/og-image.png | Bin 0 -> 23435 bytes 3 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 docs/public/og-image.png diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 0679a7e..1b6e3d4 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -8,11 +8,35 @@ export default defineConfig({ lang: 'en-US', cleanUrls: true, lastUpdated: true, + sitemap: { + hostname: 'https://docs.mivo.dyzulk.com' + }, head: [ - ['link', { rel: 'icon', href: '/logo-m.svg' }] + ['link', { rel: 'icon', href: '/logo-m.svg' }], + ['meta', { name: 'theme-color', content: '#0ea5e9' }], + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:site_name', content: 'MIVO' }], + ['meta', { property: 'og:image', content: 'https://docs.mivo.dyzulk.com/og-image.png' }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { name: 'twitter:image', content: 'https://docs.mivo.dyzulk.com/og-image.png' }], + ['meta', { name: 'twitter:site', content: '@dyzulkdev' }] ], + transformHead: ({ pageData }) => { + const title = pageData.title ? `${pageData.title} | MIVO` : 'MIVO' + const description = pageData.description || "Modern Mikrotik Voucher Management System" + const url = `https://docs.mivo.dyzulk.com/${pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2')}` + + return [ + ['meta', { property: 'og:title', content: title }], + ['meta', { property: 'og:description', content: description }], + ['meta', { property: 'og:url', content: url }], + ['meta', { name: 'twitter:title', content: title }], + ['meta', { name: 'twitter:description', content: description }], + ] + }, + // Shared theme config themeConfig: { logo: { @@ -27,7 +51,7 @@ export default defineConfig({ footer: { message: 'Released under the MIT License.', - copyright: 'Copyright © 2026 DyzulkDev' + copyright: `Copyright © 2026${new Date().getFullYear() > 2026 ? ' - ' + new Date().getFullYear() : ''} DyzulkDev` }, search: { diff --git a/docs/.vitepress/config/nav.ts b/docs/.vitepress/config/nav.ts index eb268c1..a361b62 100644 --- a/docs/.vitepress/config/nav.ts +++ b/docs/.vitepress/config/nav.ts @@ -8,7 +8,9 @@ export const navEn: DefaultTheme.NavItem[] = [ text: 'Community', items: [ { text: 'Changelog', link: 'https://github.com/dyzulk/mivo/releases' }, - { text: 'Contributing', link: 'https://github.com/dyzulk/mivo/blob/main/CONTRIBUTING.md' } + { text: 'Contributing', link: 'https://github.com/dyzulk/mivo/blob/main/CONTRIBUTING.md' }, + { text: 'Forum (Issues)', link: 'https://github.com/dyzulk/mivo/issues' }, + { text: 'Star on GitHub', link: 'https://github.com/dyzulk/mivo/stargazers' } ] } ] @@ -21,7 +23,9 @@ export const navId: DefaultTheme.NavItem[] = [ text: 'Komunitas', items: [ { text: 'Catatan Rilis', link: 'https://github.com/dyzulk/mivo/releases' }, - { text: 'Kontribusi', link: 'https://github.com/dyzulk/mivo/blob/main/CONTRIBUTING.md' } + { text: 'Kontribusi', link: 'https://github.com/dyzulk/mivo/blob/main/CONTRIBUTING.md' }, + { text: 'Forum (Issues)', link: 'https://github.com/dyzulk/mivo/issues' }, + { text: 'Beri Bintang', link: 'https://github.com/dyzulk/mivo/stargazers' } ] } ] diff --git a/docs/public/og-image.png b/docs/public/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..72d7cd95e21c1600685b67476e95e2930dcb7626 GIT binary patch literal 23435 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 aVjcY1J0hlY%;l6~n&9o(&uxto<^KlAHm&#o literal 0 HcmV?d00001