diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts deleted file mode 100644 index 902f7d8b3..000000000 --- a/docs/.vitepress/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { compareVersions } from 'compare-versions'; -import { readdirSync } from 'fs'; -import { parse } from 'path'; -import { defineConfig } from 'vitepress'; -import { getSidebar } from 'vitepress-plugin-auto-sidebar'; - -export default defineConfig({ - title: 'BlitzKit', - description: '🎉 All-in-one Discord bot for everything World of Tanks Blitz', - base: '/blitzkit/', - outDir: '../dist/docs', - - themeConfig: { - nav: [ - { text: 'Home', link: '/' }, - { text: 'Guide', link: '/guide/introduction' }, - ], - - sidebar: [ - ...getSidebar({ - collapsed: false, - contentDirs: ['guide', 'legal'], - contentRoot: '/docs/', - }), - - { - text: 'Changelogs', - items: readdirSync('./docs/changelogs') - .map((file) => parse(file).name) - .sort(compareVersions) - .map((name) => ({ text: name, link: `/changelogs/${name}.html` })), - }, - ], - - socialLinks: [ - { icon: 'github', link: 'https://github.com/tresabhi/blitzkit' }, - ], - }, -}); diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts deleted file mode 100644 index 107d0ae71..000000000 --- a/docs/.vitepress/theme/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -// https://vitepress.dev/guide/custom-theme -import { h } from 'vue'; -import Theme from 'vitepress/theme'; -import './style.css'; - -export default { - extends: Theme, - Layout: () => { - return h(Theme.Layout, null, { - // https://vitepress.dev/guide/extending-default-theme#layout-slots - }); - }, - enhanceApp({ app, router, siteData }) { - // ... - }, -}; diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css deleted file mode 100644 index 45d673a9e..000000000 --- a/docs/.vitepress/theme/style.css +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Customize default theme styling by overriding CSS variables: - * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css - */ - -/** - * Colors - * -------------------------------------------------------------------------- */ - -:root { - --vp-c-brand: #646cff; - --vp-c-brand-light: #747bff; - --vp-c-brand-lighter: #9499ff; - --vp-c-brand-lightest: #bcc0ff; - --vp-c-brand-dark: #535bf2; - --vp-c-brand-darker: #454ce1; - --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); -} - -/** - * Component: Button - * -------------------------------------------------------------------------- */ - -:root { - --vp-button-brand-border: var(--vp-c-brand-light); - --vp-button-brand-text: var(--vp-c-white); - --vp-button-brand-bg: var(--vp-c-brand); - --vp-button-brand-hover-border: var(--vp-c-brand-light); - --vp-button-brand-hover-text: var(--vp-c-white); - --vp-button-brand-hover-bg: var(--vp-c-brand-light); - --vp-button-brand-active-border: var(--vp-c-brand-light); - --vp-button-brand-active-text: var(--vp-c-white); - --vp-button-brand-active-bg: var(--vp-button-brand-bg); -} - -/** - * Component: Home - * -------------------------------------------------------------------------- */ - -:root { - --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient( - 120deg, - #bd34fe 30%, - #41d1ff - ); - - --vp-home-hero-image-background-image: linear-gradient( - -45deg, - #bd34fe 50%, - #47caff 50% - ); - --vp-home-hero-image-filter: blur(40px); -} - -@media (min-width: 640px) { - :root { - --vp-home-hero-image-filter: blur(56px); - } -} - -@media (min-width: 960px) { - :root { - --vp-home-hero-image-filter: blur(72px); - } -} - -/** - * Component: Custom Block - * -------------------------------------------------------------------------- */ - -:root { - --vp-custom-block-tip-border: var(--vp-c-brand); - --vp-custom-block-tip-text: var(--vp-c-brand-darker); - --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); -} - -.dark { - --vp-custom-block-tip-border: var(--vp-c-brand); - --vp-custom-block-tip-text: var(--vp-c-brand-lightest); - --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); -} - -/** - * Component: Algolia - * -------------------------------------------------------------------------- */ - -.DocSearch { - --docsearch-primary-color: var(--vp-c-brand) !important; -} diff --git a/docs/changelogs/1.3.0.md b/docs/changelogs/1.3.0.md index 209438f62..6161ab211 100644 --- a/docs/changelogs/1.3.0.md +++ b/docs/changelogs/1.3.0.md @@ -2,7 +2,7 @@ This release of Blitzkrieg focuses mainly on **performance**. Blitzkrieg now uses **Satori** and **resvg** under the hood to render images resulting in a solid **2x to 8x performance boost** depending on the situation. -This only applies to `/today` and /stats` as they're the only commands that render an image currently. +This only applies to `/today` and `/stats` as they're the only commands that render an image currently. We're working further on **performance optimizations**. Our goal is to deliver a message within **3 seconds or less**. We're close and we'll get there! diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 81b94c75d..000000000 --- a/docs/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -# https://vitepress.dev/reference/default-theme-home-page -layout: home - -hero: - name: 'BlitzKit' - text: Everything Blitz, right in Discord - tagline: All-in-one Discord bot for everything World of Tanks Blitz - image: - src: '/assets/images/hero.png' - alt: 'blitzkit' - actions: - - theme: brand - text: Add to Discord Server - link: /guide/invite - - theme: alt - text: Guide - link: /guide/introduction - -features: - - title: Clean and Efficient UI - icon: 🚀 - details: BlitzKit is where concise meets efficient. Get the information you need in the way you want. - - title: Endless Possibilities - icon: 🛠 - details: With endless ways to customize the output, it's guaranteed that you'll always get the information you need. - - title: Easy to Use - icon: 💻 - details: Leveraging Discord's, Blitz Stars', and Wargaming's powerful APIS, Blitzkit does all the hard work for you. ---- diff --git a/docs/public/assets/images/hero.png b/docs/public/assets/images/hero.png deleted file mode 100644 index 722f5bf0a..000000000 Binary files a/docs/public/assets/images/hero.png and /dev/null differ diff --git a/packages/website-legacy/package.json b/packages/website-legacy/package.json index dd0e5952d..77604ca49 100644 --- a/packages/website-legacy/package.json +++ b/packages/website-legacy/package.json @@ -19,8 +19,6 @@ "urlon": "^3.1.0", "react": "^18.3.1", "@vanilla-extract/css": "^1.15.5", - "markdown-to-jsx": "^7.5.0", - "compare-versions": "^6.1.1", "react-device-detect": "^2.2.3", "react-dom": "^18.3.1", "react-fuzzysort": "^1.0.1", diff --git a/packages/website-legacy/src/app/docs/[directory]/[document]/layout.tsx b/packages/website-legacy/src/app/docs/[directory]/[document]/layout.tsx deleted file mode 100644 index be5ab03af..000000000 --- a/packages/website-legacy/src/app/docs/[directory]/[document]/layout.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { readdir } from 'fs/promises'; - -export async function generateStaticParams() { - return await readdir('../../docs').then((directories) => - Promise.all( - directories - .filter( - (directory) => - !['.vitepress', 'public'].includes(directory) && - !directory.endsWith('.md'), - ) - .map((directory) => - readdir(`../../docs/${directory}`).then((files) => - Promise.all( - files - .filter((file) => file.endsWith('.md')) - .map((file) => ({ - directory, - document: file.replace(/\.md$/, ''), - })), - ), - ), - ), - ).then((directories) => directories.flat()), - ); -} - -export default function Layout({ children }: { children: React.ReactNode }) { - return children; -} diff --git a/packages/website-legacy/src/app/docs/[directory]/[document]/page.tsx b/packages/website-legacy/src/app/docs/[directory]/[document]/page.tsx deleted file mode 100644 index 22cc6cfd9..000000000 --- a/packages/website-legacy/src/app/docs/[directory]/[document]/page.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { assertSecret } from '@blitzkit/core'; -import { Table } from '@radix-ui/themes'; -import Markdown from 'markdown-to-jsx'; -import { use } from 'react'; -import { Link } from '../../../../components/Link'; -import { PageWrapper } from '../../../../components/PageWrapper'; - -export default function Page({ - params, -}: { - params: { document: string; directory: string }; -}) { - const markdown = use( - fetch( - `https://raw.githubusercontent.com/tresabhi/blitzkit/${assertSecret( - process.env.PUBLIC_ASSET_BRANCH, - )}/docs/${params.directory}/${params.document}.md`, - ).then((response) => response.text()), - ); - const title = markdown.split('\n')[0].replaceAll(/[^a-zA-Z0-9 \.&]/g, ''); - - return ( - <> - {title} - - - - {markdown} - - - - ); -} diff --git a/packages/website-legacy/src/app/docs/patches/page.tsx b/packages/website-legacy/src/app/docs/patches/page.tsx deleted file mode 100644 index 72f74d6fe..000000000 --- a/packages/website-legacy/src/app/docs/patches/page.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Flex, Heading } from '@radix-ui/themes'; -import { compareVersions } from 'compare-versions'; -import versions from '../../../../public/assets/versions.json'; -import { Link } from '../../../components/Link'; -import { PageWrapper } from '../../../components/PageWrapper'; - -export default async function Page() { - return ( - <> - BlitzKit - Patch Notes - - BlitzKit patch notes - - - {versions - .sort(compareVersions) - .reverse() - .map((version) => { - return ( - - {version} - - ); - })} - - {' '} - - ); -} diff --git a/packages/website/package.json b/packages/website/package.json index 122d490a7..cd80ffc8b 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -24,6 +24,8 @@ "nanostores": "^0.11.3", "purgecss": "^6.0.0", "react": "^18.3.1", + "markdown-to-jsx": "^7.5.0", + "compare-versions": "^6.1.1", "react-dom": "^18.3.1", "react-promise-suspense": "^0.3.4", "three": "0.159.0", diff --git a/packages/website/src/components/Markdown.tsx b/packages/website/src/components/Markdown.tsx new file mode 100644 index 000000000..dbcee017a --- /dev/null +++ b/packages/website/src/components/Markdown.tsx @@ -0,0 +1,26 @@ +import { Link, Table } from '@radix-ui/themes'; +import MarkdownToJSX from 'markdown-to-jsx'; + +interface MarkdownProps { + children: string; +} + +export function Markdown({ children }: MarkdownProps) { + return ( + + {children} + + ); +} diff --git a/packages/website/src/pages/docs/[directory]/[document]/index.astro b/packages/website/src/pages/docs/[directory]/[document]/index.astro new file mode 100644 index 000000000..b8638a2f5 --- /dev/null +++ b/packages/website/src/pages/docs/[directory]/[document]/index.astro @@ -0,0 +1,35 @@ +--- +import type { GetStaticPaths } from 'astro'; +import { readFile } from 'fs/promises'; +import { Page } from '.'; +import RootLayout from '../../../../layouts/RootLayout.astro'; + +export const getStaticPaths = (async () => { + const ROOT = '../../../../../../../docs/'; + const files = import.meta.glob('../../../../../../../docs/**/*.md', { + eager: true, + }); + + return await Promise.all( + Object.keys(files).map(async (file) => { + const couple = file.replace(ROOT, '').split('/'); + couple[1] = couple[1].replace('.md', ''); + const content = await readFile( + `../../docs/${couple[0]}/${couple[1]}.md`, + ).then((buffer) => buffer.toString()); + + return { + params: { directory: couple[0], document: couple[1] }, + props: { content }, + }; + }), + ); +}) satisfies GetStaticPaths; + +const { content } = Astro.props; +--- + + + + + diff --git a/packages/website/src/pages/docs/[directory]/[document]/index.tsx b/packages/website/src/pages/docs/[directory]/[document]/index.tsx new file mode 100644 index 000000000..02ef84eb8 --- /dev/null +++ b/packages/website/src/pages/docs/[directory]/[document]/index.tsx @@ -0,0 +1,14 @@ +import { Markdown } from '../../../../components/Markdown'; +import { PageWrapper } from '../../../../components/PageWrapper'; + +interface PageProps { + content: string; +} + +export function Page({ content }: PageProps) { + return ( + + {content} + + ); +} diff --git a/packages/website/src/pages/docs/patches/index.astro b/packages/website/src/pages/docs/patches/index.astro new file mode 100644 index 000000000..cb8a1cddb --- /dev/null +++ b/packages/website/src/pages/docs/patches/index.astro @@ -0,0 +1,48 @@ +--- +import { MagicWandIcon, StarFilledIcon } from '@radix-ui/react-icons'; +import { Flex, Heading, Link } from '@radix-ui/themes'; +import { compareVersions } from 'compare-versions'; +import { PageWrapper } from '../../../components/PageWrapper'; +import RootLayout from '../../../layouts/RootLayout.astro'; + +// this can't be used in template literal :( +const ROOT = '../../../../../../docs/changelogs/'; + +const versions = Object.keys( + import.meta.glob(`../../../../../../docs/changelogs/*.md`, { + eager: true, + }), +) + .map((file) => file.replace(ROOT, '').replace('.md', '')) + .sort(compareVersions) + .reverse(); +--- + + + + BlitzKit patches + + + { + versions.map((version) => { + const split = version.split('.').map(Number); + const isMajor = split[2] === 0; + + return ( + + + {!isMajor && } + {isMajor && } + {version} + + + ); + }) + } + + +