diff --git a/.astro/types.d.ts b/.astro/types.d.ts new file mode 100644 index 0000000..9e37910 --- /dev/null +++ b/.astro/types.d.ts @@ -0,0 +1,210 @@ +declare module 'astro:content' { + interface Render { + '.md': Promise<{ + Content: import('astro').MarkdownInstance<{}>['Content']; + headings: import('astro').MarkdownHeading[]; + remarkPluginFrontmatter: Record; + }>; + } +} + +declare module 'astro:content' { + export { z } from 'astro/zod'; + + type Flatten = T extends { [K: string]: infer U } ? U : never; + + export type CollectionKey = keyof AnyEntryMap; + export type CollectionEntry = Flatten; + + export type ContentCollectionKey = keyof ContentEntryMap; + export type DataCollectionKey = keyof DataEntryMap; + + // This needs to be in sync with ImageMetadata + export type ImageFunction = () => import('astro/zod').ZodObject<{ + src: import('astro/zod').ZodString; + width: import('astro/zod').ZodNumber; + height: import('astro/zod').ZodNumber; + format: import('astro/zod').ZodUnion< + [ + import('astro/zod').ZodLiteral<'png'>, + import('astro/zod').ZodLiteral<'jpg'>, + import('astro/zod').ZodLiteral<'jpeg'>, + import('astro/zod').ZodLiteral<'tiff'>, + import('astro/zod').ZodLiteral<'webp'>, + import('astro/zod').ZodLiteral<'gif'>, + import('astro/zod').ZodLiteral<'svg'>, + import('astro/zod').ZodLiteral<'avif'>, + ] + >; + }>; + + type BaseSchemaWithoutEffects = + | import('astro/zod').AnyZodObject + | import('astro/zod').ZodUnion<[BaseSchemaWithoutEffects, ...BaseSchemaWithoutEffects[]]> + | import('astro/zod').ZodDiscriminatedUnion + | import('astro/zod').ZodIntersection; + + type BaseSchema = + | BaseSchemaWithoutEffects + | import('astro/zod').ZodEffects; + + export type SchemaContext = { image: ImageFunction }; + + type DataCollectionConfig = { + type: 'data'; + schema?: S | ((context: SchemaContext) => S); + }; + + type ContentCollectionConfig = { + type?: 'content'; + schema?: S | ((context: SchemaContext) => S); + }; + + type CollectionConfig = ContentCollectionConfig | DataCollectionConfig; + + export function defineCollection( + input: CollectionConfig + ): CollectionConfig; + + type AllValuesOf = T extends any ? T[keyof T] : never; + type ValidContentEntrySlug = AllValuesOf< + ContentEntryMap[C] + >['slug']; + + export function getEntryBySlug< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >( + collection: C, + // Note that this has to accept a regular string too, for SSR + entrySlug: E + ): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + + export function getDataEntryById( + collection: C, + entryId: E + ): Promise>; + + export function getCollection>( + collection: C, + filter?: (entry: CollectionEntry) => entry is E + ): Promise; + export function getCollection( + collection: C, + filter?: (entry: CollectionEntry) => unknown + ): Promise[]>; + + export function getEntry< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >(entry: { + collection: C; + slug: E; + }): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >(entry: { + collection: C; + id: E; + }): E extends keyof DataEntryMap[C] + ? Promise + : Promise | undefined>; + export function getEntry< + C extends keyof ContentEntryMap, + E extends ValidContentEntrySlug | (string & {}), + >( + collection: C, + slug: E + ): E extends ValidContentEntrySlug + ? Promise> + : Promise | undefined>; + export function getEntry< + C extends keyof DataEntryMap, + E extends keyof DataEntryMap[C] | (string & {}), + >( + collection: C, + id: E + ): E extends keyof DataEntryMap[C] + ? Promise + : Promise | undefined>; + + /** Resolve an array of entry references from the same collection */ + export function getEntries( + entries: { + collection: C; + slug: ValidContentEntrySlug; + }[] + ): Promise[]>; + export function getEntries( + entries: { + collection: C; + id: keyof DataEntryMap[C]; + }[] + ): Promise[]>; + + export function reference( + collection: C + ): import('astro/zod').ZodEffects< + import('astro/zod').ZodString, + C extends keyof ContentEntryMap + ? { + collection: C; + slug: ValidContentEntrySlug; + } + : { + collection: C; + id: keyof DataEntryMap[C]; + } + >; + // Allow generic `string` to avoid excessive type errors in the config + // if `dev` is not running to update as you edit. + // Invalid collection names will be caught at build time. + export function reference( + collection: C + ): import('astro/zod').ZodEffects; + + type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; + type InferEntrySchema = import('astro/zod').infer< + ReturnTypeOrOriginal['schema']> + >; + + type ContentEntryMap = { + "releases": { +"4_3_17.md": { + id: "4_3_17.md"; + slug: "4_3_17"; + body: string; + collection: "releases"; + data: InferEntrySchema<"releases"> +} & { render(): Render[".md"] }; +"4_3_18.md": { + id: "4_3_18.md"; + slug: "4_3_18"; + body: string; + collection: "releases"; + data: InferEntrySchema<"releases"> +} & { render(): Render[".md"] }; +"5.0.8-beta.md": { + id: "5.0.8-beta.md"; + slug: "508-beta"; + body: string; + collection: "releases"; + data: InferEntrySchema<"releases"> +} & { render(): Render[".md"] }; +}; + + }; + + type DataEntryMap = { + + }; + + type AnyEntryMap = ContentEntryMap & DataEntryMap; + + type ContentConfig = typeof import("../src/content/config"); +} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index f690630..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - paths: [website/**] - -jobs: - deploy: - name: Deploy to GitHub Pages - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 14.x - cache: yarn - - name: Build website - working-directory: website - run: | - yarn install --frozen-lockfile - yarn build - - # Popular action to deploy to GitHub Pages: - # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - # Build output to publish to the `gh-pages` branch: - publish_dir: ./website/build - # Assign commit authorship to the official GH-Actions bot for deploys to `gh-pages` branch: - # https://github.com/actions/checkout/issues/13#issuecomment-724415212 - # The GH actions bot is used by default if you didn't specify the two fields. - # You can swap them out with your own user credentials. - user_name: github-actions[bot] - user_email: 41898282+github-actions[bot]@users.noreply.github.com \ No newline at end of file diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml deleted file mode 100644 index cdab495..0000000 --- a/.github/workflows/test-deploy.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Test deployment - -on: - pull_request: - branches: [main] - paths: [website/**] - -jobs: - test-deploy: - name: Test deployment - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 14.x - cache: yarn - - name: Test build - working-directory: website - run: | - yarn install --frozen-lockfile - yarn build \ No newline at end of file diff --git a/.gitignore b/.gitignore index b2d6de3..76add87 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,2 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* +node_modules +dist \ No newline at end of file diff --git a/README.md b/README.md index 60f56bb..0f92d37 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# ellie-patchnotes +# Ellie Patchnotes -[![Netlify Status](https://api.netlify.com/api/v1/badges/6819b1e5-ef88-4867-86fd-862281cda04d/deploy-status)](https://app.netlify.com/sites/ellie-patchnotes/deploys) +## Release notes site built with Astro diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..fca3337 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,6 @@ +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + site: 'https://notes.elliebot.net', +}); diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e00595d..0000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/blog/2022-05-07-4.1.3-patch-notes.md b/blog/2022-05-07-4.1.3-patch-notes.md deleted file mode 100644 index 933d625..0000000 --- a/blog/2022-05-07-4.1.3-patch-notes.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -slug: 4.1.3-patch-notes -title: 4.1.3 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Added - -- Added support for embed arrays in commands such as 'say, 'greet, 'bye, etc... - - Website to create them is live at https://eb.elliebot.net (old one is moved to https://oldeb.elliebot.net) - - Embed arrays don't have a plainText property (it's renamed to 'content') - - Embed arrays use color hex values instead of an integer - - Old embed format will still work - - There shouldn't be any breaking changes -- Added `'stondel` command which, when toggled, will make the bot delete online stream messages on the server when the stream goes offline -- Added a simple bank system. - - Users can deposit, withdraw and check the balance of their currency in the bank. - - Users can't check other user's bank balances. -- Added a button on a '$ command which, when clicked, sends you a message with your bank balance that only you can see. -- Added `'h ` - - Using this command will list all commands in the specified group - - Atm only 'bank is a proper group (`'h bank`) -- Added "Bank Accounts" entry to `'economy` - - - -### Changed - -- Reaction roles rewritten completely - - Supports multiple exclusivity groups per message - - Supports level requirements - - However they can only be added one by one - - Use the following commands for more information - - `'h 'reroa` - - `'h 'reroli` - - `'h 'rerot` - - `'h 'rerorm` - - `'h 'rerodela` -- Pagination is now using buttons instead of reactions -- Bot will now support much higher XP values for global and server levels - - -### Fixed - -- Fixed `'deletexp` command -- `'give` command should send DMs again -- `'modules` command now has a medusa module description \ No newline at end of file diff --git a/blog/2022-05-08-4.1.4-patch-notes.md b/blog/2022-05-08-4.1.4-patch-notes.md deleted file mode 100644 index 44f3fd8..0000000 --- a/blog/2022-05-08-4.1.4-patch-notes.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -slug: 4.1.4-patch-notes -title: 4.1.4 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - -- Fixed `'yun` \ No newline at end of file diff --git a/blog/2022-05-11-4.1.5-patch-notes.md b/blog/2022-05-11-4.1.5-patch-notes.md deleted file mode 100644 index e0de344..0000000 --- a/blog/2022-05-11-4.1.5-patch-notes.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -slug: 4.1.5-patch-notes -title: 4.1.5 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Changed - -- `'clubdesc ` will now have a nicer response - - -### Fixed - -- `'give` DM will once again show an amount -- Fixed an issue with filters not working and with custom reactions no longer being able to override commands. -- Fixed `'stock` command \ No newline at end of file diff --git a/blog/2022-05-14-4.1.6-patch-notes.md b/blog/2022-05-14-4.1.6-patch-notes.md deleted file mode 100644 index 8d75926..0000000 --- a/blog/2022-05-14-4.1.6-patch-notes.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -slug: 4.1.6-patch-notes -title: 4.1.6 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -Not anything to mention in this update to list as a patch note diff --git a/blog/2022-11-10-4.3.10-patch-notes.md b/blog/2022-11-10-4.3.10-patch-notes.md deleted file mode 100644 index bb7d33a..0000000 --- a/blog/2022-11-10-4.3.10-patch-notes.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -slug: 4.3.10-patch-notes -title: 4.3.10 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -Here are the current patch notes for Ellie - -## Added - - - 'filterlist / 'fl command which lists link and invite filtering channels and status - - Added support for %target% placeholder in 'alias command - - Added 'forwardtochannel which will forward messages to the current channel. It has lower priority than fwtoall - - Added 'exprtoggleglobal / 'extg which can be used to toggle usage of global expressions on the server - - -## Changed - - - Several club related command have their error messages improved - - Updated help text for 'antispam and 'antiraid - - You can now specify time and date (time is optional) in .remind command instead of relative time, in the format HH:mm dd.MM.YYYY - - -## Fixed - - - Fixed 'cmdcd console error - - Fixed an error when currency is add per xp - - Fixed 'feedadd - - - Fixed 'prune @target not working - - Fixed command cooldown calculation \ No newline at end of file diff --git a/blog/2022-12-03-small-update.md b/blog/2022-12-03-small-update.md deleted file mode 100644 index 4d77488..0000000 --- a/blog/2022-12-03-small-update.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: small-update -title: Small update on things -authors: [EmotionChild] -tags: [Update] ---- - -Hey guys sorry for the lack of patch notes I have been really busy with IRL stuff hopefully I can get back into writing the patch notes and publishing them again I am sorry for the lack of posts here and I plan on changing that - -Thanks for reading, - -EmotionChild \ No newline at end of file diff --git a/blog/2023-01-23-4.3.11-patch-notes.md b/blog/2023-01-23-4.3.11-patch-notes.md deleted file mode 100644 index b233679..0000000 --- a/blog/2023-01-23-4.3.11-patch-notes.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -slug: 4.3.11-patch-notes -title: 4.3.11 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Added - - - Added `'stickeradd` command - - -### Changed - - - - `'waifuinfo` optimized - - You can now specify an optional custom message in `'feed` and `'yun` which will be posted along with an update - - Greet/bye messages will now get disabled if they're set to a deleted/unknown channel - - Updated response strings - - `'translate` now supports many more languages - - `'translangs` prettier output - - -### Fixed - - - Added logging for thread events - - Fixed a bug for `'quotedeleteauthor` causing the executing user to delete own messages - - Fixed TimeOut punishment not alklowing duration - - Fixed a nullref in streamrole service - - Fixed some potential causes for ratelimit due to default message retry settings - - Fixed a patron rewards bug caused by monthly donation checking not accounting for year increase - - Fixed a patron rewards bug for users who connected the same discord account with multiple patreon accounts - - `'deletecurrency` will now also reset banked currency - - Fixed DMHelpText reply - - `'h` command show now properly show both channel and server user permission requirements - - Many fixes and improvements to medusa system - - Fixed trivia --nohint - - `'joinrace` will no longer fail if the user isn't in the database yet \ No newline at end of file diff --git a/blog/2023-02-12-4.3.12-patch-notes.md b/blog/2023-02-12-4.3.12-patch-notes.md deleted file mode 100644 index b888cea..0000000 --- a/blog/2023-02-12-4.3.12-patch-notes.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: 4.3.12-patch-notes -title: 4.3.12 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - - - Fixed `'betstats` not working on european locales - - Timed `'ban` will work on users who are not in the server - - Fixed some general bugs \ No newline at end of file diff --git a/blog/2023-02-20-4.3.13-patch-notes.md b/blog/2023-02-20-4.3.13-patch-notes.md deleted file mode 100644 index f10e565..0000000 --- a/blog/2023-02-20-4.3.13-patch-notes.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: 4.3.13-patch-notes -title: 4.3.13 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - - - Fixed `'log` userpresence - - `'q` will now use yt-dlp if anything other than ytProvider: Ytdl is set in data/searches.yml - - Fixed Title links on some embeds \ No newline at end of file diff --git a/blog/2023-04-02-4.3.14-patch-notes.md b/blog/2023-04-02-4.3.14-patch-notes.md deleted file mode 100644 index 48ce46c..0000000 --- a/blog/2023-04-02-4.3.14-patch-notes.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -slug: 4.3.14-patch-notes -title: 4.3.14 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - - - `'banktake` had ok/error responses flipped. No functional change - - PermRole should deny messages in threads todo - - Fixed chucknorris jokes - - `'logserver` will now work as intended \ No newline at end of file diff --git a/blog/2023-05-21-4.3.15-patch-notes.md b/blog/2023-05-21-4.3.15-patch-notes.md deleted file mode 100644 index 2c177d8..0000000 --- a/blog/2023-05-21-4.3.15-patch-notes.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -slug: 4.3.15-patch-notes -title: 4.3.15 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - - - Fixed -w 0 in trivia - - Fixed `'rps` amount field in the response - - Fixed `'showembed` output - - Fixed bank award's incorrect output message \ No newline at end of file diff --git a/blog/2023-05-24-4.3.16-patch-notes.md b/blog/2023-05-24-4.3.16-patch-notes.md deleted file mode 100644 index a1fbe24..0000000 --- a/blog/2023-05-24-4.3.16-patch-notes.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -slug: 4.3.16-patch-notes -title: 4.3.16 patch notes -authors: [EmotionChild] -tags: [Patchnote] ---- - -### Fixed - - - Fixed missing events from `'logevents` - - Fixed `'log` thread deleted and thread created events not working properly \ No newline at end of file diff --git a/blog/authors.yml b/blog/authors.yml deleted file mode 100644 index 882db97..0000000 --- a/blog/authors.yml +++ /dev/null @@ -1,11 +0,0 @@ -EmotionChild: - name: EmotionChild - title: Lead Developer and Project Lead - url: https://www.emotionchild.com - image_url: https://github.com/EmotionChild.png - -Ellie Devs: - name: Ellie Devs - title: Dev / management team - url: https://github.com/EllieBotDevs - image_url: https://github.com/EllieBotDevs.png \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js deleted file mode 100644 index 674a45e..0000000 --- a/docusaurus.config.js +++ /dev/null @@ -1,130 +0,0 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - -const lightCodeTheme = require('prism-react-renderer/themes/github'); -const darkCodeTheme = require('prism-react-renderer/themes/dracula'); - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: 'Ellie patchnotes', - tagline: 'Ellie patch notes', - url: 'https://patchnotes.elliebot.net', - baseUrl: '/', - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - favicon: 'img/favicon.ico', - trailingSlash: false, - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'EllieBotDevs', // Usually your GitHub org/user name. - projectName: 'ellie-patchnotes', // Usually your repo name. - - // Even if you don't use internalization, you can use this field to set useful - // metadata like html lang. For example, if your site is Chinese, you may want - // to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: false, - blog: { - routeBasePath: '/', - showReadingTime: true, - readingTime: ({content, frontMatter, defaultReadingTime}) => - frontMatter.hide_reading_time ? undefined : defaultReadingTime({content}), - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/EllieBotDevs/ellie-patchnotes/tree/dev/blog', - blogTitle: 'Ellie patchnotes', - blogDescription: 'Here you can find the patch notes for Ellie', - postsPerPage: 'ALL', - feedOptions: { - type: 'all', - copyright: `Copyright © ${new Date().getFullYear()} EllieBotDevs.`, - }, - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - }), - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - navbar: { - title: 'Ellie patchnotes', - logo: { - alt: 'Ellie patchnotes', - src: 'img/favicon.ico', - }, - items: [ - { - href: 'https://github.com/EllieBotDevs/ellie-patchnotes', - label: 'GitHub', - position: 'right', - }, - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Our other sites', - items: [ - { - label: 'Documentation Site', - to: 'https://docs.elliebot.net', - }, - { - label: 'Ellie blog', - to: 'https://blog.elliebot.net', - }, - { - label: 'Main site', - to: 'https://elliebot.net', - } - ], - }, - { - title: 'Community', - items: [ - { - label: 'Discord', - href: 'https://discord.com/invite/SVQVzJq', - }, - { - label: 'Twitter', - href: 'https://twitter.com/Computergeex5', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'GitHub', - href: 'https://github.com/EllieBotDevs/ellie-patchnotes', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} EllieBotDevs.`, - }, - prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, - }, - }), -}; - -module.exports = config; diff --git a/package.json b/package.json index ee59841..214f67b 100644 --- a/package.json +++ b/package.json @@ -1,41 +1,19 @@ { "name": "ellie-patchnotes", - "version": "0.0.0", - "private": true, + "type": "module", + "version": "0.0.1", "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids" + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" }, "dependencies": { - "@docusaurus/core": "2.4.1", - "@docusaurus/preset-classic": "2.4.1", - "@docusaurus/types": "^2.4.1", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.1.1", - "prism-react-renderer": "^1.3.1", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "2.4.1" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] + "@astrojs/check": "^0.4.0", + "astro": "^4.1.1", + "sass": "^1.69.5", + "sharp": "^0.32.5", + "typescript": "^5.3.3" } } \ No newline at end of file diff --git a/static/img/favicon.ico b/public/favicon.ico similarity index 100% rename from static/img/favicon.ico rename to public/favicon.ico diff --git a/sidebars.js b/sidebars.js deleted file mode 100644 index fd342f2..0000000 --- a/sidebars.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -// @ts-check - -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - { - type: 'category', - label: 'Tutorial', - items: ['hello'], - }, - ], - */ -}; - -module.exports = sidebars; diff --git a/src/assets/starlog-placeholder-14.jpg b/src/assets/starlog-placeholder-14.jpg new file mode 100644 index 0000000..e2e0acb Binary files /dev/null and b/src/assets/starlog-placeholder-14.jpg differ diff --git a/src/assets/starlog-placeholder-18.jpg b/src/assets/starlog-placeholder-18.jpg new file mode 100644 index 0000000..211c85c Binary files /dev/null and b/src/assets/starlog-placeholder-18.jpg differ diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro new file mode 100644 index 0000000..e32945c --- /dev/null +++ b/src/components/BaseHead.astro @@ -0,0 +1,19 @@ +--- +import { ViewTransitions } from 'astro:transitions'; +import SEO, { type Props as SEOProps } from './SEO.astro'; +import { SiteTitle, SiteDescription } from '../consts'; + +export type Props = Partial; +const { title = SiteTitle, name = SiteTitle, description = SiteDescription, ...seo } = Astro.props; +--- + + + + + + + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..fd55024 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,11 @@ +--- +import '../styles/global.scss'; +--- + + diff --git a/src/components/FormattedDate.astro b/src/components/FormattedDate.astro new file mode 100644 index 0000000..377286d --- /dev/null +++ b/src/components/FormattedDate.astro @@ -0,0 +1,25 @@ +--- +import type { HTMLAttributes } from 'astro/types'; + +type Props = HTMLAttributes<'time'> & { + date: Date; +}; + +const { date, ...attrs } = Astro.props; +--- + + + + diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..25f75cc --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,23 @@ +--- +import '../styles/global.scss'; +import { SiteTitle } from '../consts'; +--- + +
+ +
+ + diff --git a/src/components/HomepageFeatures/index.js b/src/components/HomepageFeatures/index.js deleted file mode 100644 index 78f410b..0000000 --- a/src/components/HomepageFeatures/index.js +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import styles from './styles.module.css'; - -const FeatureList = [ - { - title: 'Easy to Use', - Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, - description: ( - <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. - - ), - }, - { - title: 'Focus on What Matters', - Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, - description: ( - <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. - - ), - }, - { - title: 'Powered by React', - Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, - description: ( - <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. - - ), - }, -]; - -function Feature({Svg, title, description}) { - return ( -
-
- -
-
-

{title}

-

{description}

-
-
- ); -} - -export default function HomepageFeatures() { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- ); -} diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css deleted file mode 100644 index b248eb2..0000000 --- a/src/components/HomepageFeatures/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} diff --git a/src/components/SEO.astro b/src/components/SEO.astro new file mode 100644 index 0000000..1e2ddcc --- /dev/null +++ b/src/components/SEO.astro @@ -0,0 +1,87 @@ +--- +import type { ImageMetadata } from 'astro'; +type Image = { + src: string | ImageMetadata; + alt: string; +}; + +type SEOMetadata = { + name: string; + title: string; + description: string; + image?: Image | undefined; + canonicalURL?: URL | string | undefined; + locale?: string; +}; + +type OpenGraph = Partial & { + type?: string; +}; + +type Twitter = Partial & { + handle?: string; + card?: 'summary' | 'summary_large_image'; +}; + +export type Props = SEOMetadata & { + og?: OpenGraph; + twitter?: Twitter; +}; + +const { + name, + title, + description, + image, + locale = 'en', + canonicalURL = new URL(Astro.url.pathname, Astro.site), +} = Astro.props; + +const og = { + name, + title, + description, + canonicalURL, + image, + locale, + type: 'website', + ...(Astro.props.og ?? {}), +} satisfies OpenGraph; + +const twitter = { + name, + title, + description, + canonicalURL, + image, + locale, + card: 'summary_large_image', + ...Astro.props.twitter, +}; + +function normalizeImageUrl(image: string | ImageMetadata) { + return typeof image === 'string' ? image : image.src; +} +--- + + + + + + + + + + + + +{og.image && } +{og.image && } + + + + + + +{twitter.image && } +{twitter.image && } diff --git a/src/consts.ts b/src/consts.ts new file mode 100644 index 0000000..964ae6d --- /dev/null +++ b/src/consts.ts @@ -0,0 +1,5 @@ +// Place any global data in this file. +// You can import this data from anywhere in your site by using the `import` keyword. + +export const SiteTitle = 'Ellie Notes'; +export const SiteDescription = 'The patchnotes of EllieBot!'; diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..0c766cd --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,15 @@ +import { defineCollection, z } from 'astro:content'; + +const releases = defineCollection({ + // Type-check frontmatter using a schema + schema: + z.object({ + title: z.string(), + description: z.string(), + versionNumber: z.string(), + // Transform string to Date object + date: z.date({ coerce: true }), + }), +}); + +export const collections = { releases }; diff --git a/src/content/releases/4_3_17.md b/src/content/releases/4_3_17.md new file mode 100644 index 0000000..a911a00 --- /dev/null +++ b/src/content/releases/4_3_17.md @@ -0,0 +1,13 @@ +--- +title: 'Ellie Bot 4.3.17!' +date: '2023-09-06' +versionNumber: '4.3.17' +description: 'Ellie Bot version 4.3.17 release notes.' +--- + +## Ellie Bot v4.3.17 + +### Fixed + +- Fix to waifu gifts being character limited +- Fixes UserUpdated and UserPresence not correctly ignoring users that are logignored diff --git a/src/content/releases/4_3_18.md b/src/content/releases/4_3_18.md new file mode 100644 index 0000000..d2a9bae --- /dev/null +++ b/src/content/releases/4_3_18.md @@ -0,0 +1,24 @@ +--- +title: 'Ellie Bot 4.3.18!' +date: '2023-12-26' +versionNumber: '4.3.18' +description: 'Ellie Bot version 4.3.18 release notes.' +--- + +## Ellie Bot v4.3.18 + +### Added + +- Added `'cacheusers` command +- Added `'clubreject` which lets you reject club applications + +### Fixed + +- Fixed `icon_url` when using `'showembed` +- Fixed `'quoteshow` not showing sometimes +- Notifications will no longer be sent if dms are off when using `'give` +- Users should no longer be able to apply to clubs while in a club already (especially not to the same club they're already in) + +### Removed + +- `'revimg` and `'revav` as google removed reverse image search diff --git a/src/content/releases/5.0.8-beta.md b/src/content/releases/5.0.8-beta.md new file mode 100644 index 0000000..4db9872 --- /dev/null +++ b/src/content/releases/5.0.8-beta.md @@ -0,0 +1,30 @@ +--- +title: 'Ellie Bot 5.0.8-beta1!' +date: '2024-06-21' +versionNumber: '5.0.8-beta1' +description: 'Ellie Bot version 5.0.8 release notes.' +--- + +### Added + +- Added `'setserverbanner` and `'setservericon` commands +- Added overloads section to `'h command` which will show you all versions of command usage with param names +- You can now check commands for submodules, for example `'cmds SelfAssignedRoles` will show brief help for each of the commands in that submodule +- Added dropdown menus for 'mdls and 'cmds (both module and group versions) which will give you the option to see more detailed help for each specific module, group or command respectively +- Self-Hosters only: + - Added a dangerous cleanup command that you don't have to know about + +### Changed + +- Quotes will now use alphanumerical ids (like expressions) + +### Fixed + +- `'verbose` will now be respected for expression errors +- Using `'pick` will now correctly show the name of the user who picked the currency +- Fixed `'h` not working on some commands +- `'langset` and `'langsetd` should no longer allow unsupported languages and nonsense to be typed in + +### Known Issues + +- Db does not populate the models correctly and thus the bot refuses to boot, this will hopefully be fixed by the next beta release. \ No newline at end of file diff --git a/src/css/custom.css b/src/css/custom.css deleted file mode 100644 index 2bc6a4c..0000000 --- a/src/css/custom.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -:root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..c13bd73 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,2 @@ +/// +/// \ No newline at end of file diff --git a/src/layouts/IndexLayout.astro b/src/layouts/IndexLayout.astro new file mode 100644 index 0000000..3f0bd0c --- /dev/null +++ b/src/layouts/IndexLayout.astro @@ -0,0 +1,23 @@ +--- +import BaseHead, { type Props as HeadProps } from '../components/BaseHead.astro'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; + +type Props = HeadProps; + +const { ...head } = Astro.props; +--- + + + + + + + +
+
+ +