diff --git a/.gitignore b/.gitignore index 5350462..14bec8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules -.vitepress/dist -.vitepress/cache +base/.vitepress/dist +base/.vitepress/cache dist \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..795d024 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..d23208f --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vitepress/config.mjs b/.vitepress/config.mjs index a21b6c8..fa68a76 100644 --- a/.vitepress/config.mjs +++ b/.vitepress/config.mjs @@ -1,28 +1,9 @@ -import { defineConfig } from 'vitepress' +import sidebarConfig from '../composer.js' -// https://vitepress.dev/reference/site-config -export default defineConfig({ - title: "pixeldocs", - description: "Documentation for the PixelServices projects", - themeConfig: { - // https://vitepress.dev/reference/default-theme-config - nav: [ - { text: 'Home', link: '/' }, - { text: 'Examples', link: '/markdown-examples' } - ], - - sidebar: [ - { - text: 'Examples', - items: [ - { text: 'Markdown Examples', link: '/markdown-examples' }, - { text: 'Runtime API Examples', link: '/api-examples' } - ] - } - ], - - socialLinks: [ - { icon: 'github', link: 'https://github.com/vuejs/vitepress' } - ] - } -}) +export default { + themeConfig: { + siteTitle: 'Pixel Services Docs', + logo: 'https://static.pixel-services.com/static/assets/pservices_logo.png', + sidebar: sidebarConfig + } +} \ No newline at end of file diff --git a/api-examples.md b/api-examples.md deleted file mode 100644 index 6bd8bb5..0000000 --- a/api-examples.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -outline: deep ---- - -# Runtime API Examples - -This page demonstrates usage of some of the runtime APIs provided by VitePress. - -The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: - -```md - - -## Results - -### Theme Data -
{{ theme }}
- -### Page Data -
{{ page }}
- -### Page Frontmatter -
{{ frontmatter }}
-``` - - - -## Results - -### Theme Data -
{{ theme }}
- -### Page Data -
{{ page }}
- -### Page Frontmatter -
{{ frontmatter }}
- -## More - -Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). diff --git a/composer.js b/composer.js new file mode 100644 index 0000000..27fff23 --- /dev/null +++ b/composer.js @@ -0,0 +1,29 @@ +import fs from 'fs' +import path from 'path' +import { fileURLToPath } from 'url' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +console.log('Starting composer.js execution') + +const projects = ['flash', 'mobot', 'serverlibraries'] + +const sidebarConfig = {} + +projects.forEach(project => { + const sidebarPath = path.resolve(__dirname, `./${project}/config/sidebar.json`) + console.log(`Checking for sidebar.json in ${project}`) + if (fs.existsSync(sidebarPath)) { + console.log(`Found sidebar.json in ${project}`) + const sidebar = JSON.parse(fs.readFileSync(sidebarPath, 'utf-8')) + Object.assign(sidebarConfig, sidebar) + } else { + console.log(`sidebar.json not found in ${project}`) + } +}) + +// Log the contents of sidebarConfig for debugging +console.log('Final sidebarConfig:', JSON.stringify(sidebarConfig, null, 2)) + +export default sidebarConfig \ No newline at end of file diff --git a/flash/.vitepress/config.mjs b/flash/.vitepress/config.mjs new file mode 100644 index 0000000..76ccff3 --- /dev/null +++ b/flash/.vitepress/config.mjs @@ -0,0 +1,32 @@ +import { defineConfig } from 'vitepress' + +export default defineConfig({ + base: "/flash/", + title: "pixeldocs", + description: "Documentation for the PixelServices projects", + cleanUrls: true, + outDir: '../dist/flash', + themeConfig: { + sidebar: { + '/guide/': [ + { + text: 'Guide', + items: [ + { text: 'Introduction', link: '/guide/' }, + { text: 'Getting Started', link: '/guide/getting-started' } + ] + } + ], + '/': [ + { + text: 'General', + items: [ + { text: 'Home', link: '/' }, + { text: 'Markdown Examples', link: '/markdown-examples' }, + { text: 'API Examples', link: '/api-examples' } + ] + } + ] + } + } +}) \ No newline at end of file diff --git a/.vitepress/theme/index.js b/flash/.vitepress/theme/index.js similarity index 100% rename from .vitepress/theme/index.js rename to flash/.vitepress/theme/index.js diff --git a/.vitepress/theme/style.css b/flash/.vitepress/theme/style.css similarity index 100% rename from .vitepress/theme/style.css rename to flash/.vitepress/theme/style.css diff --git a/flash/config/sidebar.json b/flash/config/sidebar.json new file mode 100644 index 0000000..0047b0a --- /dev/null +++ b/flash/config/sidebar.json @@ -0,0 +1,10 @@ +{ + "/flash/": [ + { + "text": "Flash Documentation", + "items": [ + { "text": "Getting Started", "link": "/flash" } + ] + } + ] +} \ No newline at end of file diff --git a/flash/index.md b/flash/index.md new file mode 100644 index 0000000..6c3fa91 --- /dev/null +++ b/flash/index.md @@ -0,0 +1,72 @@ + + +# ⚡ Getting Started + +This page provides installation instructions for the latest version of the `flash` library from Pixel Services. + +## Installation + +### Maven (pom.xml) + +1. Add the repository : + ```xml + + + pixel-services + Pixel Services + https://maven.pixel-services.com/repository + + + ``` + +2. And the dependency : + ```xml + + + com.pixelservices + flash + {{ latestVersion }} + + + ``` + +### Gradle (build.gradle) + +1. Add the repository : + ```groovy + repositories { + maven { + url "https://maven.pixel-services.com/repository" + } + } + ``` + +2. And the dependency : + ```groovy + dependencies { + implementation 'com.pixelservices:flash:{{ latestVersion }}' + } + ``` + +
+ ⚡ Latest version: + + {{ latestVersion }} + +
\ No newline at end of file diff --git a/markdown-examples.md b/flash/markdown-examples.md similarity index 100% rename from markdown-examples.md rename to flash/markdown-examples.md diff --git a/index.md b/index.md index b49b5df..51c1867 100644 --- a/index.md +++ b/index.md @@ -3,23 +3,26 @@ layout: home hero: - name: "pixeldocs" - text: "Documentation for the PixelServices projects" - tagline: My great project tagline + name: "Pixel Services Documentation" + text: "" + tagline: "Explore the documentation for all public Pixel Services projects" actions: - theme: brand - text: Markdown Examples - link: /markdown-examples + text: Support Us + link: https://buymeacoffee.com/pixelservices - theme: alt - text: API Examples - link: /api-examples + text: Check out our Github + link: https://github.com/Pixel-Services features: - - title: Feature A - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit - - title: Feature B - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit - - title: Feature C - details: Lorem ipsum dolor sit amet, consectetur adipiscing elit + - title: Flash + details: Simple, modern and fast expressive web framework written in Java. + link: /flash + - title: ServerLibraries + details: A Library made to ease server-side Fabric mod development. + link: /serverlibraries + - title: MoBot + details: A Modular Discord Bot with a simple but efficent API. + link: /mobot --- diff --git a/mobot/.vitepress/config.mjs b/mobot/.vitepress/config.mjs new file mode 100644 index 0000000..3c7d8bd --- /dev/null +++ b/mobot/.vitepress/config.mjs @@ -0,0 +1,31 @@ +import { defineConfig } from 'vitepress' + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + base: "/mobot/", + title: "pixeldocs", + description: "Documentation for the PixelServices projects", + cleanUrls: true, + outDir: '../dist/mobot', + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: 'Home', link: '/' }, + { text: 'Examples', link: '/markdown-examples' } + ], + + sidebar: [ + { + text: 'Examples', + items: [ + { text: 'Markdown Examples', link: '/markdown-examples' }, + { text: 'Runtime API Examples', link: '/api-examples' } + ] + } + ], + + socialLinks: [ + { icon: 'github', link: 'https://github.com/vuejs/vitepress' } + ] + } +}) diff --git a/mobot/.vitepress/theme/index.js b/mobot/.vitepress/theme/index.js new file mode 100644 index 0000000..8ecf163 --- /dev/null +++ b/mobot/.vitepress/theme/index.js @@ -0,0 +1,17 @@ +// https://vitepress.dev/guide/custom-theme +import { h } from 'vue' +import DefaultTheme from 'vitepress/theme' +import './style.css' + +/** @type {import('vitepress').Theme} */ +export default { + extends: DefaultTheme, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + }) + }, + enhanceApp({ app, router, siteData }) { + // ... + } +} diff --git a/mobot/.vitepress/theme/style.css b/mobot/.vitepress/theme/style.css new file mode 100644 index 0000000..1a61cb1 --- /dev/null +++ b/mobot/.vitepress/theme/style.css @@ -0,0 +1,139 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * + * - `default`: The color used purely for subtle indication without any + * special meanings attached to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-default-1: var(--vp-c-gray-1); + --vp-c-default-2: var(--vp-c-gray-2); + --vp-c-default-3: var(--vp-c-gray-3); + --vp-c-default-soft: var(--vp-c-gray-soft); + + --vp-c-brand-1: var(--vp-c-indigo-1); + --vp-c-brand-2: var(--vp-c-indigo-2); + --vp-c-brand-3: var(--vp-c-indigo-3); + --vp-c-brand-soft: var(--vp-c-indigo-soft); + + --vp-c-tip-1: var(--vp-c-brand-1); + --vp-c-tip-2: var(--vp-c-brand-2); + --vp-c-tip-3: var(--vp-c-brand-3); + --vp-c-tip-soft: var(--vp-c-brand-soft); + + --vp-c-warning-1: var(--vp-c-yellow-1); + --vp-c-warning-2: var(--vp-c-yellow-2); + --vp-c-warning-3: var(--vp-c-yellow-3); + --vp-c-warning-soft: var(--vp-c-yellow-soft); + + --vp-c-danger-1: var(--vp-c-red-1); + --vp-c-danger-2: var(--vp-c-red-2); + --vp-c-danger-3: var(--vp-c-red-3); + --vp-c-danger-soft: var(--vp-c-red-soft); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: transparent; + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-bg: var(--vp-c-brand-3); + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-2); + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-c-brand-1); +} + +/** + * 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(44px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(68px); + } +} + +/** + * Component: Custom Block + * -------------------------------------------------------------------------- */ + +:root { + --vp-custom-block-tip-border: transparent; + --vp-custom-block-tip-text: var(--vp-c-text-1); + --vp-custom-block-tip-bg: var(--vp-c-brand-soft); + --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand-1) !important; +} + diff --git a/mobot/config/sidebar.json b/mobot/config/sidebar.json new file mode 100644 index 0000000..12bfae0 --- /dev/null +++ b/mobot/config/sidebar.json @@ -0,0 +1,10 @@ +{ + "/mobot/": [ + { + "text": "MoBot Documentation", + "items": [ + { "text": "Getting Started", "link": "/mobot" } + ] + } + ] +} \ No newline at end of file diff --git a/mobot/index.md b/mobot/index.md new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json index 386e97a..fc02cfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "pixeldocs", + "name": "PixelDocs", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index 155cf5d..a2619bb 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,14 @@ "vitepress": "^1.5.0", "vue": "^3.5.13" }, + "type": "module", "scripts": { "docs:dev": "vitepress dev", "docs:build": "vitepress build", - "docs:preview": "vitepress preview" + "docs:preview": "vitepress preview", + "build:all": "npm run build:base && npm run build:flash && npm run build:mobot", + "build:base": "vitepress build base", + "build:flash": "vitepress build flash", + "build:mobot": "vitepress build mobot" } -} +} \ No newline at end of file diff --git a/serverlibraries/.vitepress/config.mjs b/serverlibraries/.vitepress/config.mjs new file mode 100644 index 0000000..aa67aca --- /dev/null +++ b/serverlibraries/.vitepress/config.mjs @@ -0,0 +1,31 @@ +import { defineConfig } from 'vitepress' + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + base: "/serverlibraries/", + title: "pixeldocs", + description: "Documentation for the PixelServices projects", + cleanUrls: true, + outDir: '../dist/serverlibraries', + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: 'Home', link: '/' }, + { text: 'Examples', link: '/markdown-examples' } + ], + + sidebar: [ + { + text: 'Examples', + items: [ + { text: 'Markdown Examples', link: '/markdown-examples' }, + { text: 'Runtime API Examples', link: '/api-examples' } + ] + } + ], + + socialLinks: [ + { icon: 'github', link: 'https://github.com/vuejs/vitepress' } + ] + } +}) diff --git a/serverlibraries/.vitepress/theme/index.js b/serverlibraries/.vitepress/theme/index.js new file mode 100644 index 0000000..8ecf163 --- /dev/null +++ b/serverlibraries/.vitepress/theme/index.js @@ -0,0 +1,17 @@ +// https://vitepress.dev/guide/custom-theme +import { h } from 'vue' +import DefaultTheme from 'vitepress/theme' +import './style.css' + +/** @type {import('vitepress').Theme} */ +export default { + extends: DefaultTheme, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + }) + }, + enhanceApp({ app, router, siteData }) { + // ... + } +} diff --git a/serverlibraries/.vitepress/theme/style.css b/serverlibraries/.vitepress/theme/style.css new file mode 100644 index 0000000..1a61cb1 --- /dev/null +++ b/serverlibraries/.vitepress/theme/style.css @@ -0,0 +1,139 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * + * - `default`: The color used purely for subtle indication without any + * special meanings attached to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-default-1: var(--vp-c-gray-1); + --vp-c-default-2: var(--vp-c-gray-2); + --vp-c-default-3: var(--vp-c-gray-3); + --vp-c-default-soft: var(--vp-c-gray-soft); + + --vp-c-brand-1: var(--vp-c-indigo-1); + --vp-c-brand-2: var(--vp-c-indigo-2); + --vp-c-brand-3: var(--vp-c-indigo-3); + --vp-c-brand-soft: var(--vp-c-indigo-soft); + + --vp-c-tip-1: var(--vp-c-brand-1); + --vp-c-tip-2: var(--vp-c-brand-2); + --vp-c-tip-3: var(--vp-c-brand-3); + --vp-c-tip-soft: var(--vp-c-brand-soft); + + --vp-c-warning-1: var(--vp-c-yellow-1); + --vp-c-warning-2: var(--vp-c-yellow-2); + --vp-c-warning-3: var(--vp-c-yellow-3); + --vp-c-warning-soft: var(--vp-c-yellow-soft); + + --vp-c-danger-1: var(--vp-c-red-1); + --vp-c-danger-2: var(--vp-c-red-2); + --vp-c-danger-3: var(--vp-c-red-3); + --vp-c-danger-soft: var(--vp-c-red-soft); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: transparent; + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-bg: var(--vp-c-brand-3); + --vp-button-brand-hover-border: transparent; + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-2); + --vp-button-brand-active-border: transparent; + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-c-brand-1); +} + +/** + * 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(44px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(68px); + } +} + +/** + * Component: Custom Block + * -------------------------------------------------------------------------- */ + +:root { + --vp-custom-block-tip-border: transparent; + --vp-custom-block-tip-text: var(--vp-c-text-1); + --vp-custom-block-tip-bg: var(--vp-c-brand-soft); + --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand-1) !important; +} + diff --git a/serverlibraries/config/sidebar.json b/serverlibraries/config/sidebar.json new file mode 100644 index 0000000..dd6a2f5 --- /dev/null +++ b/serverlibraries/config/sidebar.json @@ -0,0 +1,10 @@ +{ + "/serverlibraries/": [ + { + "text": "ServerLibraries Documentation", + "items": [ + { "text": "Getting Started", "link": "/serverlibraries" } + ] + } + ] +} \ No newline at end of file diff --git a/serverlibraries/index.md b/serverlibraries/index.md new file mode 100644 index 0000000..b0b0cd0 --- /dev/null +++ b/serverlibraries/index.md @@ -0,0 +1,5 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: doc +--- +