diff --git a/bun.lockb b/bun.lockb index eacab497..c92b6825 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index a39d8f09..fb0cec92 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^8.0.0", "eslint": "8.57.0", - "eslint-config-next": "14.2.7", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-markdown": "^5.0.0", diff --git a/packages/docs/.eslintrc.yml b/packages/docs/.eslintrc.yml index c0f1630f..47368ec2 100644 --- a/packages/docs/.eslintrc.yml +++ b/packages/docs/.eslintrc.yml @@ -1,14 +1,21 @@ env: + browser: true node: true es2021: true extends: - - 'next/core-web-vitals' - 'prettier' - - plugin:mdx/recommended + - 'eslint:recommended' + - 'plugin:mdx/recommended' + - 'plugin:@typescript-eslint/recommended' + - 'plugin:react/recommended' + - 'plugin:mdx/recommended' plugins: - '@typescript-eslint' + - 'react' rules: 'max-params': 'error' settings: 'mdx/code-blocks': true + react: + version: 'detect' root: true diff --git a/packages/docs/.gitignore b/packages/docs/.gitignore new file mode 100644 index 00000000..038f2585 --- /dev/null +++ b/packages/docs/.gitignore @@ -0,0 +1,3 @@ +# gatsby built +.cache +public/ diff --git a/packages/docs/.lintstagedrc.js b/packages/docs/.lintstagedrc.js deleted file mode 100644 index ec4d4494..00000000 --- a/packages/docs/.lintstagedrc.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * next lint は lint-staged で実行するとエラーになるので, 公式が推奨している方法に従う - * https://github.com/vercel/next.js/issues/33096 - */ - -const path = require('path'); - -const buildEslintCommand = (filenames) => - `next lint --fix --file ${filenames - .map((f) => path.relative(process.cwd(), f)) - .join(' --file ')}`; - -module.exports = { - '*.{js,jsx,ts,tsx}': [buildEslintCommand, 'prettier --write'] -}; diff --git a/packages/docs/.lintstagedrc.json b/packages/docs/.lintstagedrc.json deleted file mode 100644 index 3b60e1f4..00000000 --- a/packages/docs/.lintstagedrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "./src/**/*.{js,ts,jsx,tsx,md,mdx}": [ - "next lint", - "prettier --write" - ] -} diff --git a/packages/docs/public/assets/favicon-16x16.png b/packages/docs/assets/favicon-16x16.png similarity index 100% rename from packages/docs/public/assets/favicon-16x16.png rename to packages/docs/assets/favicon-16x16.png diff --git a/packages/docs/public/assets/favicon-32x32.png b/packages/docs/assets/favicon-32x32.png similarity index 100% rename from packages/docs/public/assets/favicon-32x32.png rename to packages/docs/assets/favicon-32x32.png diff --git a/packages/docs/public/assets/favicon.ico b/packages/docs/assets/favicon.ico similarity index 100% rename from packages/docs/public/assets/favicon.ico rename to packages/docs/assets/favicon.ico diff --git a/packages/docs/public/assets/favicon.svg b/packages/docs/assets/favicon.svg similarity index 100% rename from packages/docs/public/assets/favicon.svg rename to packages/docs/assets/favicon.svg diff --git a/packages/docs/public/assets/haracho-transmission.png b/packages/docs/assets/haracho-transmission.png similarity index 100% rename from packages/docs/public/assets/haracho-transmission.png rename to packages/docs/assets/haracho-transmission.png diff --git a/packages/docs/public/assets/haracho.png b/packages/docs/assets/haracho.png similarity index 100% rename from packages/docs/public/assets/haracho.png rename to packages/docs/assets/haracho.png diff --git a/packages/docs/gatsby-config.mjs b/packages/docs/gatsby-config.mjs new file mode 100644 index 00000000..79f7474c --- /dev/null +++ b/packages/docs/gatsby-config.mjs @@ -0,0 +1,51 @@ +// @ts-check +// NOTE: this file must be a `.mjs` file due to that `remark-gfm` supports only ES Modules and the limitations of `gatsby-config`: https://www.gatsbyjs.com/docs/how-to/custom-configuration/es-modules/#current-limitations +import { dirname } from 'path'; +import remarkGfm from 'remark-gfm'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +/** + * @type {import('gatsby').GatsbyConfig} + */ +const config = { + siteMetadata: { + title: 'OreOreBot2 Documents', + siteUrl: 'https://haracho.approvers.dev/' + }, + graphqlTypegen: true, + plugins: [ + { + resolve: 'gatsby-plugin-manifest', + options: { + icon: 'assets/haracho.png' + } + }, + { + resolve: 'gatsby-plugin-mdx', + options: { + gatsbyRemarkPlugins: [ + { + resolve: 'gatsby-remark-autolink-headers', + options: { + offsetY: '78' + } + } + ], + mdxOptions: { + remarkPlugins: [remarkGfm] + } + } + }, + { + resolve: 'gatsby-source-filesystem', + options: { + name: 'pages', + path: `${__dirname}/pages` + } + } + ] +}; + +export default config; diff --git a/packages/docs/gatsby-node.ts b/packages/docs/gatsby-node.ts new file mode 100644 index 00000000..af768cd3 --- /dev/null +++ b/packages/docs/gatsby-node.ts @@ -0,0 +1,101 @@ +import type { GatsbyNode } from 'gatsby'; +import path from 'node:path'; + +import { Page } from './src/types'; + +export const createPages: GatsbyNode['createPages'] = async (api) => { + // get mdx pages + type Content = { + url: string; + title: string; + items?: Content[]; + }; + const res = await api.graphql<{ + allMdx: { + nodes: { + body: string; + tableOfContents: { + items?: Content[]; + }; + parent: { + dir: string; + relativePath: string; + absolutePath: string; + }; + frontmatter: { + title: string; + }; + }[]; + }; + }>(` + { + allMdx { + nodes { + body + tableOfContents + parent { + ... on File { + dir + relativePath + absolutePath + } + } + frontmatter { + title + } + } + } + } + `); + if (res.errors) { + api.reporter.panicOnBuild('querying mdx pages failed'); + return; + } + + const pages = res.data?.allMdx.nodes!.map( + ({ + body, + parent: { dir, relativePath, absolutePath }, + frontmatter: { title }, + tableOfContents + }): Page => ({ + body, + dir, + uri: '/' + relativePath.replace(/(index)?\.mdx$/, ''), + absolutePath, + title, + headings: tableOfContents.items + }) + ); + + // group pages by its directory + const childrenByPath: Record = {}; + for (const page of pages) { + const superPath = page.absolutePath.endsWith('/index.mdx') + ? path.dirname(page.dir) + : page.dir; + if (!childrenByPath[superPath]) { + childrenByPath[superPath] = []; + } + childrenByPath[superPath].push(page); + } + + const componentPath = path.resolve('src/templates/entry.jsx'); + for (const page of pages) { + const { body, dir, uri, absolutePath, title, headings } = page; + + const siblings = childrenByPath[path.dirname(dir)] ?? []; + const children = childrenByPath[dir] ?? []; + api.actions.createPage({ + path: uri, + component: `${componentPath}?__contentFilePath=${absolutePath}`, + context: { + body, + title, + siblings, + children, + headings + } + }); + } +}; diff --git a/packages/docs/next.config.js b/packages/docs/next.config.js deleted file mode 100644 index 5827ca66..00000000 --- a/packages/docs/next.config.js +++ /dev/null @@ -1,19 +0,0 @@ -// @ts-checks - -const withNextra = require('nextra')({ - theme: 'nextra-theme-docs', - themeConfig: './theme.config.tsx' -}); - -module.exports = { - ...withNextra({ - /** - * Next.js v13.3 以降、 next export は非推奨 - * nextConfig で指定すると next build 実行時に Static Export が行われるようになる - */ - output: 'export', - images: { - unoptimized: true - } - }) -}; diff --git a/packages/docs/package.json b/packages/docs/package.json index 7a460d91..eadef4c9 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,26 +1,34 @@ { "name": "@oreorebot2/docs", "version": "1.0.0", - "main": "index.js", + "private": true, "repository": "https://github.com/approvers/OreOreBot2", "author": "approvers ", "description": "新生はらちょドキュメントサイト", "license": "MIT", "scripts": { - "dev": "next dev", - "build": "next build", - "lint": "next lint", - "format": "prettier --write \"./src/**/*.{js,ts,jsx,tsx,md,mdx}\"", - "lint-staged": "lint-staged" + "dev": "gatsby develop", + "build": "gatsby build", + "lint": "eslint --ignore-path .gitignore \"./{src,pages}/**/*.{js,ts,jsx,tsx,md,mdx}\"", + "format": "prettier --write \"./{src,pages}/**/*.{js,ts,jsx,tsx,md,mdx}\"" }, "dependencies": { - "next": "^14.0.0", - "nextra": "^2.2.14", - "nextra-theme-docs": "^2.2.14", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@mdx-js/mdx": "^3.0.1", + "@mdx-js/react": "^3.0.1", + "gatsby": "^5.13.7", + "gatsby-omni-font-loader": "^2.0.2", + "gatsby-plugin-manifest": "^5.13.1", + "gatsby-plugin-mdx": "^5.13.1", + "gatsby-remark-autolink-headers": "^6.13.1", + "gatsby-source-filesystem": "^5.13.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "remark-gfm": "^3.0.0" }, "devDependencies": { - "@types/react": "18.2.60" + "@typescript-eslint/eslint-plugin": "^8.4.0", + "@typescript-eslint/parser": "^8.4.0", + "eslint-plugin-mdx": "^3.1.5", + "eslint-plugin-react": "^7.35.1" } } diff --git a/packages/docs/src/pages/development/emoji-seq.mdx b/packages/docs/pages/development/emoji-seq.mdx similarity index 97% rename from packages/docs/src/pages/development/emoji-seq.mdx rename to packages/docs/pages/development/emoji-seq.mdx index f9dcaf62..4b7c6b58 100644 --- a/packages/docs/src/pages/development/emoji-seq.mdx +++ b/packages/docs/pages/development/emoji-seq.mdx @@ -1,3 +1,7 @@ +--- +title: 'EmojiSeq に新しい言葉を追加する' +--- + # EmojiSeq に新しい言葉を追加する このページでは、**ある特定の言葉に対して、予め設定していたリアクションを返す機能 EmojiSeq** に新しいパターンを追加する方法について紹介します。 diff --git a/packages/docs/src/pages/development/index.mdx b/packages/docs/pages/development/index.mdx similarity index 83% rename from packages/docs/src/pages/development/index.mdx rename to packages/docs/pages/development/index.mdx index 979a8ae1..3300f798 100644 --- a/packages/docs/src/pages/development/index.mdx +++ b/packages/docs/pages/development/index.mdx @@ -1,3 +1,7 @@ +--- +title: '開発ガイド' +--- + # 開発ガイド 新生はらちょ 開発ガイドへようこそ diff --git a/packages/docs/src/pages/development/meme.mdx b/packages/docs/pages/development/meme.mdx similarity index 88% rename from packages/docs/src/pages/development/meme.mdx rename to packages/docs/pages/development/meme.mdx index a42b0fab..6cdd6281 100644 --- a/packages/docs/src/pages/development/meme.mdx +++ b/packages/docs/pages/development/meme.mdx @@ -1,4 +1,6 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: '新しいミームを追加する' +--- # 新しいミームを追加する @@ -50,11 +52,8 @@ export const n: MemeTemplate = { - `['hoge']` - `!hoge` というコマンドで実行できます。 - `['hoge', 'fuga']` - `!hoge` と `!fuga` というコマンドで実行できます。 - - -他のミームとは重複しないようにしてください。 - - +> [!WARNING] +> 他のミームとは重複しないようにしてください。 #### `MemeTemplate.description` @@ -70,11 +69,8 @@ export const n: MemeTemplate = { }; ``` - - -引数で変わるところを `〜` で表現するとわかりやすいです。 - - +> [!TIP] +> 引数で変わるところを `〜` で表現するとわかりやすいです。 #### `MemeTemplate.flagsKeys` @@ -84,13 +80,16 @@ export const n: MemeTemplate = { const takopiFlags = ['f'] as const; const takopiOptions = ['c'] as const; export const takopi: MemeTemplate< - typeof takopiFlags[number], - typeof takopiOptions[number] + (typeof takopiFlags)[number], + (typeof takopiOptions)[number] > = { commandNames: ['takopi'], description: '「〜、出して」\n`-f` で教員と自分の名前の位置を反対にします。\n`-c <教員の名前> <出すもの>`で教員の名前も変更可能です。', flagsKeys: takopiFlags, + optionsKeys: takopiOptions + // ... +}; ``` #### `MemeTemplate.optionsKeys` @@ -101,14 +100,16 @@ export const takopi: MemeTemplate< const takopiFlags = ['f'] as const; const takopiOptions = ['c'] as const; export const takopi: MemeTemplate< - typeof takopiFlags[number], - typeof takopiOptions[number] + (typeof takopiFlags)[number], + (typeof takopiOptions)[number] > = { commandNames: ['takopi'], description: '「〜、出して」\n`-f` で教員と自分の名前の位置を反対にします。\n`-c <教員の名前> <出すもの>`で教員の名前も変更可能です。', flagsKeys: takopiFlags, - optionsKeys: takopiOptions, + optionsKeys: takopiOptions + // ... +}; ``` #### `MemeTemplate.errorMessage` @@ -121,7 +122,9 @@ export const n: MemeTemplate = { description: '〜Nった', flagsKeys: [], optionsKeys: [], - errorMessage: 'このままだと <@521958252280545280> みたいに留年しちゃう....', + errorMessage: 'このままだと <@521958252280545280> みたいに留年しちゃう....' + // ... +}; ``` ### ミームを登録する diff --git a/packages/docs/src/pages/development/running/docker-use-compose.mdx b/packages/docs/pages/development/running/docker-use-compose.mdx similarity index 70% rename from packages/docs/src/pages/development/running/docker-use-compose.mdx rename to packages/docs/pages/development/running/docker-use-compose.mdx index be6827d2..08f91b76 100644 --- a/packages/docs/src/pages/development/running/docker-use-compose.mdx +++ b/packages/docs/pages/development/running/docker-use-compose.mdx @@ -1,32 +1,31 @@ -import { Callout, Tab, Tabs } from 'nextra-theme-docs'; +--- +title: 'Docker Compose で起動する' +--- + +import { Tab, Tabs } from '../../../src/organisms/tabs'; # Docker Compose で起動する このページでははらちょを Docker Compose で起動する方法をご紹介します。 - - -前提条件 - -前提条件として [Docker, Docker Compose がセットアップされている](https://docs.docker.com/get-docker/)必要があります。 - - - - - -ローカルでの起動は例外なく、以下の機能が利用できません。 - -- **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) +> [!WARNING] +> 前提条件 +> +> 前提条件として [Docker, Docker Compose がセットアップされている](https://docs.docker.com/get-docker/)必要があります。 -この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 - - +> [!NOTE] +> +> ローカルでの起動は例外なく、以下の機能が利用できません。 +> +> - **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) +> +> この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 ## リポジトリをクローンする まずははらちょのリポジトリをクローンします。 - + HTTPS でクローンする場合は以下のコマンドを実行してください。 @@ -68,11 +67,7 @@ gh repo clone approvers/OreOreBot2 cp .env.example .env ``` -次に、 `.env` を編集します。 - - - -.env の編集例 +次に、 `.env` を編集します。以下は `.env` の編集例です。 ```env DISCORD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -82,15 +77,10 @@ PREFIX=! FEATURE=MESSAGE_CREATE,MESSAGE_UPDATE,COMMAND,VOICE_ROOM,ROLE,EMOJI ``` - - - - -トークンは絶対に外部に漏らさないでください - -Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 - - +> [!IMPORTANT] +> トークンは絶対に外部に漏らさないでください +> +> Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 ## 起動する diff --git a/packages/docs/src/pages/development/running/docker-use-image.mdx b/packages/docs/pages/development/running/docker-use-image.mdx similarity index 69% rename from packages/docs/src/pages/development/running/docker-use-image.mdx rename to packages/docs/pages/development/running/docker-use-image.mdx index 4c9ac03a..688c576b 100644 --- a/packages/docs/src/pages/development/running/docker-use-image.mdx +++ b/packages/docs/pages/development/running/docker-use-image.mdx @@ -1,26 +1,23 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'Docker イメージで起動する' +--- # Docker イメージで起動する このページでははらちょを Docker イメージで起動する方法をご紹介します。 - +> [!WARNING] +> 前提条件 +> +> 前提条件として [Docker がセットアップされている](https://docs.docker.com/get-docker/)必要があります。 -前提条件 - -前提条件として [Docker がセットアップされている](https://docs.docker.com/get-docker/)必要があります。 - - - - - -ローカルでの起動は例外なく、以下の機能が利用できません。 - -- **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) - -この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 - - +> [!WARNING] +> +> ローカルでの起動は例外なく、以下の機能が利用できません。 +> +> - **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) +> +> この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 ## はらちょのイメージを取得する @@ -44,11 +41,7 @@ docker pull ghcr.io/approvers/oreorebot2:latest touch .env ``` -次に、 `.env` を編集します。 - - - -.env の編集例 +次に、 `.env` を編集します。以下は `.env` の編集例です。 ```env DISCORD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -58,15 +51,11 @@ PREFIX=! FEATURE=MESSAGE_CREATE,MESSAGE_UPDATE,COMMAND,VOICE_ROOM,ROLE,EMOJI ``` - - - - -トークンは絶対に外部に漏らさないでください - -Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 - - +> [!IMPORTANT] +> +> トークンは絶対に外部に漏らさないでください +> +> Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 ## 起動する diff --git a/packages/docs/src/pages/development/running/index.mdx b/packages/docs/pages/development/running/index.mdx similarity index 61% rename from packages/docs/src/pages/development/running/index.mdx rename to packages/docs/pages/development/running/index.mdx index 19173c90..00b7dc47 100644 --- a/packages/docs/src/pages/development/running/index.mdx +++ b/packages/docs/pages/development/running/index.mdx @@ -1,4 +1,6 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: '実行' +--- # 実行環境 @@ -10,16 +12,13 @@ import { Callout } from 'nextra-theme-docs'; - [ffmpeg](https://www.ffmpeg.org/download.html) - - -ffmpeg がない場合の機能制限 - -ffmpeg がない場合、以下の機能が制限されます。 - -- Party 一葉 -- Kaere 一葉 -- こるくの玉音放送 - - +> [!NOTE] +> ffmpeg がない場合の機能制限 +> +> ffmpeg がない場合、以下の機能が制限されます。 +> +> - Party 一葉 +> - Kaere 一葉 +> - こるくの玉音放送 これらはローカルで起動する際の実行環境であって、Docker での起動では勿論考える必要はありません。 diff --git a/packages/docs/src/pages/development/running/local.mdx b/packages/docs/pages/development/running/local.mdx similarity index 71% rename from packages/docs/src/pages/development/running/local.mdx rename to packages/docs/pages/development/running/local.mdx index b909f066..551e7e5f 100644 --- a/packages/docs/src/pages/development/running/local.mdx +++ b/packages/docs/pages/development/running/local.mdx @@ -1,24 +1,26 @@ -import { Callout, Tab, Tabs } from 'nextra-theme-docs'; +--- +title: 'ローカルで起動する' +--- + +import { Tab, Tabs } from '../../../src/organisms/tabs'; # ローカルで起動する このページでははらちょをローカルで起動する方法をご紹介します。 - - -ローカルでの起動は例外なく、以下の機能が利用できません。 - -- **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) - -この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 - - +> [!WARNING] +> +> ローカルでの起動は例外なく、以下の機能が利用できません。 +> +> - **_Kawaemon has given a new role_** (かわえもん自動ロール付与機能) +> +> この機能は限界開発鯖、およびかわえもんしか利用できないので注意してください。 ## リポジトリをクローンする まずははらちょのリポジトリをクローンします。 - + HTTPS でクローンする場合は以下のコマンドを実行してください。 @@ -58,15 +60,13 @@ gh repo clone approvers/OreOreBot2 bun install ``` - - -OreOreBot2 は bun v1 を使用しています。 - -使用している bun のバージョンが低すぎるとエラーが発生する可能性があります。 - -アップデートをお忘れなく。 - - +> [!WARNING] +> +> OreOreBot2 は bun v1 を使用しています。 +> +> 使用している bun のバージョンが低すぎるとエラーが発生する可能性があります。 +> +> アップデートをお忘れなく。 ## 環境変数を設定する @@ -80,11 +80,7 @@ OreOreBot2 は bun v1 を使用しています。 cp .env.example .env ``` -次に、 `.env` を編集します。 - - - -.env の編集例 +次に、 `.env` を編集します。以下は `.env` の編集例です。 ```env DISCORD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -94,15 +90,11 @@ PREFIX=! FEATURE=MESSAGE_CREATE,MESSAGE_UPDATE,COMMAND,VOICE_ROOM,ROLE,EMOJI ``` - - - - -トークンは絶対に外部に漏らさないでください - -Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 - - +> [!IMPORTANT] +> +> トークンは絶対に外部に漏らさないでください +> +> Token はあなたの Discord アカウントのパスワードと同義です。絶対外に漏洩しないようにしましょう。 ## 起動する @@ -141,13 +133,9 @@ FFmpeg ============ ``` - - ビルドしたものを起動する場合は以下のコマンドを実行します。 ```bash bun build bun start ``` - - diff --git a/packages/docs/src/pages/index.mdx b/packages/docs/pages/index.mdx similarity index 98% rename from packages/docs/src/pages/index.mdx rename to packages/docs/pages/index.mdx index 297972ae..f2d4db89 100644 --- a/packages/docs/src/pages/index.mdx +++ b/packages/docs/pages/index.mdx @@ -1,3 +1,7 @@ +--- +title: 'ようこそ' +--- + # OreOreBot2 Documents へようこそ ## はらちょとは diff --git a/packages/docs/src/pages/references/commands/channel-info.mdx b/packages/docs/pages/references/commands/channel-info.mdx similarity index 85% rename from packages/docs/src/pages/references/commands/channel-info.mdx rename to packages/docs/pages/references/commands/channel-info.mdx index 8f287405..1c56662d 100644 --- a/packages/docs/src/pages/references/commands/channel-info.mdx +++ b/packages/docs/pages/references/commands/channel-info.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'チャンネル情報表示' +--- -import { CommandArgs } from '../../../organisms/command-args'; +import { CommandArgs } from '../../../src/organisms/command-args'; # チャンネル情報表示 @@ -16,9 +18,9 @@ import { CommandArgs } from '../../../organisms/command-args'; ]} /> - - 引数を指定しない場合は、コマンド実行チャンネルの情報が表示されます。 - +> [!INFO] +> +> 引数を指定しない場合は、コマンド実行チャンネルの情報が表示されます。 指定したチャンネルについて、以下の情報を表示します。 diff --git a/packages/docs/pages/references/commands/debug.mdx b/packages/docs/pages/references/commands/debug.mdx new file mode 100644 index 00000000..479d7062 --- /dev/null +++ b/packages/docs/pages/references/commands/debug.mdx @@ -0,0 +1,32 @@ +--- +title: 'デバッガーはらちょ' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; + +# デバッガーはらちょ + + + +指定したメッセージをコードブロックとして表示します。 + +指定するメッセージがコマンドを実行したチャンネルに存在する必要があります。 + +> [!NOTE] +> +> デバック結果に 3 連続のバッククォートが含まれている場合、コードブロックの崩壊を回避するためにシングルクォートに置換します。 + +> [!WARNING] +> +> メッセージ内容をコードブロック上に展開するため、スポイラーを含んだメッセージをデバッグするとスポイラー部分が開示されてしまいます。 +> +> デバックの際はご注意ください。 diff --git a/packages/docs/src/pages/references/commands/dice.mdx b/packages/docs/pages/references/commands/dice.mdx similarity index 88% rename from packages/docs/src/pages/references/commands/dice.mdx rename to packages/docs/pages/references/commands/dice.mdx index 42723643..f645a888 100644 --- a/packages/docs/src/pages/references/commands/dice.mdx +++ b/packages/docs/pages/references/commands/dice.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'ダイスロール' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # ダイスロール diff --git a/packages/docs/src/pages/references/commands/guild-info.mdx b/packages/docs/pages/references/commands/guild-info.mdx similarity index 96% rename from packages/docs/src/pages/references/commands/guild-info.mdx rename to packages/docs/pages/references/commands/guild-info.mdx index e0c93088..925727ce 100644 --- a/packages/docs/src/pages/references/commands/guild-info.mdx +++ b/packages/docs/pages/references/commands/guild-info.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'サーバー情報表示' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # サーバー情報表示 diff --git a/packages/docs/pages/references/commands/help.mdx b/packages/docs/pages/references/commands/help.mdx new file mode 100644 index 00000000..fe171a00 --- /dev/null +++ b/packages/docs/pages/references/commands/help.mdx @@ -0,0 +1,30 @@ +--- +title: 'ヘルプ' +--- + +import { VersionBadge } from '../../../src/molecules/version-badge'; +import { CommandArgs } from '../../../src/organisms/command-args'; + +# ヘルプ + + + +ヘルプを表示します。 + +### ページ送り + +v1.16.0 + +ヘルプは 2 つのボタンを使ってページ送りできます。最初のページから前のページへ送ると最後のページに、最後のページから次のページへ送ると最初のページにジャンプします。 + +> [!WARNING] +> +> ページ送りのボタンは一定時間で無効化されます。無効化された場合はコマンドを再実行してください。 + +> [!NOTE] +> +> ページ送りの制限 v1.31.0 +> +> **`v1.32.1` からページ送りができるのは `!help` コマンドを実行したメンバーのみに制限されました**。 +> +> コマンド実行者以外がボタンを押してもクライアントにはインタラクションに失敗した趣旨の警告が表示されます。 diff --git a/packages/docs/src/pages/references/getting-started.mdx b/packages/docs/pages/references/commands/index.mdx similarity index 88% rename from packages/docs/src/pages/references/getting-started.mdx rename to packages/docs/pages/references/commands/index.mdx index 772bcbe8..b6717af8 100644 --- a/packages/docs/src/pages/references/getting-started.mdx +++ b/packages/docs/pages/references/commands/index.mdx @@ -1,8 +1,8 @@ -import { VersionBadge } from '../../molecules/version-badge'; +--- +title: 'コマンド機能' +--- -# はじめに - -新生はらちょ (OreOreBot2) は限界開発鯖で利用できる Discord Bot です。 +import { VersionBadge } from '../../../src/molecules/version-badge'; ## 使い方 diff --git a/packages/docs/src/pages/references/commands/judge.mdx b/packages/docs/pages/references/commands/judge.mdx similarity index 82% rename from packages/docs/src/pages/references/commands/judge.mdx rename to packages/docs/pages/references/commands/judge.mdx index 2639e699..7a645a44 100644 --- a/packages/docs/src/pages/references/commands/judge.mdx +++ b/packages/docs/pages/references/commands/judge.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'HARACHO ONLINE JUDGING SYSTEM' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # †HARACHO ONLINE JUDGING SYSTEM† @@ -19,7 +23,7 @@ import { CommandArgs } from '../../../organisms/command-args'; { name: '判定結果', about: 'アニメーション終了後の判定を指定します。', - defaultValue: 'AC' + defaultValue: "AC" }, { name: '全失敗', diff --git a/packages/docs/src/pages/references/commands/kokusei.mdx b/packages/docs/pages/references/commands/kokusei.mdx similarity index 80% rename from packages/docs/src/pages/references/commands/kokusei.mdx rename to packages/docs/pages/references/commands/kokusei.mdx index 645ded58..e33bcbc3 100644 --- a/packages/docs/src/pages/references/commands/kokusei.mdx +++ b/packages/docs/pages/references/commands/kokusei.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: '国勢調査' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # 国勢調査 diff --git a/packages/docs/src/pages/references/commands/meme/clang.mdx b/packages/docs/pages/references/commands/meme/clang.mdx similarity index 84% rename from packages/docs/src/pages/references/commands/meme/clang.mdx rename to packages/docs/pages/references/commands/meme/clang.mdx index 3171cbaa..bfa4e737 100644 --- a/packages/docs/src/pages/references/commands/meme/clang.mdx +++ b/packages/docs/pages/references/commands/meme/clang.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'clang' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # コンピューターの天才、9 つの C 言語を操る diff --git a/packages/docs/src/pages/references/commands/meme/dousurya.mdx b/packages/docs/pages/references/commands/meme/dousurya.mdx similarity index 81% rename from packages/docs/src/pages/references/commands/meme/dousurya.mdx rename to packages/docs/pages/references/commands/meme/dousurya.mdx index a9d28db7..b684b5fc 100644 --- a/packages/docs/src/pages/references/commands/meme/dousurya.mdx +++ b/packages/docs/pages/references/commands/meme/dousurya.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'dousurya' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 限界みたいな鯖に住んでる〜はどうすりゃいいですか? diff --git a/packages/docs/src/pages/references/commands/meme/failure.mdx b/packages/docs/pages/references/commands/meme/failure.mdx similarity index 82% rename from packages/docs/src/pages/references/commands/meme/failure.mdx rename to packages/docs/pages/references/commands/meme/failure.mdx index 4ebfdf55..1c1dfa4e 100644 --- a/packages/docs/src/pages/references/commands/meme/failure.mdx +++ b/packages/docs/pages/references/commands/meme/failure.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'failure' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # 共同通信記者の失礼発言 MEME @@ -41,6 +43,6 @@ import { CommandArgs } from '../../../../organisms/command-args'; 「わかりました。それは一般に終わりと言います、ありがとうございます」 ``` - - この機能は他のどのMEMEよりも使うのが難しいです。うまく使いこなせるよう練習しましょう。 - +> [!INFO] +> +> この機能は他のどのMEMEよりも使うのが難しいです。うまく使いこなせるよう練習しましょう。 diff --git a/packages/docs/src/pages/references/commands/meme/hukueki.mdx b/packages/docs/pages/references/commands/meme/hukueki.mdx similarity index 79% rename from packages/docs/src/pages/references/commands/meme/hukueki.mdx rename to packages/docs/pages/references/commands/meme/hukueki.mdx index b9b9f96e..746d527b 100644 --- a/packages/docs/src/pages/references/commands/meme/hukueki.mdx +++ b/packages/docs/pages/references/commands/meme/hukueki.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'hukueki' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 服役はしてないといいね diff --git a/packages/docs/src/pages/references/commands/meme/index.mdx b/packages/docs/pages/references/commands/meme/index.mdx similarity index 82% rename from packages/docs/src/pages/references/commands/meme/index.mdx rename to packages/docs/pages/references/commands/meme/index.mdx index 62b666bb..0f9fc9a4 100644 --- a/packages/docs/src/pages/references/commands/meme/index.mdx +++ b/packages/docs/pages/references/commands/meme/index.mdx @@ -1,3 +1,7 @@ +--- +title: 'ミーム' +--- + # ミーム ## ミームとは @@ -13,4 +17,4 @@ ## ミームを作成する - ミームは自分で作成して、はらちょのコマンドとして登録できます。 -- 作成方法は [開発者ガイド](../../development/meme) を確認してください。 +- 作成方法は [開発者ガイド](../../../development/meme) を確認してください。 diff --git a/packages/docs/src/pages/references/commands/meme/kenjou.mdx b/packages/docs/pages/references/commands/meme/kenjou.mdx similarity index 70% rename from packages/docs/src/pages/references/commands/meme/kenjou.mdx rename to packages/docs/pages/references/commands/meme/kenjou.mdx index b56fa0cc..e98b1273 100644 --- a/packages/docs/src/pages/references/commands/meme/kenjou.mdx +++ b/packages/docs/pages/references/commands/meme/kenjou.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'kenjou' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # 健常者エミュレーター構文 @@ -23,6 +25,6 @@ import { CommandArgs } from '../../../../organisms/command-args'; >> ドキュメントはちゃんと作ったほうがいい - 健常者エミュレータ事例集Wiki ``` - - 健常者エミュレーター事例集 にありそうなタイトルを指定すればうまくいきます。 - +> [!INFO] +> +> 健常者エミュレーター事例集 にありそうなタイトルを指定すればうまくいきます。 diff --git a/packages/docs/src/pages/references/commands/meme/koume.mdx b/packages/docs/pages/references/commands/meme/koume.mdx similarity index 70% rename from packages/docs/src/pages/references/commands/meme/koume.mdx rename to packages/docs/pages/references/commands/meme/koume.mdx index 7cccb2f6..51634a0e 100644 --- a/packages/docs/src/pages/references/commands/meme/koume.mdx +++ b/packages/docs/pages/references/commands/meme/koume.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'koume' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # コウメ太夫構文 @@ -23,8 +25,8 @@ import { CommandArgs } from '../../../../organisms/command-args'; `!koume 課題を出そう 通信制限で間に合いません` -``` ->> 課題を出そうと思ったら〜♪ +```text +課題を出そうと思ったら〜♪ 通信制限で間に合いませんでした〜♪ -チクショー!! #まいにちチクショー +チクショー!! #まいにちチクショー ``` diff --git a/packages/docs/src/pages/references/commands/meme/lolicon.mdx b/packages/docs/pages/references/commands/meme/lolicon.mdx similarity index 78% rename from packages/docs/src/pages/references/commands/meme/lolicon.mdx rename to packages/docs/pages/references/commands/meme/lolicon.mdx index 3004e04f..13e30e16 100644 --- a/packages/docs/src/pages/references/commands/meme/lolicon.mdx +++ b/packages/docs/pages/references/commands/meme/lolicon.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'lolicon' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # だから僕は〜を辞めた diff --git a/packages/docs/pages/references/commands/meme/moeta.mdx b/packages/docs/pages/references/commands/meme/moeta.mdx new file mode 100644 index 00000000..759b4791 --- /dev/null +++ b/packages/docs/pages/references/commands/meme/moeta.mdx @@ -0,0 +1,37 @@ +--- +title: 'moeta' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; + +# 「うん ついでに〜が燃えた」 + + + +> [!INFO] +> 元ネタ +> +> [2022 年 8 月に久留米・筑後川花火大会で不発の花火玉が落下し、限界開発鯖にも通っている学生がいる 久留米工業高等専門学校 (久留米高専) の弓道場が全焼。](https://www3.nhk.or.jp/fukuoka-news/20220805/5010016764.html) +> +> その事故に関する久留米高専の学生とその母親との LINE が元ネタ。 +> +> [該当ツイート](https://x.com/yuki_yuigishi/status/1555557259798687744) + +### 使用例 + +`!moeta 限界開発鯖` + +``` +>> 「久留米の花火大会ね、寮から見れたの?」 +「うん ついでに限界開発鯖が燃えた」 +「は?」 +``` diff --git a/packages/docs/src/pages/references/commands/meme/n.mdx b/packages/docs/pages/references/commands/meme/n.mdx similarity index 76% rename from packages/docs/src/pages/references/commands/meme/n.mdx rename to packages/docs/pages/references/commands/meme/n.mdx index 0d506a9d..fb9a36c9 100644 --- a/packages/docs/src/pages/references/commands/meme/n.mdx +++ b/packages/docs/pages/references/commands/meme/n.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'n' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 〜N った diff --git a/packages/docs/src/pages/references/commands/meme/nigetane.mdx b/packages/docs/pages/references/commands/meme/nigetane.mdx similarity index 88% rename from packages/docs/src/pages/references/commands/meme/nigetane.mdx rename to packages/docs/pages/references/commands/meme/nigetane.mdx index aa1b38bc..ae95cb11 100644 --- a/packages/docs/src/pages/references/commands/meme/nigetane.mdx +++ b/packages/docs/pages/references/commands/meme/nigetane.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'nigetane' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 逃げたね構文 (from Arcaea "Final Verdict") diff --git a/packages/docs/src/pages/references/commands/meme/nine.mdx b/packages/docs/pages/references/commands/meme/nine.mdx similarity index 82% rename from packages/docs/src/pages/references/commands/meme/nine.mdx rename to packages/docs/pages/references/commands/meme/nine.mdx index 08ca7ec1..72d51c6b 100644 --- a/packages/docs/src/pages/references/commands/meme/nine.mdx +++ b/packages/docs/pages/references/commands/meme/nine.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'nine' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 〇〇は〇〇が 9 割 diff --git a/packages/docs/src/pages/references/commands/meme/ojaru.mdx b/packages/docs/pages/references/commands/meme/ojaru.mdx similarity index 88% rename from packages/docs/src/pages/references/commands/meme/ojaru.mdx rename to packages/docs/pages/references/commands/meme/ojaru.mdx index bcaf469f..16e7d244 100644 --- a/packages/docs/src/pages/references/commands/meme/ojaru.mdx +++ b/packages/docs/pages/references/commands/meme/ojaru.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'ojaru' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # あっぱれおじゃる様ミーム構文 diff --git a/packages/docs/src/pages/references/commands/meme/syakai.mdx b/packages/docs/pages/references/commands/meme/syakai.mdx similarity index 79% rename from packages/docs/src/pages/references/commands/meme/syakai.mdx rename to packages/docs/pages/references/commands/meme/syakai.mdx index 939d55fb..fc450707 100644 --- a/packages/docs/src/pages/references/commands/meme/syakai.mdx +++ b/packages/docs/pages/references/commands/meme/syakai.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../../organisms/command-args'; +--- +title: 'syakai' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; # 首相の否定的な考え diff --git a/packages/docs/src/pages/references/commands/meme/takopi.mdx b/packages/docs/pages/references/commands/meme/takopi.mdx similarity index 59% rename from packages/docs/src/pages/references/commands/meme/takopi.mdx rename to packages/docs/pages/references/commands/meme/takopi.mdx index badf44bc..de226ad3 100644 --- a/packages/docs/src/pages/references/commands/meme/takopi.mdx +++ b/packages/docs/pages/references/commands/meme/takopi.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'takopi' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # タコピー構文 @@ -35,12 +37,10 @@ import { CommandArgs } from '../../../../organisms/command-args'; ]} /> - - **元ネタ**: - - 元ネタは [タコピーの原罪](https://dic.nicovideo.jp/id/5642643) から。 - - +> [!INFO] +> 元ネタ +> +> 元ネタは [タコピーの原罪](https://dic.nicovideo.jp/id/5642643) から。 ### 使用例 @@ -65,15 +65,13 @@ m2en「わ、わかんないっピ.......」 ドラえもん「わ、わかんないっピ.......」 ``` - - -`-f`, `-c` は同時に使用することが出来ます。`-f` は有効/無効を切り替えられるフラグであるのに対して、`-c` はその直後に名前の値を指定するオプションです。引数の順番や形式に注意してください。 - -`!takopi -f -c ドラえもん 独裁スイッチ` - -``` ->> ドラえもん「独裁スイッチ、出して」 -m2en「わ、わかんないっピ.......」 -``` - - +> [!WARNING] +> +> `-f`, `-c` は同時に使用することが出来ます。`-f` は有効/無効を切り替えられるフラグであるのに対して、`-c` はその直後に名前の値を指定するオプションです。引数の順番や形式に注意してください。 +> +> `!takopi -f -c ドラえもん 独裁スイッチ` +> +> ``` +> >> ドラえもん「独裁スイッチ、出して」 +> m2en「わ、わかんないっピ.......」 +> ``` diff --git a/packages/docs/src/pages/references/commands/meme/tsureteike.mdx b/packages/docs/pages/references/commands/meme/tsureteike.mdx similarity index 75% rename from packages/docs/src/pages/references/commands/meme/tsureteike.mdx rename to packages/docs/pages/references/commands/meme/tsureteike.mdx index 6895d9ed..a7824de4 100644 --- a/packages/docs/src/pages/references/commands/meme/tsureteike.mdx +++ b/packages/docs/pages/references/commands/meme/tsureteike.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'tsureteike' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # プログラマ狩り @@ -31,14 +33,12 @@ import { CommandArgs } from '../../../../organisms/command-args'; ]} /> - - **元ネタ**: - - 元ネタはプラグラマーのあるあるネタを使った大喜利。 - - X(Twitter)で `#プログラマ狩り` ・ `#プログラマー狩り` で検索してみよう。 - - +> [!INFO] +> 元ネタ +> +> 元ネタはプラグラマーのあるあるネタを使った大喜利。 +> +> X(Twitter)で `#プログラマ狩り` ・ `#プログラマー狩り` で検索してみよう。 ## 使用例 diff --git a/packages/docs/pages/references/commands/meme/web3.mdx b/packages/docs/pages/references/commands/meme/web3.mdx new file mode 100644 index 00000000..1bf3003e --- /dev/null +++ b/packages/docs/pages/references/commands/meme/web3.mdx @@ -0,0 +1,33 @@ +--- +title: 'web3' +--- + +import { CommandArgs } from '../../../../src/organisms/command-args'; + +# 「いちばんやさしい〜の教本」 (from インプレス) + + + +> [!INFO] +> 元ネタ +> +> 元ネタはインプレスから出版されている「いちばんやさしいWeb3の教本 人気講師が教えるNFT、DAO、DeFiが織りなす新世界」から。 +> +> 明らかな間違いが多数含まれており、大炎上した。 + +### 使用例 + +`!web3 Rust` + +``` +>> 「いちばんやさしいRustの教本」 - インプレス +``` diff --git a/packages/docs/src/pages/references/commands/ping.mdx b/packages/docs/pages/references/commands/ping.mdx similarity index 60% rename from packages/docs/src/pages/references/commands/ping.mdx rename to packages/docs/pages/references/commands/ping.mdx index 89f60295..0d1c913d 100644 --- a/packages/docs/src/pages/references/commands/ping.mdx +++ b/packages/docs/pages/references/commands/ping.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'レイテンシ表示' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # レイテンシ表示 diff --git a/packages/docs/src/pages/references/commands/role-create.mdx b/packages/docs/pages/references/commands/role-create.mdx similarity index 85% rename from packages/docs/src/pages/references/commands/role-create.mdx rename to packages/docs/pages/references/commands/role-create.mdx index 2969bbac..efb9585b 100644 --- a/packages/docs/src/pages/references/commands/role-create.mdx +++ b/packages/docs/pages/references/commands/role-create.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'ロール作成' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # ロール作成 diff --git a/packages/docs/src/pages/references/commands/role-info.mdx b/packages/docs/pages/references/commands/role-info.mdx similarity index 94% rename from packages/docs/src/pages/references/commands/role-info.mdx rename to packages/docs/pages/references/commands/role-info.mdx index ebcb868c..3f55a608 100644 --- a/packages/docs/src/pages/references/commands/role-info.mdx +++ b/packages/docs/pages/references/commands/role-info.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'ロール情報表示' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # ロール情報表示 diff --git a/packages/docs/src/pages/references/commands/role-rank.mdx b/packages/docs/pages/references/commands/role-rank.mdx similarity index 62% rename from packages/docs/src/pages/references/commands/role-rank.mdx rename to packages/docs/pages/references/commands/role-rank.mdx index e04754f6..66a8fb6f 100644 --- a/packages/docs/src/pages/references/commands/role-rank.mdx +++ b/packages/docs/pages/references/commands/role-rank.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'ロール数ランキング' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # ロール数ランキング diff --git a/packages/docs/src/pages/references/commands/stfu.mdx b/packages/docs/pages/references/commands/stfu.mdx similarity index 62% rename from packages/docs/src/pages/references/commands/stfu.mdx rename to packages/docs/pages/references/commands/stfu.mdx index e81876c6..757234a8 100644 --- a/packages/docs/src/pages/references/commands/stfu.mdx +++ b/packages/docs/pages/references/commands/stfu.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: '治安統率機構' +--- -import { CommandArgs } from '../../../organisms/command-args'; +import { CommandArgs } from '../../../src/organisms/command-args'; # 治安統率機構 @@ -18,7 +20,7 @@ import { CommandArgs } from '../../../organisms/command-args'; 第 1 引数で指定した個数、実行したチャンネルに存在するはらちょのメッセージを最新順から削除します。 - - 送信日時が2週間前のメッセージは Discord API の制約上削除することができません。 - そのようなメッセージに対して治安統率機構は機能しません。 - +> [!WARNING] +> +> 送信日時が2週間前のメッセージは Discord API の制約上削除することができません。 +> そのようなメッセージに対して治安統率機構は機能しません。 diff --git a/packages/docs/src/pages/references/commands/typo.mdx b/packages/docs/pages/references/commands/typo.mdx similarity index 86% rename from packages/docs/src/pages/references/commands/typo.mdx rename to packages/docs/pages/references/commands/typo.mdx index d043a2d4..5b3db296 100644 --- a/packages/docs/src/pages/references/commands/typo.mdx +++ b/packages/docs/pages/references/commands/typo.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: '今日の Typo' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # 今日の Typo diff --git a/packages/docs/src/pages/references/commands/user-info.mdx b/packages/docs/pages/references/commands/user-info.mdx similarity index 92% rename from packages/docs/src/pages/references/commands/user-info.mdx rename to packages/docs/pages/references/commands/user-info.mdx index c7d98825..8ac08803 100644 --- a/packages/docs/src/pages/references/commands/user-info.mdx +++ b/packages/docs/pages/references/commands/user-info.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'ユーザー情報表示' +--- -import { CommandArgs } from '../../../organisms/command-args'; +import { CommandArgs } from '../../../src/organisms/command-args'; # ユーザー情報表示 @@ -17,9 +19,9 @@ import { CommandArgs } from '../../../organisms/command-args'; ]} /> - - 引数を指定しない場合は、コマンド実行者の情報が表示されます。 - +> [!NOTE] +> +> 引数を指定しない場合は、コマンド実行者の情報が表示されます。 指定したユーザーについて、以下の情報を表示するコマンドです。 diff --git a/packages/docs/src/pages/references/commands/version.mdx b/packages/docs/pages/references/commands/version.mdx similarity index 80% rename from packages/docs/src/pages/references/commands/version.mdx rename to packages/docs/pages/references/commands/version.mdx index dfd2824f..830c59ab 100644 --- a/packages/docs/src/pages/references/commands/version.mdx +++ b/packages/docs/pages/references/commands/version.mdx @@ -1,4 +1,8 @@ -import { CommandArgs } from '../../../organisms/command-args'; +--- +title: 'バージョン表示' +--- + +import { CommandArgs } from '../../../src/organisms/command-args'; # バージョン表示 diff --git a/packages/docs/src/pages/references/commands/voice/colk.mdx b/packages/docs/pages/references/commands/voice/colk.mdx similarity index 68% rename from packages/docs/src/pages/references/commands/voice/colk.mdx rename to packages/docs/pages/references/commands/voice/colk.mdx index 76aeffa5..a6ed6308 100644 --- a/packages/docs/src/pages/references/commands/voice/colk.mdx +++ b/packages/docs/pages/references/commands/voice/colk.mdx @@ -1,6 +1,8 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'こるくの玉音放送' +--- -import { CommandArgs } from '../../../../organisms/command-args'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # こるくの玉音放送 @@ -22,15 +24,13 @@ import { CommandArgs } from '../../../../organisms/command-args'; VC 内にこるくの玉音放送を再生します。 - - - この機能には FFmpeg が必要です。 - - +> [!WARNING] +> +> この機能には FFmpeg が必要です。 - - 実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 - +> [!NOTE] +> +> 実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 ## 縮小版を再生する diff --git a/packages/docs/pages/references/commands/voice/index.mdx b/packages/docs/pages/references/commands/voice/index.mdx new file mode 100644 index 00000000..b0e412d4 --- /dev/null +++ b/packages/docs/pages/references/commands/voice/index.mdx @@ -0,0 +1,3 @@ +--- +title: '音声機能' +--- diff --git a/packages/docs/src/pages/references/commands/voice/kaere.mdx b/packages/docs/pages/references/commands/voice/kaere.mdx similarity index 53% rename from packages/docs/src/pages/references/commands/voice/kaere.mdx rename to packages/docs/pages/references/commands/voice/kaere.mdx index db8220ab..78687fbd 100644 --- a/packages/docs/src/pages/references/commands/voice/kaere.mdx +++ b/packages/docs/pages/references/commands/voice/kaere.mdx @@ -1,7 +1,9 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'Kaere 一葉' +--- -import { VersionBadge } from '../../../../molecules/version-badge'; -import { CommandArgs } from '../../../../organisms/command-args'; +import { VersionBadge } from '../../../../src/molecules/version-badge'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # Kaere 一葉 @@ -11,25 +13,19 @@ import { CommandArgs } from '../../../../organisms/command-args'; VC 内の人類に就寝を促します。引数なしで即時発動 - - -この機能には FFmpeg が必要です。 - - - - - -スラッシュコマンドを使用している場合の即時発動は `/kaere start` で行なえます。 ( から利用可能) +> [!WARNING] +> +> この機能には FFmpeg が必要です。 - +> [!INFO] +> +> スラッシュコマンドを使用している場合の即時発動は `/kaere start` で行なえます。 (v1.48.0 から利用可能) - - -実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 - -予約機能についても同様で、実行時間にボイスチャンネルにいないと実行されません。 - - +> [!NOTE] +> +> 実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 +> +> 予約機能についても同様で、実行時間にボイスチャンネルにいないと実行されません。 --- @@ -51,11 +47,9 @@ VC 内の人類に就寝を促します。引数なしで即時発動 例: `!kaere reserve add 22:00` で 22:00 に就寝推奨を開始します。 - - -同じ時間に予約することは出来ません。 - - +> [!WARNING] +> +> 同じ時間に予約することは出来ません。 ### `!kaere reserve list` diff --git a/packages/docs/src/pages/references/commands/voice/party.mdx b/packages/docs/pages/references/commands/voice/party.mdx similarity index 76% rename from packages/docs/src/pages/references/commands/voice/party.mdx rename to packages/docs/pages/references/commands/voice/party.mdx index 755f6634..5524ffaf 100644 --- a/packages/docs/src/pages/references/commands/voice/party.mdx +++ b/packages/docs/pages/references/commands/voice/party.mdx @@ -1,7 +1,9 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: 'Party 一葉' +--- -import { VersionBadge } from '../../../../molecules/version-badge'; -import { CommandArgs } from '../../../../organisms/command-args'; +import { VersionBadge } from '../../../../src/molecules/version-badge'; +import { CommandArgs } from '../../../../src/organisms/command-args'; # Party 一葉 @@ -11,25 +13,19 @@ import { CommandArgs } from '../../../../organisms/command-args'; あなたのボイスチャンネルをパーティー会場に!引数なしで即時発動 - - -この機能には FFmpeg が必要です。 - - - - - -スラッシュコマンドを使用している場合の即時発動は `/party start` で行なえます。 ( から利用可能) - - - - - -実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 +> [!WARNING] +> +> この機能には FFmpeg が必要です。 -予約機能についても同様で、実行時間にボイスチャンネルにいないと実行されません。 +> [!INFO] +> +> スラッシュコマンドを使用している場合の即時発動は `/party start` で行なえます。 (v1.48.0 から利用可能) - +> [!NOTE] +> +> 実行者がボイスチャンネルにいないとこのコマンドは安全装置によって封じ込められます。 +> +> 予約機能についても同様で、実行時間にボイスチャンネルにいないと実行されません。 --- diff --git a/packages/docs/src/pages/references/features/bold-italic.mdx b/packages/docs/pages/references/features/bold-italic.mdx similarity index 57% rename from packages/docs/src/pages/references/features/bold-italic.mdx rename to packages/docs/pages/references/features/bold-italic.mdx index 2ae62412..1c314920 100644 --- a/packages/docs/src/pages/references/features/bold-italic.mdx +++ b/packages/docs/pages/references/features/bold-italic.mdx @@ -1,5 +1,9 @@ -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; +--- +title: 'Bold-Italic 警察' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; # Bold-Italic 警察 diff --git a/packages/docs/pages/references/features/delete-diff.mdx b/packages/docs/pages/references/features/delete-diff.mdx new file mode 100644 index 00000000..811f32cc --- /dev/null +++ b/packages/docs/pages/references/features/delete-diff.mdx @@ -0,0 +1,30 @@ +--- +title: '削除 Diff' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; + +# 削除 Diff + +ログ,v1.0.0 + +--- + +メッセージを削除すると削除したメッセージを晒し上げます。 + +> [!INFO] + +> 削除 Diff は一定時間で削除されます。削除せず取っておきたい場合はリアクションを送信することで阻止できます。 + +> [!WARNING] +> +> 削除したメッセージにスポイラーが含まれている場合は削除時に開示されます。 +> +> 削除する際は覚悟を決めてください。 + +## 早すぎる削除 + +v1.50.0 から利用可能 + +メッセージを削除したのが送信してから3秒以内であれば特別なメッセージで晒し上げます。 diff --git a/packages/docs/pages/references/features/edit-diff.mdx b/packages/docs/pages/references/features/edit-diff.mdx new file mode 100644 index 00000000..522a4499 --- /dev/null +++ b/packages/docs/pages/references/features/edit-diff.mdx @@ -0,0 +1,40 @@ +--- +title: '編集 Diff' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; + +# 編集 Diff + +ログ,v1.0.0 + +--- + +メッセージを編集すると編集差分を晒し上げます。 + +## Diff の見方 + +### 削除 + +削除部分は 取り消し線 で表されます。 + +hoge**~~hoge~~** + +### 追加 + +追加部分は 斜め文字 で表されます。 + +hogehoge **_hoge_** + +--- + +> [!INFO] +> +> 編集 Diff は一定時間で削除されます。削除せず取っておきたい場合はリアクションを送信することで阻止できます。 + +> [!WARNING] +> +> 編集したメッセージにスポイラーが含まれている場合は編集時に開示されます。 +> +> 編集する際は覚悟を決めてください。 diff --git a/packages/docs/pages/references/features/emoji-create-log.mdx b/packages/docs/pages/references/features/emoji-create-log.mdx new file mode 100644 index 00000000..1a274fb7 --- /dev/null +++ b/packages/docs/pages/references/features/emoji-create-log.mdx @@ -0,0 +1,14 @@ +--- +title: '絵文字作成ログ' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; + +# 絵文字作成ログ + +ログ,v1.14.0 + +--- + +絵文字を作成するとログを送信します。 diff --git a/packages/docs/pages/references/features/index.mdx b/packages/docs/pages/references/features/index.mdx new file mode 100644 index 00000000..2af229b6 --- /dev/null +++ b/packages/docs/pages/references/features/index.mdx @@ -0,0 +1,25 @@ +--- +title: 'パッシブ機能' +--- + +import { Link } from 'gatsby'; + +# パッシブ機能 + +このボットのパッシブ機能は、以下の種類に分けられます。 + +- メッセージへの操作を監視するもの + - メッセージの編集を検知して報告する + - メッセージの削除を検知して報告する +- サーバー内での行動のログ作成 + - ボイスチャンネルの入退室を検知して報告する + - カスタム絵文字の作成を検知して報告する + - スタンプの作成を検知して報告する +- メッセージ本文の収集 + - Bold-italic なメッセージに過剰反応する + - 特定パターンのメッセージを収集/閲覧する +- その他 + - 設定時刻にメッセージを送信する + - かわえもんにすべてのロールを付与する + +ここにドキュメント化されていない機能はメニューにあるそれぞれの子のページから閲覧できます。 diff --git a/packages/docs/pages/references/features/kawaemon.mdx b/packages/docs/pages/references/features/kawaemon.mdx new file mode 100644 index 00000000..13b1de4a --- /dev/null +++ b/packages/docs/pages/references/features/kawaemon.mdx @@ -0,0 +1,25 @@ +--- +title: 'Kawaemon has given a new role' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; + +# Kawaemon has given a new role + +その他,v1.16.0 + +--- + +新しくロールが作成されたら、かわえもんにつける機能です。 + +ロール付与後は `#無法地帯` に通知が届きます。 + +> [!WARNING] +> +> 基本的にはらちょはどんなロールでもかわえもんに付与するため、本当に付与したくないロールは別途で外すことをおすすめします。 +> 一度外されたりなどの操作が加えられたロールについては干渉しません。 + +> [!WARNING] +> +> Discord Linked Roles を作成する場合、連携設定を行ったあとはロールを自由に操作することができないため Linked の設定を行う前にかわえもんからロールを剥奪することをおすすめします。 diff --git a/packages/docs/src/pages/references/features/sticker-create-log.mdx b/packages/docs/pages/references/features/sticker-create-log.mdx similarity index 55% rename from packages/docs/src/pages/references/features/sticker-create-log.mdx rename to packages/docs/pages/references/features/sticker-create-log.mdx index 3ca6ffb6..322ec532 100644 --- a/packages/docs/src/pages/references/features/sticker-create-log.mdx +++ b/packages/docs/pages/references/features/sticker-create-log.mdx @@ -1,5 +1,9 @@ -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; +--- +title: 'スタンプ作成ログ' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; # スタンプ作成ログ @@ -18,4 +22,4 @@ import { VersionBadge } from '../../../molecules/version-badge'; - 画像 - 説明 - 関連した絵文字 - - Autocomplete用。絵文字を送信すると候補として表示されます。 + - Autocomplete用。絵文字を送信すると候補として表示されます。 diff --git a/packages/docs/src/pages/references/features/time-signal.mdx b/packages/docs/pages/references/features/time-signal.mdx similarity index 89% rename from packages/docs/src/pages/references/features/time-signal.mdx rename to packages/docs/pages/references/features/time-signal.mdx index 3c7d2d9a..695e8854 100644 --- a/packages/docs/src/pages/references/features/time-signal.mdx +++ b/packages/docs/pages/references/features/time-signal.mdx @@ -1,7 +1,9 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: '時報システム' +--- -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; # 時報システム @@ -27,9 +29,9 @@ import { VersionBadge } from '../../../molecules/version-badge'; ## 時報の送信時間を変更する - - 本来、この設定を変更する必要はありません。 - +> [!TIP] +> +> 本来、この設定を変更する必要はありません。 時報の送信時間は `assets/time-signal.yaml` で定義されています。 diff --git a/packages/docs/src/pages/references/features/typo.mdx b/packages/docs/pages/references/features/typo.mdx similarity index 59% rename from packages/docs/src/pages/references/features/typo.mdx rename to packages/docs/pages/references/features/typo.mdx index dfbac212..cf77052d 100644 --- a/packages/docs/src/pages/references/features/typo.mdx +++ b/packages/docs/pages/references/features/typo.mdx @@ -1,7 +1,9 @@ -import { Callout } from 'nextra-theme-docs'; +--- +title: '今日の Typo' +--- -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; # 今日の Typo @@ -25,7 +27,6 @@ import { VersionBadge } from '../../../molecules/version-badge'; 詳しくは [今日の Typo (Commands)](../commands/typo) を確認してください。 - - 各ユーザーの Typo - ははらちょがホストされているサーバーのメモリ(RAM)にそのまま保存されるため、再起動等でリセットされます。 - +> [!WARNING] +> +> 各ユーザーの Typo ははらちょがホストされているサーバーのメモリ(RAM)にそのまま保存されるため、再起動等でリセットされます。 diff --git a/packages/docs/pages/references/features/vc-diff.mdx b/packages/docs/pages/references/features/vc-diff.mdx new file mode 100644 index 00000000..b9755be1 --- /dev/null +++ b/packages/docs/pages/references/features/vc-diff.mdx @@ -0,0 +1,18 @@ +--- +title: 'VC 接続 Diff' +--- + +import { FeatureBadge } from '../../../src/molecules/feature-badge'; +import { VersionBadge } from '../../../src/molecules/version-badge'; + +# VC 接続 Diff + +ログ,v1.0.0 + +--- + +VC に接続したメンバーがいたら `#無法地帯` にログを送信します。 + +> [!WARNING] + +> はらちょに **チャンネル閲覧権限** が付与されていないチャンネルに関するログは送信されません。ログを受け取りたいチャンネルには権限を与えるようにしてください。 diff --git a/packages/docs/pages/references/index.mdx b/packages/docs/pages/references/index.mdx new file mode 100644 index 00000000..7ceea13e --- /dev/null +++ b/packages/docs/pages/references/index.mdx @@ -0,0 +1,14 @@ +--- +title: 'リファレンス' +--- + +import { Link } from 'gatsby'; + +# はじめに + +新生はらちょ (OreOreBot2) は限界開発鯖で利用できる Discord Bot です。このボットには主に以下の 2 種類の機能があります。 + +- ユーザーの命令で動作するコマンド機能 +- サーバー内での行動に反応するパッシブ機能 + +詳しくはそれぞれのページをご覧ください。 diff --git a/packages/docs/public/.nojekyll b/packages/docs/public/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/docs/src/@types/gatsby-import.d.ts b/packages/docs/src/@types/gatsby-import.d.ts new file mode 100644 index 00000000..51d7f29f --- /dev/null +++ b/packages/docs/src/@types/gatsby-import.d.ts @@ -0,0 +1,9 @@ +declare module '*.module.css' { + const content: { [className: string]: string }; + export = content; +} + +declare module '*.png' { + const content: string; + export = content; +} diff --git a/packages/docs/src/atoms/badge.tsx b/packages/docs/src/atoms/badge.tsx index ffa6966a..d2a6ff3c 100644 --- a/packages/docs/src/atoms/badge.tsx +++ b/packages/docs/src/atoms/badge.tsx @@ -1,6 +1,6 @@ -import type { ReactNode } from 'react'; +import React, { type ReactNode } from 'react'; -import style from './badge.module.css'; +import * as style from './badge.module.css'; export interface BadgeProps { children: ReactNode; diff --git a/packages/docs/src/gatsby-types.d.ts b/packages/docs/src/gatsby-types.d.ts new file mode 100644 index 00000000..f1f6962b --- /dev/null +++ b/packages/docs/src/gatsby-types.d.ts @@ -0,0 +1,1981 @@ +/* eslint-disable */ + +/* prettier-ignore */ + +/* THIS FILE IS AUTOGENERATED. CHANGES WILL BE LOST ON SUBSEQUENT RUNS. */ + +declare namespace Queries { + +type Maybe = T | null; +type InputMaybe = T | null; +type Exact = { [K in keyof T]: T[K] }; +type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +/** All built-in and custom scalars, mapped to their actual values */ +type Scalars = { + /** The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. */ + ID: string; + /** The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. */ + String: string; + /** The `Boolean` scalar type represents `true` or `false`. */ + Boolean: boolean; + /** The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. */ + Int: number; + /** The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). */ + Float: number; + /** A date string, such as 2007-12-03, compliant with the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ + Date: string; + /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */ + JSON: Record; +}; + +type BooleanQueryOperatorInput = { + readonly eq: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type DateQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type Directory = Node & { + readonly absolutePath: Scalars['String']; + readonly accessTime: Scalars['Date']; + readonly atime: Scalars['Date']; + readonly atimeMs: Scalars['Float']; + readonly base: Scalars['String']; + readonly birthTime: Scalars['Date']; + /** @deprecated Use `birthTime` instead */ + readonly birthtime: Maybe; + /** @deprecated Use `birthTime` instead */ + readonly birthtimeMs: Maybe; + readonly changeTime: Scalars['Date']; + readonly children: ReadonlyArray; + readonly ctime: Scalars['Date']; + readonly ctimeMs: Scalars['Float']; + readonly dev: Scalars['Int']; + readonly dir: Scalars['String']; + readonly ext: Scalars['String']; + readonly extension: Scalars['String']; + readonly gid: Scalars['Int']; + readonly id: Scalars['ID']; + readonly ino: Scalars['Float']; + readonly internal: Internal; + readonly mode: Scalars['Int']; + readonly modifiedTime: Scalars['Date']; + readonly mtime: Scalars['Date']; + readonly mtimeMs: Scalars['Float']; + readonly name: Scalars['String']; + readonly nlink: Scalars['Int']; + readonly parent: Maybe; + readonly prettySize: Scalars['String']; + readonly rdev: Scalars['Int']; + readonly relativeDirectory: Scalars['String']; + readonly relativePath: Scalars['String']; + readonly root: Scalars['String']; + readonly size: Scalars['Int']; + readonly sourceInstanceName: Scalars['String']; + readonly uid: Scalars['Int']; +}; + + +type Directory_accessTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_atimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_birthTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_changeTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_ctimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_modifiedTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type Directory_mtimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type DirectoryConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type DirectoryConnection_distinctArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryConnection_groupArgs = { + field: DirectoryFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type DirectoryConnection_maxArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryConnection_minArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryConnection_sumArgs = { + field: DirectoryFieldSelector; +}; + +type DirectoryEdge = { + readonly next: Maybe; + readonly node: Directory; + readonly previous: Maybe; +}; + +type DirectoryFieldSelector = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly changeTime: InputMaybe; + readonly children: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type DirectoryFilterInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly changeTime: InputMaybe; + readonly children: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type DirectoryGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type DirectoryGroupConnection_distinctArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryGroupConnection_groupArgs = { + field: DirectoryFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type DirectoryGroupConnection_maxArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryGroupConnection_minArgs = { + field: DirectoryFieldSelector; +}; + + +type DirectoryGroupConnection_sumArgs = { + field: DirectoryFieldSelector; +}; + +type DirectorySortInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly changeTime: InputMaybe; + readonly children: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type FieldSelectorEnum = + | 'SELECT'; + +type File = Node & { + readonly absolutePath: Scalars['String']; + readonly accessTime: Scalars['Date']; + readonly atime: Scalars['Date']; + readonly atimeMs: Scalars['Float']; + readonly base: Scalars['String']; + readonly birthTime: Scalars['Date']; + /** @deprecated Use `birthTime` instead */ + readonly birthtime: Maybe; + /** @deprecated Use `birthTime` instead */ + readonly birthtimeMs: Maybe; + readonly blksize: Maybe; + readonly blocks: Maybe; + readonly changeTime: Scalars['Date']; + /** Returns the first child node of type Mdx or null if there are no children of given type on this node */ + readonly childMdx: Maybe; + readonly children: ReadonlyArray; + /** Returns all children nodes filtered by type Mdx */ + readonly childrenMdx: Maybe>>; + readonly ctime: Scalars['Date']; + readonly ctimeMs: Scalars['Float']; + readonly dev: Scalars['Int']; + readonly dir: Scalars['String']; + readonly ext: Scalars['String']; + readonly extension: Scalars['String']; + readonly gid: Scalars['Int']; + readonly id: Scalars['ID']; + readonly ino: Scalars['Float']; + readonly internal: Internal; + readonly mode: Scalars['Int']; + readonly modifiedTime: Scalars['Date']; + readonly mtime: Scalars['Date']; + readonly mtimeMs: Scalars['Float']; + readonly name: Scalars['String']; + readonly nlink: Scalars['Int']; + readonly parent: Maybe; + readonly prettySize: Scalars['String']; + /** Copy file to static directory and return public url to it */ + readonly publicURL: Maybe; + readonly rdev: Scalars['Int']; + readonly relativeDirectory: Scalars['String']; + readonly relativePath: Scalars['String']; + readonly root: Scalars['String']; + readonly size: Scalars['Int']; + readonly sourceInstanceName: Scalars['String']; + readonly uid: Scalars['Int']; +}; + + +type File_accessTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_atimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_birthTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_changeTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_ctimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_modifiedTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + + +type File_mtimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type FileConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type FileConnection_distinctArgs = { + field: FileFieldSelector; +}; + + +type FileConnection_groupArgs = { + field: FileFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type FileConnection_maxArgs = { + field: FileFieldSelector; +}; + + +type FileConnection_minArgs = { + field: FileFieldSelector; +}; + + +type FileConnection_sumArgs = { + field: FileFieldSelector; +}; + +type FileEdge = { + readonly next: Maybe; + readonly node: File; + readonly previous: Maybe; +}; + +type FileFieldSelector = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly blksize: InputMaybe; + readonly blocks: InputMaybe; + readonly changeTime: InputMaybe; + readonly childMdx: InputMaybe; + readonly children: InputMaybe; + readonly childrenMdx: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly publicURL: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type FileFilterInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly blksize: InputMaybe; + readonly blocks: InputMaybe; + readonly changeTime: InputMaybe; + readonly childMdx: InputMaybe; + readonly children: InputMaybe; + readonly childrenMdx: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly publicURL: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type FileGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type FileGroupConnection_distinctArgs = { + field: FileFieldSelector; +}; + + +type FileGroupConnection_groupArgs = { + field: FileFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type FileGroupConnection_maxArgs = { + field: FileFieldSelector; +}; + + +type FileGroupConnection_minArgs = { + field: FileFieldSelector; +}; + + +type FileGroupConnection_sumArgs = { + field: FileFieldSelector; +}; + +type FileSortInput = { + readonly absolutePath: InputMaybe; + readonly accessTime: InputMaybe; + readonly atime: InputMaybe; + readonly atimeMs: InputMaybe; + readonly base: InputMaybe; + readonly birthTime: InputMaybe; + readonly birthtime: InputMaybe; + readonly birthtimeMs: InputMaybe; + readonly blksize: InputMaybe; + readonly blocks: InputMaybe; + readonly changeTime: InputMaybe; + readonly childMdx: InputMaybe; + readonly children: InputMaybe; + readonly childrenMdx: InputMaybe; + readonly ctime: InputMaybe; + readonly ctimeMs: InputMaybe; + readonly dev: InputMaybe; + readonly dir: InputMaybe; + readonly ext: InputMaybe; + readonly extension: InputMaybe; + readonly gid: InputMaybe; + readonly id: InputMaybe; + readonly ino: InputMaybe; + readonly internal: InputMaybe; + readonly mode: InputMaybe; + readonly modifiedTime: InputMaybe; + readonly mtime: InputMaybe; + readonly mtimeMs: InputMaybe; + readonly name: InputMaybe; + readonly nlink: InputMaybe; + readonly parent: InputMaybe; + readonly prettySize: InputMaybe; + readonly publicURL: InputMaybe; + readonly rdev: InputMaybe; + readonly relativeDirectory: InputMaybe; + readonly relativePath: InputMaybe; + readonly root: InputMaybe; + readonly size: InputMaybe; + readonly sourceInstanceName: InputMaybe; + readonly uid: InputMaybe; +}; + +type FloatQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type IntQueryOperatorInput = { + readonly eq: InputMaybe; + readonly gt: InputMaybe; + readonly gte: InputMaybe; + readonly in: InputMaybe>>; + readonly lt: InputMaybe; + readonly lte: InputMaybe; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; +}; + +type Internal = { + readonly content: Maybe; + readonly contentDigest: Scalars['String']; + readonly contentFilePath: Maybe; + readonly description: Maybe; + readonly fieldOwners: Maybe>>; + readonly ignoreType: Maybe; + readonly mediaType: Maybe; + readonly owner: Scalars['String']; + readonly type: Scalars['String']; +}; + +type InternalFieldSelector = { + readonly content: InputMaybe; + readonly contentDigest: InputMaybe; + readonly contentFilePath: InputMaybe; + readonly description: InputMaybe; + readonly fieldOwners: InputMaybe; + readonly ignoreType: InputMaybe; + readonly mediaType: InputMaybe; + readonly owner: InputMaybe; + readonly type: InputMaybe; +}; + +type InternalFilterInput = { + readonly content: InputMaybe; + readonly contentDigest: InputMaybe; + readonly contentFilePath: InputMaybe; + readonly description: InputMaybe; + readonly fieldOwners: InputMaybe; + readonly ignoreType: InputMaybe; + readonly mediaType: InputMaybe; + readonly owner: InputMaybe; + readonly type: InputMaybe; +}; + +type InternalSortInput = { + readonly content: InputMaybe; + readonly contentDigest: InputMaybe; + readonly contentFilePath: InputMaybe; + readonly description: InputMaybe; + readonly fieldOwners: InputMaybe; + readonly ignoreType: InputMaybe; + readonly mediaType: InputMaybe; + readonly owner: InputMaybe; + readonly type: InputMaybe; +}; + +type JSONQueryOperatorInput = { + readonly eq: InputMaybe; + readonly glob: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; + readonly regex: InputMaybe; +}; + +type Mdx = Node & { + readonly body: Maybe; + readonly children: ReadonlyArray; + readonly excerpt: Maybe; + readonly frontmatter: Maybe; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly parent: Maybe; + readonly tableOfContents: Maybe; +}; + + +type Mdx_excerptArgs = { + pruneLength?: InputMaybe; +}; + + +type Mdx_tableOfContentsArgs = { + maxDepth: InputMaybe; +}; + +type MdxConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type MdxConnection_distinctArgs = { + field: MdxFieldSelector; +}; + + +type MdxConnection_groupArgs = { + field: MdxFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type MdxConnection_maxArgs = { + field: MdxFieldSelector; +}; + + +type MdxConnection_minArgs = { + field: MdxFieldSelector; +}; + + +type MdxConnection_sumArgs = { + field: MdxFieldSelector; +}; + +type MdxEdge = { + readonly next: Maybe; + readonly node: Mdx; + readonly previous: Maybe; +}; + +type MdxFieldSelector = { + readonly body: InputMaybe; + readonly children: InputMaybe; + readonly excerpt: InputMaybe; + readonly frontmatter: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; + readonly tableOfContents: InputMaybe; +}; + +type MdxFilterInput = { + readonly body: InputMaybe; + readonly children: InputMaybe; + readonly excerpt: InputMaybe; + readonly frontmatter: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; + readonly tableOfContents: InputMaybe; +}; + +type MdxFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type MdxFrontmatter = { + readonly title: Maybe; +}; + +type MdxFrontmatterFieldSelector = { + readonly title: InputMaybe; +}; + +type MdxFrontmatterFilterInput = { + readonly title: InputMaybe; +}; + +type MdxFrontmatterSortInput = { + readonly title: InputMaybe; +}; + +type MdxGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type MdxGroupConnection_distinctArgs = { + field: MdxFieldSelector; +}; + + +type MdxGroupConnection_groupArgs = { + field: MdxFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type MdxGroupConnection_maxArgs = { + field: MdxFieldSelector; +}; + + +type MdxGroupConnection_minArgs = { + field: MdxFieldSelector; +}; + + +type MdxGroupConnection_sumArgs = { + field: MdxFieldSelector; +}; + +type MdxSortInput = { + readonly body: InputMaybe; + readonly children: InputMaybe; + readonly excerpt: InputMaybe; + readonly frontmatter: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; + readonly tableOfContents: InputMaybe; +}; + +/** Node Interface */ +type Node = { + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly parent: Maybe; +}; + +type NodeFieldSelector = { + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type NodeFilterInput = { + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type NodeFilterListInput = { + readonly elemMatch: InputMaybe; +}; + +type NodeSortInput = { + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type PageInfo = { + readonly currentPage: Scalars['Int']; + readonly hasNextPage: Scalars['Boolean']; + readonly hasPreviousPage: Scalars['Boolean']; + readonly itemCount: Scalars['Int']; + readonly pageCount: Scalars['Int']; + readonly perPage: Maybe; + readonly totalCount: Scalars['Int']; +}; + +type Query = { + readonly allDirectory: DirectoryConnection; + readonly allFile: FileConnection; + readonly allMdx: MdxConnection; + readonly allSite: SiteConnection; + readonly allSiteBuildMetadata: SiteBuildMetadataConnection; + readonly allSiteFunction: SiteFunctionConnection; + readonly allSitePage: SitePageConnection; + readonly allSitePlugin: SitePluginConnection; + readonly directory: Maybe; + readonly file: Maybe; + readonly mdx: Maybe; + readonly site: Maybe; + readonly siteBuildMetadata: Maybe; + readonly siteFunction: Maybe; + readonly sitePage: Maybe; + readonly sitePlugin: Maybe; +}; + + +type Query_allDirectoryArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allFileArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allMdxArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allSiteArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allSiteBuildMetadataArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allSiteFunctionArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allSitePageArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_allSitePluginArgs = { + filter: InputMaybe; + limit: InputMaybe; + skip: InputMaybe; + sort: InputMaybe>>; +}; + + +type Query_directoryArgs = { + absolutePath: InputMaybe; + accessTime: InputMaybe; + atime: InputMaybe; + atimeMs: InputMaybe; + base: InputMaybe; + birthTime: InputMaybe; + birthtime: InputMaybe; + birthtimeMs: InputMaybe; + changeTime: InputMaybe; + children: InputMaybe; + ctime: InputMaybe; + ctimeMs: InputMaybe; + dev: InputMaybe; + dir: InputMaybe; + ext: InputMaybe; + extension: InputMaybe; + gid: InputMaybe; + id: InputMaybe; + ino: InputMaybe; + internal: InputMaybe; + mode: InputMaybe; + modifiedTime: InputMaybe; + mtime: InputMaybe; + mtimeMs: InputMaybe; + name: InputMaybe; + nlink: InputMaybe; + parent: InputMaybe; + prettySize: InputMaybe; + rdev: InputMaybe; + relativeDirectory: InputMaybe; + relativePath: InputMaybe; + root: InputMaybe; + size: InputMaybe; + sourceInstanceName: InputMaybe; + uid: InputMaybe; +}; + + +type Query_fileArgs = { + absolutePath: InputMaybe; + accessTime: InputMaybe; + atime: InputMaybe; + atimeMs: InputMaybe; + base: InputMaybe; + birthTime: InputMaybe; + birthtime: InputMaybe; + birthtimeMs: InputMaybe; + blksize: InputMaybe; + blocks: InputMaybe; + changeTime: InputMaybe; + childMdx: InputMaybe; + children: InputMaybe; + childrenMdx: InputMaybe; + ctime: InputMaybe; + ctimeMs: InputMaybe; + dev: InputMaybe; + dir: InputMaybe; + ext: InputMaybe; + extension: InputMaybe; + gid: InputMaybe; + id: InputMaybe; + ino: InputMaybe; + internal: InputMaybe; + mode: InputMaybe; + modifiedTime: InputMaybe; + mtime: InputMaybe; + mtimeMs: InputMaybe; + name: InputMaybe; + nlink: InputMaybe; + parent: InputMaybe; + prettySize: InputMaybe; + publicURL: InputMaybe; + rdev: InputMaybe; + relativeDirectory: InputMaybe; + relativePath: InputMaybe; + root: InputMaybe; + size: InputMaybe; + sourceInstanceName: InputMaybe; + uid: InputMaybe; +}; + + +type Query_mdxArgs = { + body: InputMaybe; + children: InputMaybe; + excerpt: InputMaybe; + frontmatter: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + parent: InputMaybe; + tableOfContents: InputMaybe; +}; + + +type Query_siteArgs = { + buildTime: InputMaybe; + children: InputMaybe; + graphqlTypegen: InputMaybe; + host: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + jsxRuntime: InputMaybe; + parent: InputMaybe; + pathPrefix: InputMaybe; + polyfill: InputMaybe; + port: InputMaybe; + siteMetadata: InputMaybe; + trailingSlash: InputMaybe; +}; + + +type Query_siteBuildMetadataArgs = { + buildTime: InputMaybe; + children: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + parent: InputMaybe; +}; + + +type Query_siteFunctionArgs = { + absoluteCompiledFilePath: InputMaybe; + children: InputMaybe; + functionRoute: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + matchPath: InputMaybe; + originalAbsoluteFilePath: InputMaybe; + originalRelativeFilePath: InputMaybe; + parent: InputMaybe; + pluginName: InputMaybe; + relativeCompiledFilePath: InputMaybe; +}; + + +type Query_sitePageArgs = { + children: InputMaybe; + component: InputMaybe; + componentChunkName: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + internalComponentName: InputMaybe; + matchPath: InputMaybe; + pageContext: InputMaybe; + parent: InputMaybe; + path: InputMaybe; + pluginCreator: InputMaybe; +}; + + +type Query_sitePluginArgs = { + browserAPIs: InputMaybe; + children: InputMaybe; + id: InputMaybe; + internal: InputMaybe; + name: InputMaybe; + nodeAPIs: InputMaybe; + packageJson: InputMaybe; + parent: InputMaybe; + pluginFilepath: InputMaybe; + pluginOptions: InputMaybe; + resolve: InputMaybe; + ssrAPIs: InputMaybe; + version: InputMaybe; +}; + +type Site = Node & { + readonly buildTime: Maybe; + readonly children: ReadonlyArray; + readonly graphqlTypegen: Maybe; + readonly host: Maybe; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly jsxRuntime: Maybe; + readonly parent: Maybe; + readonly pathPrefix: Maybe; + readonly polyfill: Maybe; + readonly port: Maybe; + readonly siteMetadata: Maybe; + readonly trailingSlash: Maybe; +}; + + +type Site_buildTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type SiteBuildMetadata = Node & { + readonly buildTime: Maybe; + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly parent: Maybe; +}; + + +type SiteBuildMetadata_buildTimeArgs = { + difference: InputMaybe; + formatString: InputMaybe; + fromNow: InputMaybe; + locale: InputMaybe; +}; + +type SiteBuildMetadataConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteBuildMetadataConnection_distinctArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataConnection_groupArgs = { + field: SiteBuildMetadataFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteBuildMetadataConnection_maxArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataConnection_minArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataConnection_sumArgs = { + field: SiteBuildMetadataFieldSelector; +}; + +type SiteBuildMetadataEdge = { + readonly next: Maybe; + readonly node: SiteBuildMetadata; + readonly previous: Maybe; +}; + +type SiteBuildMetadataFieldSelector = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type SiteBuildMetadataFilterInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type SiteBuildMetadataGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteBuildMetadataGroupConnection_distinctArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataGroupConnection_groupArgs = { + field: SiteBuildMetadataFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteBuildMetadataGroupConnection_maxArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataGroupConnection_minArgs = { + field: SiteBuildMetadataFieldSelector; +}; + + +type SiteBuildMetadataGroupConnection_sumArgs = { + field: SiteBuildMetadataFieldSelector; +}; + +type SiteBuildMetadataSortInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly parent: InputMaybe; +}; + +type SiteConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteConnection_distinctArgs = { + field: SiteFieldSelector; +}; + + +type SiteConnection_groupArgs = { + field: SiteFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteConnection_maxArgs = { + field: SiteFieldSelector; +}; + + +type SiteConnection_minArgs = { + field: SiteFieldSelector; +}; + + +type SiteConnection_sumArgs = { + field: SiteFieldSelector; +}; + +type SiteEdge = { + readonly next: Maybe; + readonly node: Site; + readonly previous: Maybe; +}; + +type SiteFieldSelector = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly graphqlTypegen: InputMaybe; + readonly host: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly jsxRuntime: InputMaybe; + readonly parent: InputMaybe; + readonly pathPrefix: InputMaybe; + readonly polyfill: InputMaybe; + readonly port: InputMaybe; + readonly siteMetadata: InputMaybe; + readonly trailingSlash: InputMaybe; +}; + +type SiteFilterInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly graphqlTypegen: InputMaybe; + readonly host: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly jsxRuntime: InputMaybe; + readonly parent: InputMaybe; + readonly pathPrefix: InputMaybe; + readonly polyfill: InputMaybe; + readonly port: InputMaybe; + readonly siteMetadata: InputMaybe; + readonly trailingSlash: InputMaybe; +}; + +type SiteFunction = Node & { + readonly absoluteCompiledFilePath: Scalars['String']; + readonly children: ReadonlyArray; + readonly functionRoute: Scalars['String']; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly matchPath: Maybe; + readonly originalAbsoluteFilePath: Scalars['String']; + readonly originalRelativeFilePath: Scalars['String']; + readonly parent: Maybe; + readonly pluginName: Scalars['String']; + readonly relativeCompiledFilePath: Scalars['String']; +}; + +type SiteFunctionConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteFunctionConnection_distinctArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionConnection_groupArgs = { + field: SiteFunctionFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteFunctionConnection_maxArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionConnection_minArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionConnection_sumArgs = { + field: SiteFunctionFieldSelector; +}; + +type SiteFunctionEdge = { + readonly next: Maybe; + readonly node: SiteFunction; + readonly previous: Maybe; +}; + +type SiteFunctionFieldSelector = { + readonly absoluteCompiledFilePath: InputMaybe; + readonly children: InputMaybe; + readonly functionRoute: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly matchPath: InputMaybe; + readonly originalAbsoluteFilePath: InputMaybe; + readonly originalRelativeFilePath: InputMaybe; + readonly parent: InputMaybe; + readonly pluginName: InputMaybe; + readonly relativeCompiledFilePath: InputMaybe; +}; + +type SiteFunctionFilterInput = { + readonly absoluteCompiledFilePath: InputMaybe; + readonly children: InputMaybe; + readonly functionRoute: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly matchPath: InputMaybe; + readonly originalAbsoluteFilePath: InputMaybe; + readonly originalRelativeFilePath: InputMaybe; + readonly parent: InputMaybe; + readonly pluginName: InputMaybe; + readonly relativeCompiledFilePath: InputMaybe; +}; + +type SiteFunctionGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteFunctionGroupConnection_distinctArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionGroupConnection_groupArgs = { + field: SiteFunctionFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteFunctionGroupConnection_maxArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionGroupConnection_minArgs = { + field: SiteFunctionFieldSelector; +}; + + +type SiteFunctionGroupConnection_sumArgs = { + field: SiteFunctionFieldSelector; +}; + +type SiteFunctionSortInput = { + readonly absoluteCompiledFilePath: InputMaybe; + readonly children: InputMaybe; + readonly functionRoute: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly matchPath: InputMaybe; + readonly originalAbsoluteFilePath: InputMaybe; + readonly originalRelativeFilePath: InputMaybe; + readonly parent: InputMaybe; + readonly pluginName: InputMaybe; + readonly relativeCompiledFilePath: InputMaybe; +}; + +type SiteGraphqlTypegen = { + readonly documentSearchPaths: Maybe>>; + readonly generateOnBuild: Maybe; + readonly typesOutputPath: Maybe; +}; + +type SiteGraphqlTypegenFieldSelector = { + readonly documentSearchPaths: InputMaybe; + readonly generateOnBuild: InputMaybe; + readonly typesOutputPath: InputMaybe; +}; + +type SiteGraphqlTypegenFilterInput = { + readonly documentSearchPaths: InputMaybe; + readonly generateOnBuild: InputMaybe; + readonly typesOutputPath: InputMaybe; +}; + +type SiteGraphqlTypegenSortInput = { + readonly documentSearchPaths: InputMaybe; + readonly generateOnBuild: InputMaybe; + readonly typesOutputPath: InputMaybe; +}; + +type SiteGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SiteGroupConnection_distinctArgs = { + field: SiteFieldSelector; +}; + + +type SiteGroupConnection_groupArgs = { + field: SiteFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SiteGroupConnection_maxArgs = { + field: SiteFieldSelector; +}; + + +type SiteGroupConnection_minArgs = { + field: SiteFieldSelector; +}; + + +type SiteGroupConnection_sumArgs = { + field: SiteFieldSelector; +}; + +type SitePage = Node & { + readonly children: ReadonlyArray; + readonly component: Scalars['String']; + readonly componentChunkName: Scalars['String']; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly internalComponentName: Scalars['String']; + readonly matchPath: Maybe; + readonly pageContext: Maybe; + readonly parent: Maybe; + readonly path: Scalars['String']; + readonly pluginCreator: Maybe; +}; + +type SitePageConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePageConnection_distinctArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageConnection_groupArgs = { + field: SitePageFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePageConnection_maxArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageConnection_minArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageConnection_sumArgs = { + field: SitePageFieldSelector; +}; + +type SitePageEdge = { + readonly next: Maybe; + readonly node: SitePage; + readonly previous: Maybe; +}; + +type SitePageFieldSelector = { + readonly children: InputMaybe; + readonly component: InputMaybe; + readonly componentChunkName: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly internalComponentName: InputMaybe; + readonly matchPath: InputMaybe; + readonly pageContext: InputMaybe; + readonly parent: InputMaybe; + readonly path: InputMaybe; + readonly pluginCreator: InputMaybe; +}; + +type SitePageFilterInput = { + readonly children: InputMaybe; + readonly component: InputMaybe; + readonly componentChunkName: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly internalComponentName: InputMaybe; + readonly matchPath: InputMaybe; + readonly pageContext: InputMaybe; + readonly parent: InputMaybe; + readonly path: InputMaybe; + readonly pluginCreator: InputMaybe; +}; + +type SitePageGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePageGroupConnection_distinctArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageGroupConnection_groupArgs = { + field: SitePageFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePageGroupConnection_maxArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageGroupConnection_minArgs = { + field: SitePageFieldSelector; +}; + + +type SitePageGroupConnection_sumArgs = { + field: SitePageFieldSelector; +}; + +type SitePageSortInput = { + readonly children: InputMaybe; + readonly component: InputMaybe; + readonly componentChunkName: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly internalComponentName: InputMaybe; + readonly matchPath: InputMaybe; + readonly pageContext: InputMaybe; + readonly parent: InputMaybe; + readonly path: InputMaybe; + readonly pluginCreator: InputMaybe; +}; + +type SitePlugin = Node & { + readonly browserAPIs: Maybe>>; + readonly children: ReadonlyArray; + readonly id: Scalars['ID']; + readonly internal: Internal; + readonly name: Maybe; + readonly nodeAPIs: Maybe>>; + readonly packageJson: Maybe; + readonly parent: Maybe; + readonly pluginFilepath: Maybe; + readonly pluginOptions: Maybe; + readonly resolve: Maybe; + readonly ssrAPIs: Maybe>>; + readonly version: Maybe; +}; + +type SitePluginConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePluginConnection_distinctArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginConnection_groupArgs = { + field: SitePluginFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePluginConnection_maxArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginConnection_minArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginConnection_sumArgs = { + field: SitePluginFieldSelector; +}; + +type SitePluginEdge = { + readonly next: Maybe; + readonly node: SitePlugin; + readonly previous: Maybe; +}; + +type SitePluginFieldSelector = { + readonly browserAPIs: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly name: InputMaybe; + readonly nodeAPIs: InputMaybe; + readonly packageJson: InputMaybe; + readonly parent: InputMaybe; + readonly pluginFilepath: InputMaybe; + readonly pluginOptions: InputMaybe; + readonly resolve: InputMaybe; + readonly ssrAPIs: InputMaybe; + readonly version: InputMaybe; +}; + +type SitePluginFilterInput = { + readonly browserAPIs: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly name: InputMaybe; + readonly nodeAPIs: InputMaybe; + readonly packageJson: InputMaybe; + readonly parent: InputMaybe; + readonly pluginFilepath: InputMaybe; + readonly pluginOptions: InputMaybe; + readonly resolve: InputMaybe; + readonly ssrAPIs: InputMaybe; + readonly version: InputMaybe; +}; + +type SitePluginGroupConnection = { + readonly distinct: ReadonlyArray; + readonly edges: ReadonlyArray; + readonly field: Scalars['String']; + readonly fieldValue: Maybe; + readonly group: ReadonlyArray; + readonly max: Maybe; + readonly min: Maybe; + readonly nodes: ReadonlyArray; + readonly pageInfo: PageInfo; + readonly sum: Maybe; + readonly totalCount: Scalars['Int']; +}; + + +type SitePluginGroupConnection_distinctArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginGroupConnection_groupArgs = { + field: SitePluginFieldSelector; + limit: InputMaybe; + skip: InputMaybe; +}; + + +type SitePluginGroupConnection_maxArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginGroupConnection_minArgs = { + field: SitePluginFieldSelector; +}; + + +type SitePluginGroupConnection_sumArgs = { + field: SitePluginFieldSelector; +}; + +type SitePluginSortInput = { + readonly browserAPIs: InputMaybe; + readonly children: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly name: InputMaybe; + readonly nodeAPIs: InputMaybe; + readonly packageJson: InputMaybe; + readonly parent: InputMaybe; + readonly pluginFilepath: InputMaybe; + readonly pluginOptions: InputMaybe; + readonly resolve: InputMaybe; + readonly ssrAPIs: InputMaybe; + readonly version: InputMaybe; +}; + +type SiteSiteMetadata = { + readonly description: Maybe; + readonly siteUrl: Maybe; + readonly title: Maybe; +}; + +type SiteSiteMetadataFieldSelector = { + readonly description: InputMaybe; + readonly siteUrl: InputMaybe; + readonly title: InputMaybe; +}; + +type SiteSiteMetadataFilterInput = { + readonly description: InputMaybe; + readonly siteUrl: InputMaybe; + readonly title: InputMaybe; +}; + +type SiteSiteMetadataSortInput = { + readonly description: InputMaybe; + readonly siteUrl: InputMaybe; + readonly title: InputMaybe; +}; + +type SiteSortInput = { + readonly buildTime: InputMaybe; + readonly children: InputMaybe; + readonly graphqlTypegen: InputMaybe; + readonly host: InputMaybe; + readonly id: InputMaybe; + readonly internal: InputMaybe; + readonly jsxRuntime: InputMaybe; + readonly parent: InputMaybe; + readonly pathPrefix: InputMaybe; + readonly polyfill: InputMaybe; + readonly port: InputMaybe; + readonly siteMetadata: InputMaybe; + readonly trailingSlash: InputMaybe; +}; + +type SortOrderEnum = + | 'ASC' + | 'DESC'; + +type StringQueryOperatorInput = { + readonly eq: InputMaybe; + readonly glob: InputMaybe; + readonly in: InputMaybe>>; + readonly ne: InputMaybe; + readonly nin: InputMaybe>>; + readonly regex: InputMaybe; +}; + + +} diff --git a/packages/docs/src/molecules/command-arg-list.tsx b/packages/docs/src/molecules/command-arg-list.tsx index 29ab1aa5..656d5c3a 100644 --- a/packages/docs/src/molecules/command-arg-list.tsx +++ b/packages/docs/src/molecules/command-arg-list.tsx @@ -1,6 +1,6 @@ -import { ReactNode } from 'react'; +import React, { type ReactNode } from 'react'; -import style from './command-arg-list.module.css'; +import * as style from './command-arg-list.module.css'; import { VersionBadge } from './version-badge'; /** diff --git a/packages/docs/src/molecules/command-format.tsx b/packages/docs/src/molecules/command-format.tsx index 1aaff2ea..6e73ecb2 100644 --- a/packages/docs/src/molecules/command-format.tsx +++ b/packages/docs/src/molecules/command-format.tsx @@ -1,4 +1,6 @@ -import style from './command-format.module.css'; +import React from 'react'; + +import * as style from './command-format.module.css'; export interface CommandFormatProps { children: string; diff --git a/packages/docs/src/molecules/feature-badge.module.css b/packages/docs/src/molecules/feature-badge.module.css index 7ebf1f4f..0bd311f7 100644 --- a/packages/docs/src/molecules/feature-badge.module.css +++ b/packages/docs/src/molecules/feature-badge.module.css @@ -1,4 +1,4 @@ .feature > * { - color: #fff; - background-color: #00b7c4; + color: var(--on-primary); + background-color: var(--primary); } diff --git a/packages/docs/src/molecules/feature-badge.tsx b/packages/docs/src/molecules/feature-badge.tsx index 85803de6..11204396 100644 --- a/packages/docs/src/molecules/feature-badge.tsx +++ b/packages/docs/src/molecules/feature-badge.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Badge } from '../atoms/badge'; -import style from './feature-badge.module.css'; +import * as style from './feature-badge.module.css'; export interface FeatureProps { children: React.ReactNode; diff --git a/packages/docs/src/molecules/version-badge.tsx b/packages/docs/src/molecules/version-badge.tsx index 180a60a0..56eeb721 100644 --- a/packages/docs/src/molecules/version-badge.tsx +++ b/packages/docs/src/molecules/version-badge.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Badge } from '../atoms/badge'; -import style from './version-badge.module.css'; +import * as style from './version-badge.module.css'; export interface VersionProps { children: React.ReactNode; diff --git a/packages/docs/src/organisms/layout.tsx b/packages/docs/src/organisms/layout.tsx new file mode 100644 index 00000000..f7ef709e --- /dev/null +++ b/packages/docs/src/organisms/layout.tsx @@ -0,0 +1,49 @@ +import { MDXProvider } from '@mdx-js/react'; +import type { PageProps } from 'gatsby'; +import React, { useState } from 'react'; + +import { Heading, Page } from '../types'; +import { NavHeader } from './nav-header'; +import { SideBar } from './side-bar'; + +export function Layout({ + children, + pageContext +}: PageProps< + unknown, + { + body: string; + title: string; + siblings: Page[]; + children: Page[]; + headings?: Heading[]; + } +>): JSX.Element { + const [sideMenuShown, setSideMenuShown] = useState(false); + function toggleMenu() { + setSideMenuShown((flag) => !flag); + } + return ( + <> + {pageContext.title} - OreOreBot2 Documents +
+
+ +
+
+ {children} +
+ +
Copyright 2021 Approvers
+
+ + ); +} diff --git a/packages/docs/src/organisms/nav-header.module.css b/packages/docs/src/organisms/nav-header.module.css new file mode 100644 index 00000000..cc997cf4 --- /dev/null +++ b/packages/docs/src/organisms/nav-header.module.css @@ -0,0 +1,91 @@ +.navBarContainer { + width: 100svw; + height: 4rem; + position: fixed; + top: 0; + z-index: 1000; + background-color: var(--background); + box-shadow: 0px 4px 2px color-mix(in srgb, var(--shadow) 10%, transparent); + display: flex; + align-items: center; +} + +.navBar { + max-width: 90rem; + padding-right: max(env(safe-area-inset-right), 1.5rem); + padding-left: max(env(safe-area-inset-left), 1.5rem); + display: flex; + gap: 0.5rem; + align-items: center; + justify-content: flex-end; + margin: auto; + margin-left: auto; + + a { + color: unset; + font-style: normal; + text-decoration: none; + } + a:hover { + opacity: 0.75; + } +} + +.showOnWide { + display: none; +} + +@media (min-width: 768px) { + .showOnWide { + display: inline-block; + } +} + +.topLink { + display: flex; + align-items: center; + margin-right: auto; +} + +.rounded { + border-radius: 9999px; +} + +.siteName { + margin-left: 0.4em; +} + +.menuButton { + padding: 0.5rem; + background-color: transparent; + border-radius: 0.25rem; + margin-right: -0.5rem; + outline-offset: 2px; + outline: 2px solid transparent; + cursor: pointer; + + &:hover, + &:focus-visible { + background-color: color-mix( + in srgb, + var(--surface-variant) 8%, + transparent + ); + } + &:active { + background-color: color-mix( + in srgb, + var(--surface-variant) 20%, + transparent + ); + } + + & > span { + display: inline-block; + width: 24px; + height: 24px; + font-size: 32px; + line-height: 24px; + transform: translateY(-7%); + } +} diff --git a/packages/docs/src/organisms/nav-header.tsx b/packages/docs/src/organisms/nav-header.tsx new file mode 100644 index 00000000..20a2746a --- /dev/null +++ b/packages/docs/src/organisms/nav-header.tsx @@ -0,0 +1,39 @@ +import { Link } from 'gatsby'; +import React from 'react'; + +import iconImg from '../../assets/haracho-transmission.png'; +import * as styles from './nav-header.module.css'; + +export type NavHeaderProps = { + onClickMenu?: () => void; +}; + +export function NavHeader({ onClickMenu }: NavHeaderProps): JSX.Element { + return ( +
+ +
+ ); +} diff --git a/packages/docs/src/organisms/side-bar.module.css b/packages/docs/src/organisms/side-bar.module.css new file mode 100644 index 00000000..cc7ac03d --- /dev/null +++ b/packages/docs/src/organisms/side-bar.module.css @@ -0,0 +1,52 @@ +.container { + transform: translateY(-100%); + transition: transform 0.45s cubic-bezier(0.52, 0.16, 0.04, 1); + z-index: 15; + background-color: var(--background); + padding-top: 4rem; + width: 100%; + position: fixed; + top: 0; + bottom: 0; + display: flex; + flex-direction: column; +} +.container[data-shown='true'] { + transform: translateY(0); +} + +.neighborPages { + flex-grow: 1; + padding: 1rem; + overflow-x: hidden; + overflow-y: auto; + + & > hr { + border-width: 1px; + } +} + +.neighborPageList { + list-style: none; +} + +.neighborPage { + margin-top: 0.25rem; +} + +.neighborLink { + display: flex; + flex-direction: column; + word-break: break-word; + font-size: 0.875rem; + padding: 0.375rem 00.5rem; + border-radius: 0.25rem; + cursor: pointer; + + color: var(--on-surface); + + &:hover { + color: var(--on-surface-variant); + background-color: var(--surface-variant); + } +} diff --git a/packages/docs/src/organisms/side-bar.tsx b/packages/docs/src/organisms/side-bar.tsx new file mode 100644 index 00000000..3bbff890 --- /dev/null +++ b/packages/docs/src/organisms/side-bar.tsx @@ -0,0 +1,67 @@ +import { Link } from 'gatsby'; +import React from 'react'; + +import { Heading, Page } from '../types'; +import * as styles from './side-bar.module.css'; + +function HeadingLink({ title, url, items }: Heading): JSX.Element { + return ( +
  • + +
    {title}
    +
    + {items && ( +
      {items.map(HeadingLink)}
    + )} +
  • + ); +} + +export type SideBarProps = { + shown: boolean; + siblings: Page[]; + childrenPages: Page[]; + headings?: Heading[]; + onClickItem?: () => void; +}; + +export function SideBar({ + shown, + siblings, + childrenPages, + headings, + onClickItem +}: SideBarProps): JSX.Element { + return ( +
    +
    +

    目次

    +
      + {headings?.map(HeadingLink)} +
    +
    +

    隣のページ

    +
      + {siblings.map(({ title, uri }) => ( +
    • + +
      {title}
      + +
    • + ))} +
    +
    +

    子のページ

    +
      + {childrenPages.map(({ title, uri }) => ( +
    • + +
      {title}
      + +
    • + ))} +
    +
    +
    + ); +} diff --git a/packages/docs/src/organisms/tabs.module.css b/packages/docs/src/organisms/tabs.module.css new file mode 100644 index 00000000..147346f7 --- /dev/null +++ b/packages/docs/src/organisms/tabs.module.css @@ -0,0 +1,28 @@ +.tabs { + width: 100%; +} + +.tabList { + margin-top: 1rem; + border-bottom: 1px solid var(--outline); +} + +.tabButton { + cursor: pointer; + background: transparent; + padding: 0.5rem; + margin-right: 0.5rem; + margin-bottom: -0.125rem; + outline-offset: 2px; + outline: 2px solid transparent; + border: 0; +} +.tabButton[data-selected='true'] { + border-bottom: 2px solid var(--primary); +} + +.tabBody { +} + +.tab { +} diff --git a/packages/docs/src/organisms/tabs.tsx b/packages/docs/src/organisms/tabs.tsx new file mode 100644 index 00000000..72c94e87 --- /dev/null +++ b/packages/docs/src/organisms/tabs.tsx @@ -0,0 +1,67 @@ +import React, { ReactElement, ReactNode, useEffect, useState } from 'react'; + +import * as styles from './tabs.module.css'; + +export type TabProps = { + children: ReactNode; +}; + +export function Tab({ children }: TabProps): JSX.Element { + return
    {children}
    ; +} + +export type TabsProps = { + choiceKey: string; + items: readonly ReactNode[]; + children: ReactElement[]; +}; + +export function Tabs({ choiceKey, items, children }: TabsProps): JSX.Element { + const storageKey = 'tabs__' + choiceKey; + const [selectedIndex, setSelectedIndex] = useState(0); + + const selectTab = (index: number) => () => { + if (!(0 <= index && index < items.length)) { + return; + } + + setSelectedIndex(index); + localStorage.setItem(storageKey, index.toString()); + }; + + useEffect(() => { + const stored = localStorage.getItem(storageKey); + if (stored !== null) { + setSelectedIndex(parseInt(stored, 10)); + } + + const onStorageUpdate = (e: StorageEvent) => { + if (e.key === storageKey) { + setSelectedIndex(parseInt(e.newValue, 10)); + } + }; + + window.addEventListener('storage', onStorageUpdate); + return () => { + window.removeEventListener('storage', onStorageUpdate); + }; + }, [storageKey]); + + return ( +
    +
    + {items.map((item, index) => ( + + ))} +
    +
    {children[selectedIndex]}
    +
    + ); +} diff --git a/packages/docs/src/pages/_app.mdx b/packages/docs/src/pages/_app.mdx deleted file mode 100644 index 80ce8c33..00000000 --- a/packages/docs/src/pages/_app.mdx +++ /dev/null @@ -1,4 +0,0 @@ -{/* prettier-ignore */} -export default function App({ Component, pageProps }) { - return -} diff --git a/packages/docs/src/pages/_meta.json b/packages/docs/src/pages/_meta.json deleted file mode 100644 index 9436eaac..00000000 --- a/packages/docs/src/pages/_meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "index": "ようこそ", - "references": { - "title": "リファレンス", - "type": "page" - }, - "development": { - "title": "開発ガイド", - "type": "page" - } -} diff --git a/packages/docs/src/pages/development/_meta.json b/packages/docs/src/pages/development/_meta.json deleted file mode 100644 index d0284ce1..00000000 --- a/packages/docs/src/pages/development/_meta.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "index": "開発ガイド", - "meme": "新しいミームを追加する", - "emoji-seq": "EmojiSeq に新しい言葉を追加する", - "running": { - "title": "実行" - } -} diff --git a/packages/docs/src/pages/development/running/_meta.json b/packages/docs/src/pages/development/running/_meta.json deleted file mode 100644 index 5635ab45..00000000 --- a/packages/docs/src/pages/development/running/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "docker-use-compose": "Docker イメージで起動する", - "docker-use-image": "Docker Compose で起動する", - "index": "実行環境", - "local": "ローカルで起動する" -} diff --git a/packages/docs/src/pages/references/_meta.json b/packages/docs/src/pages/references/_meta.json deleted file mode 100644 index 27849958..00000000 --- a/packages/docs/src/pages/references/_meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "getting-started": "はじめに", - "commands": "コマンドリファレンス", - "features": "機能リファレンス" -} diff --git a/packages/docs/src/pages/references/commands/_meta.json b/packages/docs/src/pages/references/commands/_meta.json deleted file mode 100644 index a467fdcd..00000000 --- a/packages/docs/src/pages/references/commands/_meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "channel-info": "channelinfo", - "debug": "debug", - "dice": "dice", - "guild-info": "guildinfo", - "help": "help", - "kokusei": "kokusei", - "ping": "ping", - "role-info": "roleinfo", - "role-rank": "rolerank", - "stfu": "stfu", - "typo": "typo", - "user-info": "userinfo", - "version": "version", - "role-create": "rolecreate", - "judge": "judge", - "meme": { - "title": "Meme" - }, - "voice": { - "title": "音声機能" - } -} diff --git a/packages/docs/src/pages/references/commands/debug.mdx b/packages/docs/src/pages/references/commands/debug.mdx deleted file mode 100644 index 5f580ae8..00000000 --- a/packages/docs/src/pages/references/commands/debug.mdx +++ /dev/null @@ -1,33 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { CommandArgs } from '../../../organisms/command-args'; - -# デバッガーはらちょ - - - -指定したメッセージをコードブロックとして表示します。 - -指定するメッセージがコマンドを実行したチャンネルに存在する必要があります。 - - - デバック結果に 3 - 連続のバッククォートが含まれている場合、コードブロックの崩壊を回避するためにシングルクォートに置換します。 - - - - -メッセージ内容をコードブロック上に展開するため、スポイラーを含んだメッセージをデバッグするとスポイラー部分が開示されてしまいます。 - -デバックの際はご注意ください。 - - diff --git a/packages/docs/src/pages/references/commands/help.mdx b/packages/docs/src/pages/references/commands/help.mdx deleted file mode 100644 index 38d7eec3..00000000 --- a/packages/docs/src/pages/references/commands/help.mdx +++ /dev/null @@ -1,32 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { VersionBadge } from '../../../molecules/version-badge'; -import { CommandArgs } from '../../../organisms/command-args'; - -# ヘルプ - - - -ヘルプを表示します。 - -### ページ送り - -v1.16.0 - -ヘルプは 2 つのボタンを使ってページ送りできます。最初のページから前のページへ送ると最後のページに、最後のページから次のページへ送ると最初のページにジャンプします。 - - - -ページ送りのボタンは一定時間で無効化されます。無効化された場合はコマンドを再実行してください。 - - - - - -ページ送りの制限 - -**`v1.32.1` からページ送りができるのは `!help` コマンドを実行したメンバーのみに制限されました**。 - -コマンド実行者以外がボタンを押してもクライアントにはインタラクションに失敗した趣旨の警告が表示されます。 - - diff --git a/packages/docs/src/pages/references/commands/meme/_meta.json b/packages/docs/src/pages/references/commands/meme/_meta.json deleted file mode 100644 index 8a0a17c5..00000000 --- a/packages/docs/src/pages/references/commands/meme/_meta.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "index": "ミーム機能", - "clang": "clang", - "dousurya": "dousurya", - "hukueki": "hukueki", - "kenjou": "kenjou", - "koume": "koume", - "lolicon": "lolicon", - "moeta": "moeta", - "n": "n", - "nigetane": "nigetane", - "nine": "nine", - "ojaru": "ojaru", - "syakai": "syakai", - "takopi": "takopi", - "tsureteike": "tsureteike", - "web3": "web3", - "failure": "failure" -} diff --git a/packages/docs/src/pages/references/commands/meme/moeta.mdx b/packages/docs/src/pages/references/commands/meme/moeta.mdx deleted file mode 100644 index 432da9e4..00000000 --- a/packages/docs/src/pages/references/commands/meme/moeta.mdx +++ /dev/null @@ -1,37 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { CommandArgs } from '../../../../organisms/command-args'; - -# 「うん ついでに〜が燃えた」 - - - - - **元ネタ**: - - [2022 年 8 月に久留米・筑後川花火大会で不発の花火玉が落下し、限界開発鯖にも通っている学生がいる 久留米工業高等専門学校 (久留米高専) の弓道場が全焼。](https://www3.nhk.or.jp/fukuoka-news/20220805/5010016764.html) - - その事故に関する久留米高専の学生とその母親との LINE が元ネタ。 - - [該当ツイート](https://x.com/yuki_yuigishi/status/1555557259798687744) - - - -### 使用例 - -`!moeta 限界開発鯖` - -``` ->> 「久留米の花火大会ね、寮から見れたの?」 -「うん ついでに限界開発鯖が燃えた」 -「は?」 -``` diff --git a/packages/docs/src/pages/references/commands/meme/web3.mdx b/packages/docs/src/pages/references/commands/meme/web3.mdx deleted file mode 100644 index 57dba562..00000000 --- a/packages/docs/src/pages/references/commands/meme/web3.mdx +++ /dev/null @@ -1,33 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { CommandArgs } from '../../../../organisms/command-args'; - -# 「いちばんやさしい〜の教本」 (from インプレス) - - - - - **元ネタ**: - - 元ネタはインプレスから出版されている「いちばんやさしいWeb3の教本 人気講師が教えるNFT、DAO、DeFiが織りなす新世界」から。 - - 明らかな間違いが多数含まれており、大炎上した。 - - - -### 使用例 - -`!web3 Rust` - -``` ->> 「いちばんやさしいRustの教本」 - インプレス -``` diff --git a/packages/docs/src/pages/references/commands/voice/_meta.json b/packages/docs/src/pages/references/commands/voice/_meta.json deleted file mode 100644 index b5039e8c..00000000 --- a/packages/docs/src/pages/references/commands/voice/_meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "colk": "gyokuon", - "kaere": "kaere", - "party": "party" -} diff --git a/packages/docs/src/pages/references/features/_meta.json b/packages/docs/src/pages/references/features/_meta.json deleted file mode 100644 index 27bebc66..00000000 --- a/packages/docs/src/pages/references/features/_meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "bold-italic": "Bold-Italic 警察", - "delete-diff": "削除 Diff", - "edit-diff": "編集 Diff", - "emoji-create-log": "絵文字作成ログ", - "sticker-create-log": "スタンプ作成ログ", - "kawaemon": "Kawaemon has given a new role", - "typo": "今日の Typo", - "vc-diff": "VC 接続 Diff", - "time-signal": "時報システム" -} diff --git a/packages/docs/src/pages/references/features/delete-diff.mdx b/packages/docs/src/pages/references/features/delete-diff.mdx deleted file mode 100644 index 724d967c..00000000 --- a/packages/docs/src/pages/references/features/delete-diff.mdx +++ /dev/null @@ -1,30 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; - -# 削除 Diff - -ログ,v1.0.0 - ---- - -メッセージを削除すると削除したメッセージを晒し上げます。 - - 削除 Diff - は一定時間で削除されます。削除せず取っておきたい場合はリアクションを送信することで阻止できます。 - - - - -削除したメッセージにスポイラーが含まれている場合は削除時に開示されます。 - -削除する際は覚悟を決めてください。 - - - -## 早すぎる削除 - -v1.50.0 から利用可能 - -メッセージを削除したのが送信してから3秒以内であれば特別なメッセージで晒し上げます。 diff --git a/packages/docs/src/pages/references/features/edit-diff.mdx b/packages/docs/src/pages/references/features/edit-diff.mdx deleted file mode 100644 index 7f000c8f..00000000 --- a/packages/docs/src/pages/references/features/edit-diff.mdx +++ /dev/null @@ -1,41 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; - -# 編集 Diff - -ログ,v1.0.0 - ---- - -メッセージを編集すると編集差分を晒し上げます。 - -## Diff の見方 - -### 削除 - -削除部分は 取り消し線 で表されます。 - -hoge**~~hoge~~** - -### 追加 - -追加部分は 斜め文字 で表されます。 - -hogehoge **_hoge_** - ---- - - - 編集 Diff - は一定時間で削除されます。削除せず取っておきたい場合はリアクションを送信することで阻止できます。 - - - - -編集したメッセージにスポイラーが含まれている場合は編集時に開示されます。 - -編集する際は覚悟を決めてください。 - - diff --git a/packages/docs/src/pages/references/features/emoji-create-log.mdx b/packages/docs/src/pages/references/features/emoji-create-log.mdx deleted file mode 100644 index 1c8256d8..00000000 --- a/packages/docs/src/pages/references/features/emoji-create-log.mdx +++ /dev/null @@ -1,10 +0,0 @@ -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; - -# 絵文字作成ログ - -ログ,v1.14.0 - ---- - -絵文字を作成するとログを送信します。 diff --git a/packages/docs/src/pages/references/features/kawaemon.mdx b/packages/docs/src/pages/references/features/kawaemon.mdx deleted file mode 100644 index 882c844b..00000000 --- a/packages/docs/src/pages/references/features/kawaemon.mdx +++ /dev/null @@ -1,25 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; - -# Kawaemon has given a new role - -その他,v1.16.0 - ---- - -新しくロールが作成されたら、かわえもんにつける機能です。 - -ロール付与後は `#無法地帯` に通知が届きます。 - - - 基本的にはらちょはどんなロールでもかわえもんに付与するため、本当に付与したくないロールは別途で外すことをおすすめします。 - 一度外されたりなどの操作が加えられたロールについては干渉しません。 - - - - Discord Linked Roles - を作成する場合、連携設定を行ったあとはロールを自由に操作することができないため - Linked の設定を行う前にかわえもんからロールを剥奪することをおすすめします。 - diff --git a/packages/docs/src/pages/references/features/vc-diff.mdx b/packages/docs/src/pages/references/features/vc-diff.mdx deleted file mode 100644 index 7243125d..00000000 --- a/packages/docs/src/pages/references/features/vc-diff.mdx +++ /dev/null @@ -1,18 +0,0 @@ -import { Callout } from 'nextra-theme-docs'; - -import { FeatureBadge } from '../../../molecules/feature-badge'; -import { VersionBadge } from '../../../molecules/version-badge'; - -# VC 接続 Diff - -ログ,v1.0.0 - ---- - -VC に接続したメンバーがいたら `#無法地帯` にログを送信します。 - - - はらちょに **チャンネル閲覧権限** - が付与されていないチャンネルに関するログは送信されません。 - ログを受け取りたいチャンネルには権限を与えるようにしてください。 - diff --git a/packages/docs/src/templates/entry.jsx b/packages/docs/src/templates/entry.jsx new file mode 100644 index 00000000..ae13685f --- /dev/null +++ b/packages/docs/src/templates/entry.jsx @@ -0,0 +1,8 @@ +import { Layout } from '../organisms/layout'; +import React from 'react'; + +import './theme.css'; + +export default function Entry(props) { + return ; +} diff --git a/packages/docs/src/templates/theme.css b/packages/docs/src/templates/theme.css new file mode 100644 index 00000000..3061b075 --- /dev/null +++ b/packages/docs/src/templates/theme.css @@ -0,0 +1,185 @@ +:root { + --primary: rgb(18 102 130); + --surface-tint: rgb(18 102 130); + --on-primary: rgb(255 255 255); + --primary-container: rgb(190 233 255); + --on-primary-container: rgb(0 31 42); + --secondary: rgb(77 97 108); + --on-secondary: rgb(255 255 255); + --secondary-container: rgb(208 230 242); + --on-secondary-container: rgb(8 30 39); + --tertiary: rgb(91 88 145); + --on-tertiary: rgb(255 255 255); + --tertiary-container: rgb(227 223 255); + --on-tertiary-container: rgb(23 19 74); + --error: rgb(186 26 26); + --on-error: rgb(255 255 255); + --error-container: rgb(255 218 214); + --on-error-container: rgb(65 0 2); + --background: rgb(246 250 253); + --on-background: rgb(23 28 31); + --surface: rgb(246 250 253); + --on-surface: rgb(23 28 31); + --surface-variant: rgb(220 228 233); + --on-surface-variant: rgb(64 72 76); + --outline: rgb(112 120 125); + --outline-variant: rgb(192 200 205); + --shadow: rgb(0 0 0); + --scrim: rgb(0 0 0); + --inverse-surface: rgb(44 49 52); + --inverse-on-surface: rgb(237 241 245); + --inverse-primary: rgb(139 208 240); + --primary-fixed: rgb(190 233 255); + --on-primary-fixed: rgb(0 31 42); + --primary-fixed-dim: rgb(139 208 240); + --on-primary-fixed-variant: rgb(0 77 100); + --secondary-fixed: rgb(208 230 242); + --on-secondary-fixed: rgb(8 30 39); + --secondary-fixed-dim: rgb(180 202 214); + --on-secondary-fixed-variant: rgb(53 74 84); + --tertiary-fixed: rgb(227 223 255); + --on-tertiary-fixed: rgb(23 19 74); + --tertiary-fixed-dim: rgb(196 192 255); + --on-tertiary-fixed-variant: rgb(67 64 120); + --surface-dim: rgb(214 219 222); + --surface-bright: rgb(246 250 253); + --surface-container-lowest: rgb(255 255 255); + --surface-container-low: rgb(240 244 248); + --surface-container: rgb(234 238 242); + --surface-container-high: rgb(228 233 236); + --surface-container-highest: rgb(223 227 231); +} + +@media (prefers-color-scheme: dark) { + :root { + --primary: rgb(139 208 240); + --surface-tint: rgb(139 208 240); + --on-primary: rgb(0 53 70); + --primary-container: rgb(0 77 100); + --on-primary-container: rgb(190 233 255); + --secondary: rgb(180 202 214); + --on-secondary: rgb(31 51 60); + --secondary-container: rgb(53 74 84); + --on-secondary-container: rgb(208 230 242); + --tertiary: rgb(196 192 255); + --on-tertiary: rgb(44 41 96); + --tertiary-container: rgb(67 64 120); + --on-tertiary-container: rgb(227 223 255); + --error: rgb(255 180 171); + --on-error: rgb(105 0 5); + --error-container: rgb(147 0 10); + --on-error-container: rgb(255 218 214); + --background: rgb(15 20 23); + --on-background: rgb(223 227 231); + --surface: rgb(15 20 23); + --on-surface: rgb(223 227 231); + --surface-variant: rgb(64 72 76); + --on-surface-variant: rgb(192 200 205); + --outline: rgb(138 146 151); + --outline-variant: rgb(64 72 76); + --shadow: rgb(0 0 0); + --scrim: rgb(0 0 0); + --inverse-surface: rgb(223 227 231); + --inverse-on-surface: rgb(44 49 52); + --inverse-primary: rgb(18 102 130); + --primary-fixed: rgb(190 233 255); + --on-primary-fixed: rgb(0 31 42); + --primary-fixed-dim: rgb(139 208 240); + --on-primary-fixed-variant: rgb(0 77 100); + --secondary-fixed: rgb(208 230 242); + --on-secondary-fixed: rgb(8 30 39); + --secondary-fixed-dim: rgb(180 202 214); + --on-secondary-fixed-variant: rgb(53 74 84); + --tertiary-fixed: rgb(227 223 255); + --on-tertiary-fixed: rgb(23 19 74); + --tertiary-fixed-dim: rgb(196 192 255); + --on-tertiary-fixed-variant: rgb(67 64 120); + --surface-dim: rgb(15 20 23); + --surface-bright: rgb(53 58 61); + --surface-container-lowest: rgb(10 15 17); + --surface-container-low: rgb(23 28 31); + --surface-container: rgb(27 32 35); + --surface-container-high: rgb(38 43 46); + --surface-container-highest: rgb(48 53 56); + } +} + +* { + accent-color: var(--primary); + border: 0 solid var(--outline); +} + +html { + color: var(--on-background); + background-color: var(--background); + scroll-padding-top: 5rem; + font-size: 1rem; + font-family: + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + Segoe UI, + Roboto, + Noto Sans, + Ubuntu, + Cantarell, + Helvetica Neue, + Arial, + sans-serif, + Apple Color Emoji, + Segoe UI Emoji, + Segoe UI Symbol, + Noto Color Emoji; +} + +body { + margin: 0; +} + +a { + color: var(--primary); + font-style: italic; +} + +main { + margin: 0.5rem; + margin-top: 5rem; + max-width: 72rem; + padding-right: 16px; + padding-left: 16px; + margin-right: auto; + margin-left: auto; +} + +button { + color: var(--on-surface-variant); + background: none; + border: 0; +} + +blockquote { + margin-left: 0; + padding-left: 1.5rem; + font-style: italic; + color: var(--on-surface); + background-color: var(--surface); + border-left: 2px solid var(--outline-variant); +} + +table { + display: block; + overflow-x: auto; +} + +pre { + color: var(--on-primary-container); + background-color: var(--primary-container); + border-radius: 0.75rem; + padding: 1rem; +} + +li { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} diff --git a/packages/docs/src/types.ts b/packages/docs/src/types.ts new file mode 100644 index 00000000..f5199ae7 --- /dev/null +++ b/packages/docs/src/types.ts @@ -0,0 +1,14 @@ +export type Heading = { + url: string; + title: string; + items?: Heading[]; +}; + +export type Page = { + body: string; + dir: string; + uri: string; + absolutePath: string; + title: string; + headings: Heading[]; +}; diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json index e8738ac8..7b42ed42 100644 --- a/packages/docs/tsconfig.json +++ b/packages/docs/tsconfig.json @@ -1,11 +1,7 @@ { "parser": "@typescript-eslint/parser", "compilerOptions": { - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], + "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "strict": false, @@ -19,12 +15,6 @@ "isolatedModules": true, "jsx": "preserve" }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] + "include": ["**/*.ts", "**/*.tsx", "gatsby-config.mjs"], + "exclude": ["node_modules"] }