From 11b84a1ec4e5a3d1babc5f8dab58052edf54d8cd Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <44733677+ThatOneCalculator@users.noreply.github.com> Date: Fri, 29 Apr 2022 06:23:13 -0700 Subject: [PATCH 001/296] Add ThoseFewCalculators (stop.voring.me) (#74) --- src/instances.json5 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/instances.json5 b/src/instances.json5 index 8ced29eed4..b24147212b 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -9,7 +9,11 @@ host: 'newskey.cc', name: '๐™‰๐™š๐™ฌ๐™จ๐™ ๐™š๐™ฎ.๐™˜๐™˜', lang: 'ja', -},{ +}, { + host: 'stop.voring.me', + name: 'ThoseFewCalculators', + lang: 'en', +}, { host: 'gorf.space', lang: 'en', }, ] From 11ed3da6d3f6108f6ee3426638edfeec187603ee Mon Sep 17 00:00:00 2001 From: Amolith Date: Fri, 29 Apr 2022 13:24:02 +0000 Subject: [PATCH 002/296] Add mk.nixnet.social (English instance) to list (#73) * Add mk.nixnet.social (English instance) to list * add name var for nixnet.social --- src/instances.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index b24147212b..ac0f7100ef 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -16,4 +16,8 @@ }, { host: 'gorf.space', lang: 'en', +}, { + host: 'mk.nixnet.social', + name: 'NixNet Social', + lang: 'en', }, ] From a98798563d5ca96244ec93c99c9f257a52bc04c0 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <44733677+ThatOneCalculator@users.noreply.github.com> Date: Sat, 30 Apr 2022 04:07:39 -0700 Subject: [PATCH 003/296] Remove gorf.space from instance list (#75) * Add ThoseFewCalculators (stop.voring.me) * Remove gorf.space --- src/instances.json5 | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/instances.json5 b/src/instances.json5 index ac0f7100ef..f574af536c 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -13,9 +13,6 @@ host: 'stop.voring.me', name: 'ThoseFewCalculators', lang: 'en', -}, { - host: 'gorf.space', - lang: 'en', }, { host: 'mk.nixnet.social', name: 'NixNet Social', From 86a229ba0047ae4ce5e57a2ddfa52e78c7916b62 Mon Sep 17 00:00:00 2001 From: Dignified Silence <73890559+4ioskd@users.noreply.github.com> Date: Tue, 3 May 2022 09:27:45 +0000 Subject: [PATCH 004/296] Update release notes2 (#77) * Update releases.md * Update releases.md --- src/docs/releases.md | 2 +- src/en/docs/releases.md | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/docs/releases.md b/src/docs/releases.md index 4314b06b72..30a087a4c7 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -6,7 +6,7 @@ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ ### Bugfixes - Fix GOP rendering @syuilo -- Improve performance of antenna, clip, and list @xianon +- Improve performance of antenna, clip, and list @xianonn ## 12.110.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2022/04/11 diff --git a/src/en/docs/releases.md b/src/en/docs/releases.md index 11b93664ab..dd3d7e7a32 100644 --- a/src/en/docs/releases.md +++ b/src/en/docs/releases.md @@ -5,6 +5,12 @@ Notes for indivudual misskey releases. Information updates may not be translated yet. For the latest information see [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). ::: +## 12.110.1๏ผˆ2022/04/23๏ผ‰ + +### Bugfixes +- Fix GOP rendering @syuilo +- Improve performance of antenna, clip, and list @xianonn + ## 12.110.0 (2022/04/11) ### Improvements @@ -324,4 +330,4 @@ After the update, some custom emoji may not be displayed. In this case, batch ex ::: warning Older releases are not translated yet. If you can, please edit this page to add them from the Japanese changelog on [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). -::: \ No newline at end of file +::: From 201f1dcffea9264ec0d6fe18b6a278b82a8dee59 Mon Sep 17 00:00:00 2001 From: Dignified Silence <73890559+4ioskd@users.noreply.github.com> Date: Tue, 3 May 2022 09:29:16 +0000 Subject: [PATCH 005/296] Improving faq.md (#70) * Update faq.md * Update faq.md --- src/docs/faq.md | 7 +++---- src/en/docs/faq.md | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/docs/faq.md b/src/docs/faq.md index d32bb8c54a..7857f49446 100644 --- a/src/docs/faq.md +++ b/src/docs/faq.md @@ -4,7 +4,7 @@ description: 'Misskeyใ‚’ๅˆฉ็”จใ™ใ‚‹้š›ใฎใ‚ˆใใ‚ใ‚‹่ณชๅ•ใซใคใ„ใฆๆŽฒ่ผ‰ # ใ‚ˆใใ‚ใ‚‹่ณชๅ• ใ“ใ“ใงใฏMisskeyใ‚’ๅˆฉ็”จใ™ใ‚‹้š›ใฎใ‚ˆใใ‚ใ‚‹่ณชๅ•ใซใคใ„ใฆๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚
-Misskeyใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ่‡ชไฝ“ใซใคใ„ใฆใฎใ‚ˆใใ‚ใ‚‹่ณชๅ•ใฏ[ใ“ใกใ‚‰](../misskey.html#%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ +Misskeyใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ่‡ชไฝ“ใซใคใ„ใฆใฎใ‚ˆใใ‚ใ‚‹่ณชๅ•ใฏ[ใ“ใกใ‚‰](../misskey#%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ ## Android/iOSใฎใ‚ขใƒ—ใƒชใฏใ‚ใ‚Šใพใ™ใ‹๏ผŸ Misskeyใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใฏใใ†ใ„ใฃใŸใƒขใƒใ‚คใƒซOSๅ‘ใ‘ใฎใƒใ‚คใƒ†ใ‚ฃใƒ–ใ‚ขใƒ—ใƒชใ‚’้–‹็™บใ—ใฆใ„ใพใ›ใ‚“ใŒใ€ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃ่ฃฝใฎใ‚ขใƒ—ใƒชใŒใ„ใใคใ‹ใ‚ใ‚Šใพใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰](./apps)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚
@@ -34,7 +34,7 @@ Renoteใฎๆ™‚ๅˆป่กจ็คบใฎ้šฃใซใ‚ใ‚‹ใ€Œ...ใ€ใ‚’ๆŠผใ—ใ€ใ€ŒRenote่งฃ้™คใ€ใ‚’ Renoteใซใคใ„ใฆ่ฉณใ—ใใฏ[ใ“ใกใ‚‰](../docs/features/note.html#renote)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ ## ใƒŽใƒผใƒˆๅ†…ใฎURLใฎใƒ—ใƒฌใƒ“ใƒฅใƒผใ‚’่กจ็คบใ•ใ›ใŸใใชใ„ -MFM(Misskey Flavored Markdown)ใจใ„ใ†Misskey็‹ฌ่‡ชใฎใƒžใƒผใ‚ฏใ‚ขใƒƒใƒ—่จ€่ชžใซใฏใ€URLใฎใƒ—ใƒฌใƒ“ใƒฅใƒผใ‚’็„กๅŠนใซใ™ใ‚‹ๆง‹ๆ–‡ใŒใ‚ใ‚Šใพใ™ใ€‚่ฉณใ—ใใฏ[MFMใƒใƒผใƒˆใ‚ทใƒผใƒˆ](/mfm-cheat-sheet)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ +MFM(Misskey Flavored Markdown)ใจใ„ใ†Misskey็‹ฌ่‡ชใฎใƒžใƒผใ‚ฏใ‚ขใƒƒใƒ—่จ€่ชžใซใฏใ€URLใฎใƒ—ใƒฌใƒ“ใƒฅใƒผใ‚’็„กๅŠนใซใ™ใ‚‹ๆง‹ๆ–‡ใŒใ‚ใ‚Šใพใ™ใ€‚่ฉณใ—ใใฏMFMใƒใƒผใƒˆใ‚ทใƒผใƒˆใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚MFMใƒใƒผใƒˆใ‚ทใƒผใƒˆใฏใ€ใ‚ใชใŸใŒๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใงๆฌกใฎใ‚ขใƒ‰ใƒฌใ‚นใ‚’ๅ…ฅๅŠ›ใ™ใ‚‹ใจ่ฆ‹ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚`https://ใ‚ใชใŸใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅ/mfm-cheat-sheet` ## ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใ‚’่ฟฝๅŠ ใ€็ทจ้›†ใ€ๅ‰Š้™คใ—ใŸใ„ ใ‚ใชใŸใŒๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใฎใฟใŒใ€ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใ‚’่ฟฝๅŠ ใ€็ทจ้›†ใ€ๅ‰Š้™คใงใใพใ™ใ€‚ใใ‚Œใ‚‰ใ‚’ๅธŒๆœ›ใ™ใ‚‹ๅ ดๅˆใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚น็ฎก็†่€…ใซ็›ดๆŽฅ้€ฃ็ตกใ—ใฆใใ ใ•ใ„ใ€‚ @@ -50,6 +50,5 @@ Misskey APIใ‚’ๅˆฉ็”จใ—ใŸBotใฎ้–‹็™บใŒๅฏ่ƒฝใงใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰]( ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ้‹ๅ–ถใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใŒใ‚ใ‚Œใฐใ€**ใฏใ„**ใ€‚็„กใ‘ใ‚Œใฐใ€**ใ„ใ„ใˆ**ใ€‚ ### ้•ทใ„็ญ”ใˆ -ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใงใชใ‘ใ‚Œใฐใ€ๅฑŠๅ‡บใฏๅฟ…่ฆ็„กใ„ใจ่€ƒใˆใ‚‰ใ‚Œใพใ™ใ€‚ -ใŸใ ใ—ใ€็›ดๆŽฅ็š„ใชๅพดๅŽใงใชใใฆใ‚‚ใ€ใŸใจใˆใฐใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๅบƒๅ‘Šใ‚’ๆŽฒ่ผ‰ใ—ใ€ใใ‚Œใซใ‚ˆใฃใฆๅŽๅ…ฅใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ŒๅฎŸ่ณช็š„ใซใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ไธŠใ’ใฆใ„ใ‚‹ใ€ใจใฟใชใ•ใ‚Œใ‚‹ใŸใ‚ใ€ๅฑŠๅ‡บใŒๅฟ…่ฆใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚ +ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใงใชใ‘ใ‚Œใฐใ€ๅฑŠๅ‡บใฏๅฟ…่ฆ็„กใ„ใจ่€ƒใˆใ‚‰ใ‚Œใพใ™ใ€‚ใŸใ ใ—ใ€็›ดๆŽฅ็š„ใชๅพดๅŽใงใชใใฆใ‚‚ใ€ใŸใจใˆใฐใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๅบƒๅ‘Šใ‚’ๆŽฒ่ผ‰ใ—ใ€ใใ‚Œใซใ‚ˆใฃใฆๅŽๅ…ฅใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ŒๅฎŸ่ณช็š„ใซใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ไธŠใ’ใฆใ„ใ‚‹ใ€ใจใฟใชใ•ใ‚Œใ‚‹ใŸใ‚ใ€ๅฑŠๅ‡บใŒๅฟ…่ฆใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚
่ฉณใ—ใใฏ็ทๅ‹™็œใฎ[้›ปๆฐ—้€šไฟกไบ‹ๆฅญๅ‚ๅ…ฅใƒžใƒ‹ใƒฅใ‚ขใƒซ](https://www.soumu.go.jp/main_content/000477428.pdf)ใชใฉใฎ่ณ‡ๆ–™ใ‚’ใ”่ฆงใ„ใŸใ ใใ‹ใ€็ทๅ‹™็œใพใงใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚ diff --git a/src/en/docs/faq.md b/src/en/docs/faq.md index 32d3632983..f2c2d04fcb 100644 --- a/src/en/docs/faq.md +++ b/src/en/docs/faq.md @@ -1,5 +1,5 @@ # Frequently Asked Questions -This document will list answers to frequently asked questions regarding the usage of Misskey. Answers to frequently asked questions related to Misskey as a project can be found [here](./misskey). +This document will list answers to frequently asked questions regarding the usage of Misskey. Answers to frequently asked questions related to Misskey as a project can be found [here](../misskey#frequently-asked-questions). ## "Are there any apps for iOS / Android available?" While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps). @@ -13,16 +13,16 @@ As Misskey is not compatible with the Mastodon API, barring some exceptions, usi Select the search bar from the menu and enter their username including their host server. E.g.: `@syuilo@misskey.io` ## "How do I take back a Renote?" -Press the three dots ("...") displayed next to the renote timestamp and select "Take back Renote". To read more about Renotes, please check [here](../features/note). +Press the three dots ("...") displayed next to the renote timestamp and select "Take back Renote". To read more about Renotes, please check [here](../features/note#renote). ## "I don't want the preview of an URL to be displayed." -You can prevent an URL from being previewed using MFM. Please check the [MFM Cheatsheet](/mfm-cheat-sheet) for more details. +You can prevent an URL from being previewed using MFM. Please check the MFM Cheatsheet which you can see it in your instance with typing a following URL `https://YourInstanceHostname/mfm-cheat-sheet`. ## "I want to add custom emoji." Only administrators can add, edit or delete custom emoji. If you'd like to do either of these things, please ask your instance administrator. ## "I want to develop a Bot." -It is possible to develop a Bot using the Misskey API. Please, [see here](../advanced/develop-bot). +It is possible to develop a Bot using the Misskey API. Please, [see here](../docs/api). ## Which service does the note translation function use? [DeepL](https://www.deepl.com/) is being used for this. From d54ae0b4bbde8f39898d9be06358ebba68f67935 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <44733677+ThatOneCalculator@users.noreply.github.com> Date: Thu, 5 May 2022 08:57:01 -0700 Subject: [PATCH 006/296] Use `©` for copyright (#79) --- src/.vuepress/layouts/Landing.vue | 2 +- src/.vuepress/theme/layouts/Layout.vue | 2 +- src/en/home.md | 8 ++++---- src/home.md | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/.vuepress/layouts/Landing.vue b/src/.vuepress/layouts/Landing.vue index 2abbe17ce4..8ed08a49f5 100644 --- a/src/.vuepress/layouts/Landing.vue +++ b/src/.vuepress/layouts/Landing.vue @@ -184,7 +184,7 @@ diff --git a/src/.vuepress/theme/layouts/Layout.vue b/src/.vuepress/theme/layouts/Layout.vue index dc27e5a75d..cef5797c27 100644 --- a/src/.vuepress/theme/layouts/Layout.vue +++ b/src/.vuepress/theme/layouts/Layout.vue @@ -13,7 +13,7 @@ diff --git a/src/en/home.md b/src/en/home.md index 44f9441a21..b1ec0eb93e 100644 --- a/src/en/home.md +++ b/src/en/home.md @@ -3,7 +3,7 @@ home: true title: Misskey Hub heroImage: /banner.svg tagline: Official web site of open-source interplanetary micro-blogging platform Misskey -footer: Copyright (c) 2022 syuilo and other contributors +footer: Copyright © 2022 syuilo and other contributors actions: - text: Getting started link: ./docs/getting-started @@ -12,11 +12,11 @@ actions: link: ./docs/misskey type: secondary features: - - title: Distributed๐Ÿช + - title: Distributed ๐Ÿช details: Independent communities are run on multiple servers, and these are interconnected. - - title: Lightweight๐Ÿš€ + - title: Lightweight ๐Ÿš€ details: Because it uses Node.js, which runs at high speed, it is lightweight even when federated with a large number of servers. - - title: Fun๐Ÿฎ + - title: Fun ๐Ÿฎ details: It has distinctive features such as reactions and a highly customizable UI. --- diff --git a/src/home.md b/src/home.md index 27d4ee26c9..1fa8f9a9e0 100644 --- a/src/home.md +++ b/src/home.md @@ -3,7 +3,7 @@ home: true title: Misskey Hub heroImage: /banner.svg tagline: ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ -footer: Copyright (c) 2022 syuilo and other contributors +footer: Copyright © 2022 syuilo and other contributors actions: - text: Misskeyใ‚’ๅง‹ใ‚ใ‚‹ link: /docs/getting-started From 4b2e9fd67de39b7f1f7c6567c23a28923615b5f7 Mon Sep 17 00:00:00 2001 From: Dignified Silence <73890559+4ioskd@users.noreply.github.com> Date: Thu, 5 May 2022 17:06:06 +0000 Subject: [PATCH 007/296] Add jigglypuff.club and minidisc.tokyo to list (#78) --- src/instances.json5 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index f574af536c..89f7615f06 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -17,4 +17,12 @@ host: 'mk.nixnet.social', name: 'NixNet Social', lang: 'en', +}, { + host: 'jigglypuff.club', + name: 'Jigglypuff!', + lang: 'en', +}, { + host: 'minidisc.tokyo', + name: 'ใƒŸใƒ‹ใƒ‡ใ‚ฃใ‚นใ‚ฏใ€๏ผญ๏ฝ‰๏ฝŽ๏ฝ‰ใ€€๏ผค๏ฝ‰๏ฝ“๏ฝ•๏ฝ‹๏ฝ•ใ€‘', + lang: 'en', }, ] From 6636d35a642b82c60a424899585f9e76828c35c2 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter <44733677+ThatOneCalculator@users.noreply.github.com> Date: Thu, 5 May 2022 22:42:57 -0700 Subject: [PATCH 008/296] Improved English (#81) * Merge conflict * Fix --- src/.vuepress/layouts/Landing.vue | 2 +- .../public/screenshot-desktop-en.png | Bin 0 -> 902219 bytes src/.vuepress/public/screenshot-mobile-en.png | Bin 0 -> 95460 bytes .../public/top-features-widgets-en.png | Bin 0 -> 27457 bytes src/.vuepress/theme/layouts/Layout.vue | 4 +- src/en/README.md | 61 +++++++++++------- src/en/instances.md | 13 +++- 7 files changed, 52 insertions(+), 28 deletions(-) create mode 100644 src/.vuepress/public/screenshot-desktop-en.png create mode 100644 src/.vuepress/public/screenshot-mobile-en.png create mode 100644 src/.vuepress/public/top-features-widgets-en.png diff --git a/src/.vuepress/layouts/Landing.vue b/src/.vuepress/layouts/Landing.vue index 8ed08a49f5..aa54c0368f 100644 --- a/src/.vuepress/layouts/Landing.vue +++ b/src/.vuepress/layouts/Landing.vue @@ -123,7 +123,7 @@
{{ frontmatter.sections.features.list.thread.description }}
- + Widgets
{{ frontmatter.sections.features.list.widgets.title }}
{{ frontmatter.sections.features.list.widgets.description }}
diff --git a/src/.vuepress/public/screenshot-desktop-en.png b/src/.vuepress/public/screenshot-desktop-en.png new file mode 100644 index 0000000000000000000000000000000000000000..82fc39d6150355e5e41c5b08b3975730f28db60c GIT binary patch literal 902219 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

eBT{vR1By46MbW9#d8UyfMHi(dVhLXFN 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

aKYk10 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

o)-ur&ZJP}5-qm5 z^zL135Y}C6KNKqYK}v@g3GNN{+Sw-5uaYM~3NsP1;J59?dHI09*Xp;WM0>-mw?pmG zm*~a;=25xLR({Q+Z{zx>r%W^JLKlY)`--8^j%EWF;P%4~^ue>}$nFFB-<;+BXJOdV z_Sw;N)KFYw=u^^KT2W3=XdEGem81MjRZ4j+4_bG;UW}5<$UHvBQ{s)aqavu00~H z270#1Ii?UW*iun(j*Lx2#=?I8nC}{<1`WR;mqLhKLNN80EE&BS@4rYtC*4sUE}UD0M4HwHM2Ta} z^Jn%AXV5b+!!lE&ssR)&&1jani?s&7R!EvQ2L1gfUw~JgxHI1_O^Y3&%VH_SI4k^X z{*tD5({4fj_=}BNr{w*7+qt=HZb?>@SHt1adeo&M{M3dtZZC(ptHAKY3QR0xQ%vswa?XRc41 zulQxh!0BfhWi}r>m>gv^4x3qDw1{=uHGV>~R=>+k)V+vxRSzK#q#?N7+mk^xs2flP4K24=M{N7HZ#`{uZZDlQ5DUqaC;(xGKA0JJB(LyHujz7S3caLo^iJ;$U*H}ce*9YOpdX1g78VwEcArlMl2FvBX=?uIB_!Tu_<#2+DOUPKnudYH*5O@h>+4qh!9yndw5x{)RP+(H zw99iy@ob-4R+cu11E}W(3x&>m&Dk-##f%k$c#KjW#P${?I=Y~rpNkwl51QZIA?+iy zkqNYvj@FuGrJNt_G*h1(s1R~eF?*mqWDf*Epz9IczhQU+VkL^xb9@ksl6Eg;E7#pE z;0y;M-0y^V- zHIkAAJ-i-DRrm^9zpG{Gh!8?-M;_CZN+CiCi((v8N-`{pVM7_&nn)#j2xlpd#=wS4 zlp3TAU#lWd$40s(^h(9Vi=LigPYlgaRu~vbhMt@hsx;*eQZhOSwlP>*X!27zam><- z>?Z~^_7FLwQ^l;7nlgp}3mOqlAWY1lM|qF`Ng%!F$%1ZSq?Ym!I9bZY0#ac zn3s1EE=XV+7|?pQZk729U|px5F%*9c0Ys$PAI*G?sJd=NG_Ne-iQGr1jH?| zR_VL!H_Mlg9dUKbr}}k8zyBGhN&s-a6UK%4`Z!Vq%{trFtPCOnJ(M*x{^9?M4@wVf zooxgr7h(~8%fK2&D$)iGF6s?Y+}9G&uf;4Bh#T~b^w$e=U*Ln)z6Z(ROC0#>Okhhr zQ_TzN<8I#q3zv#EFe%&Jj@qZxJ=OvDx&ZhM>nQ%S3I1$4HHAK{nKC%oPo_SSHz%p{1kO*@a|SKg9p&Wyc7>)ob^-jXdYoKp zyn@>-;7{u|Ik}d3`PSKZHdnUv)AETBuX9~n_43GiqOQt*=JsMsxw9nsHdNH{#Bcvr z`w7d^mG0Ue!p?ME&@bW98KaY@@D^cWvdlzSh*2Pd?9Poo9p29f>U(4k-Wzy;%Cj$! zZ$^2r^eq8sy)muNLl~_OAm5HYz=_w*by<^zSG)M&%)7T_X=~W8G%F>@-Q#`D<_G6-n6T)LBy{y z$X_MY!x3?8j*|a)``rllI@FZ;%rdxW_(k~4`1R3f2#a!&SPEB9yD9wuxq;}D8P+z^ z4Xg!gc<;Nl(%o~X#t$JNQKN)c(Vf%cnJg&Sxb@Kn?k8KM7JAi+d>c9Y$_)0jVAnIP zftWo?VPAKayL*k!ezk6XEs$ETX4;RhIy2=}f=cQ9#FNc6F-y}(DGF}bN*?L8af^aE zmcMznKgP;~b0*yZkr)Gdd@%Ow-zs)OcZ zMe`J(1$P)Kk5e~qoBxjao$Ny4%$;O4wIvPB-HGcpFE0z<_y-VQ$zzQsdT+}*(WfNP z86}LUj7;||^@R!=-hvvujV6f!Jxhj(3%Yqr`dMr02>ZR$L5D4yZEpx(>W%emw0}hV znU!Fs;VsIcI>p(XOt?!n!IKY9a;9A-V4Rf>+J~BGQ4M$!>64V25z9nEm|#MCU6P0u zuHsBd>!5cTB{)Jh3CW!#K+y}?bCg<;T>hlaCkjV?i;gY-Ksx^Y&xWD-Q3_?7Ed>IV ze}H_Gg>^f`lZv-L9F8VWB36|??+D}k0Ov^Jw-^YdTH7cpX=x#)A`K!a!tmNn{W7Q) zeRK7v6W4DZe5CDle4EoCE(zVdmNwV@q}!hJleldjkBjwFv0vp#BGcDWhHK%yJ?W9l z={{Sdm?l;GR#UY0jAKlK+=Ag(EK=}V1CRu}(RRu_n&NyZ5X{7cRJxg` zRpW>57LZ6Mup`&9BXFVM?VwXK_8ye07_|}z_khVylllW%Hx@e0H_v zV|Kl5`i^vVweDlG;`6?^^=Y8(4|0%K)A@izaMI3)MJ)r5K15p-;7FvqdxCy(kVtie zNf9C4!Ues(^_=^C-6Ghz{rZp4ZR#3G_Ou2Nk?3-~IBYCm`aEAOyuBm!ecy{7gn@Sb zfQAkq930HKAfO7iavl@c{hXM&_EFTG5Ywcd5@8-ujxR5FIk4bf0a6pJto;YKeK1|0 zg#7M$J-%xj8$RiLz>1j5iwhK(klNZSEP1=ZPB^+1tMoJ|@M!5w`*> zF(Bz?cvSy}DL3+Y>jDD{sSJ^E95OPqGj-Sd6XQ5E$%ame!41B9Lx^sCccr76=pFeT z>Y(lSK0>2inTL<6R(}8TxWUZlGmrOZv$uxoh~}RsSLQ zvC~~lZTW7NVG5%#C@u;lY)s>xgf_H<4y*}jl4k`&zXpK~V_XB;h>pxb^$~1>BP0hK zELJK)yrN`RO$LUUFC8B*czQ~pf_ziF9MG6Ydhk;jw(=>;RnNH$oJ0ajh!qh(Jt|VB zAzof`0u8l@r-BERNk%*ZGos#8%aVY^(~^OX2kHnr&@5ut-j{+AMd8Rqnt-4`Jit_W zHcwF+8M`DMKWs15^lew0fQ&j|a4(Ukp8_d=5SFx2>{i|gL)ljXLwL3)_>jKnO@`pJ zlmy~15G7$4yplMy3d-eoqd&rTJCwxSYl8#KZj~RnL4$B?XvD&K(QfOgQ3{oM!Wr~3 zq|HyT9pFW8Tr>5r9&RK(wPT4^8A|Q2Kg|q^k3&6g0XTciDB3P=zt)UMwGYTNImiiS z!2Q#Rm&+{?19S)U_8PA|*=TpFhHB=DvQuXRS!+94Ybje@DWJZltfH#2x)WE~%0Z46 z=1WKJeO>mAU-q3J$Vo=OZCnRI++ZK{<}L5%wIm7Ef3?~wt8+ovKKTXWgP+k|tERfO zY+b6Sd2pm2o0tEsW)$-N-eUZIG=y4TXKV0uGe644X70EDUAO-I3HR|VEBx1gC*b9J zZQ_JEfE@hZq4)K8ZXjGxe`_sMJL)CmVewB;*GJj#aNyThWMm}JUj{UZmMi7|emzPD z4!=HMAFmVX%u6Lm34GgGU-vK9(ab$K1UL^TZ$y0c&$)KrpiSL5$+$wZ`dmV4oP5ec zLRv!XI_$zKbut#&e!0jz!Un?ZKe>6e1m|@Pab z;t-eraBfvH$XHd3;}KR|UslV?pzJAQS;WSl*<1=b@A~oEptp}QGyMb!*SXsGoQouX zS0sR1zGmxnXVNFlCbHAbvDMA6G{~|BeHeE(lf8Ul-ROWi1_3fhcDHk7GIEO``ym(Wo%qv+jxp3-vZ|5rs*yf^$Yjv+{-Q0-4*YVfU*9&$glat z+K<5Fn6IpmLcr=+R>*5uO7n6I^mvX`ZtIns88b&|oW{swT9^k`B>&w&mb0fD?k0dj zLn24>U13{K;bS1~BHT_pdMRqI6P4V9d?dqaPdrjvHv=UI#@+o=!(W0HVl8xssn;oO{@G zee$%jDIgYfO*GuPbjGPI3q@oy(aRj}pNf3UEaZ5(7Ibp8r#QUfBq!8<67_x&|2hR( z0^8>Ald;CLDr&L(t!uxw`Bx*ES4WvgPnk#8_WOm@E2XqfB4)blnLiBR`A0@Wu1aGi z086(vjo9xjp-fQSFTdWGRtfzNUH`h?-!+}y4aK${m5wERt*spT+69)~m@7Hx3kjI& ziDXPFFtQlN0kX*?ay_2IY-Btg8&7tHP~^%!6CZojb}L3aOf|2$`lC#Q^Et3@vS+#Btc| zhz^U9rYMbaJHMnX^jiKZB(2Lx2=98BvMod$aEu^65C+9W6K#YW%xc`DvK=%hnkGwu zNSsfYGeCl6kVPAzT}y|eiIh{VNF8)jf9V)*$SLYFL>HkGl@67&vdm=Hk(Ypxc1L@} ziD`xXs||TT`oj}uWqW>QJ1Mx?1l>00lF4)`rZ8PmD@VxI{VZW9b0EPbJTV<uVFJ zQkcD;+(ZgvDV=hu!_ZOU0LdGi5+qsV33zt0?3aN!?F4JqCC)&J_^eam6IZQ;Qs&3jJy4aQ-|e0& z;^g{xlK_A_^qv3fgY{7VT|jNG&ykg(|U(e&I%rU8HeNGpSkPy)}*n z#g@|QY@6DAi`q|qAJ5io1$5_{L2E&NmqS~O9-TT@?!hSaI9eB)Wam z8~W-t#`%CEO>KQu_mRW^p)UVt|L>D;Z~u2LY^jm$ygcTwyP*ke5rOZg^p@{;)US6T z(2u7h`m^!|*w=IJ9RPfwuuuK1k?H65XKbt#GSTn5hveRmBW6P&daoGz16yA2v1bgs zd<%P`fXB!l-`jCzoSb0GyX^FxE{JkwfBFA-0`MA{o;jQVkaz#bqjXhtbYtJIIWg## zk9_~8hOUHEpuv%e5FbEr%Is%q!VmciOk*Z)sf(^8*D?#=CJU#6@Vc&sai*`2d52{V z3!?MUEsb#sFdQ!8b9CBpT$l&wY&GRYAcOPHj9`sVf)<|$c9fn_g_5e4XXZ&%USY=1 z=l23bYX9+~rx_-pF}({E9bmjk~bkrFYl%y=AkFU60*s&Hm2NSXk)o+fZcK(MldEeUqIW zJ7b^zWXwu10gAj@bsk<#ZoX|szGVh(4dj)_1^@ldS>{~F+T7de-umfY$68|8YeQM+ zEtS#KpvcmL^yR$m#9O1YY0Y_m_m$N7R{RPdF*E)3OmnsTGPBZRt>Q9MoJO1n_5+7G zosBA=O|s+$+cNZBJ_5GTRi{fYyG;$JUjwUE2bFy_oprtZwmOCN46+q7jLJ5m%>+E4 z_f)s=1|a`%)>4G-H{`}M zHi+j{fS|YMt*A^0C!UQkN4f?uFP96&=OIHROni%z78Fr~kOr4=4|s@B);Gd$tU(&m zNC%sv-1wJJ(=4;Rj$va5h(#i?&=urvYv6ukSoo?Y-uu}_eB3fAXn0k6LoMmGA?3X$ z#qPA1_hiB+`Y#N|Jy4bxsgyeuzIX{Z2l)Ic@@`yz9P8emxqkNlUH6>~6#l>iM&QT8 z?=SHe7;VrW&-?fZ0eL?$YmmDC`sYu(g1mu#bqX)mFYAI^mR33U)R=W$DLTk_zvqUO zUHl8nPJHAh$8RK~|2b$b^Y_k7MFP-9C#I2)zh#iJshzg1o64!>VN=5DPv_M`Ff8hJbZyss;;=2EZm;PiX{xBFp4CMrp#eZi zr+|^$|0{bS7G31^y0`gP+TMzwjx5m-4PPq}MXwTuHtMMt_Y8H0O77IM9iM8G5WeiO zy`ZGF!V%e)BRQkb4UEE35@NTe4F_Hb7Ed-5HW$?dJERYms*H3%(5Y|OSZ%{7s5HQY z-uVwYe?P^vqX^yywJQWVh?gfj(p@9-nRR_|YJfGphr|dQ3>+6{rkvcZivr}~brx7u z9^P)=#Yx(zQ>5w%$oLjPNSrh%B$K$uM#rvAn3=Qesv*W!Otsx4wB0E<)XSZ{ zlRcnX#yfM>t(~2-f*0p2P#y~lNl1VNj zmbS*2?b*O(RgceeXD~sF_Q(53%ntfDt_?0eA(zmf_tnIBw^&zs#WRED6<(L! zzJ~bitxv&^R==IA8vfXLE4kIHQd%}8wy?cRxBFl2-qw;j-eEKpG)W_lA!|gQ9@ieg zO+GKa<#*eql5n5@#?IQ;*WA{K5^+a`|Kbbx_xu-+)5nX`F0%qUdUCIg%ZE}}Vq#)* zGbd3zFg8b-X0g8?G*TQ`@U3!xK4W%xdiF0@*l*|qZgQV)|4f3OJb2-I{(LjW5H0(~ zft~BX5I_6nS`(yY?73y0w-=p#=wS3R4F1( ztGoy6C_|uz0ggJd3RX-rEa`_;fd?jPIH8Dx3?ChOTYTY(S|8xpmX9%v^%sZKF`fh? z)l})OKiPLw3mH0vp6F7Pf_0Nd$N+;X_}>r-yDzO!pxG~$RK|iv3A40>J_Hw|FjOrt zGC7fB7@FT;0OCs5#UC}T7VNv3*NntG40t^drYLRK0068RVb ztyLC%NJU#U>54}gKrzY`B^dn@;jIrTu#1Qf=!1bALKyPCpC$U@xdus6Dj=s$7=E&V zx;tb=r5y5_a-+;uFiP7A0C*QP)f#GZ&#LfORO4!BAk$ZcrKXYt#^d9q zmwj9kf|mhN@BH*(-q!pZbfREg%sE`EcZT1u#NSU2?kLg{+H1)pN(KQHm!Vlpe(&I) zWF#-2xjo=6yYUXo71-Zz9sRpX1s%OXCD+-S$A5Qx-|5b;bvXy#$1ZyFE&Q`U;_mNs zS$a_iqnHf@{GTrRhb4cCb`|C=11E&uoi=YObtTKG;@@(w#jkGep)8gZ9K2P2M_skCuc1}gv50O++L;Du;gFltim->?2Ebk)|NR?n@=x|KD4Gg8Z<8FB z2>1_L`)VI?j7g$P8@;S6tt|Vc`rgOTIB0r(rDdP|?Qd3Sq@&;6y1i(P@lnCrraE4ia;Q*yy^ zfK!+8uWEbil3!@mezkc-HIT~;^3B!2lGSOtm0v0NO}Y5&xzA;(RjPIq$&6JlcF&q> z&nx`gS8m(AE3cN__oslnTi=Q9hV`MZ`S!e`%-WB+*tE`Z@v_C##kp7u; z@79fn3;q1~2e}4HZ>1)x`ljS;P<(-7Ia4@hb^al`@a^($A;U$a&Q% z3hJYh(IKC$uidSp(D#%Fr425eW6`l=^mdic{Om;T7Mq%s%-kbWi=)tR!Mf}joNy~e z(k5{zspCzt&&?5c?Wk9768r9~ldtk9Yoqy=gZ;Q{tWXA);K(IHgoV(@pFiA2QS9i{ zR#3}MAh;bx@#beG19DW}6fO0Yr3LBa^AVP)*UwN%_#h&ZNx@5JB=M!UMo)$t_=30&ek_Zgb#?aLt-oZ{g|^gq)G})(H90IKmde9d z%EoLKeyCGK)BPOe%)EQcsaOsQslAKof7>u+3|$y+EbUn@{ptwq$!gC#%bbpid`g;2 z>pZ9#QoS^q-w}uZ_r<#H>(N;1`KQpR?fA*@GBUWI8Ik!K`?4l|~hdh8_7IrbV<%2z{7mGWuYZ)Mj;jxC(O#WZ%{J*wEhLx@Y>b zYu&W1#x>)U5s}AXEwD)gsQho2w>Kn;tBImo3byafQ?QD8Qb@X$4@6W1ce!u|AD-o1|*{H^IT6dI(%1iaIyW5QapvE7 z-q!uzp5TW2rKYNY!tFH>xe<{Fv0vM^qTrmU4=BhINwiGdFvsrUljX$kM5qXZ1v(B$ zU=TTd>^7P#&Zj+EyY30!HX6-0_&cAj=9UC)OZ@vpPG*%(%It=Jef)>H|AW1}eu^b_ zj$pDWLFkmGp)!`nWTH68=tE*dwu_W>qJO7eo$qI1;D4lGMtqx)7U4vo zTyVjl4sC!@r&6qfo?wm)P~18?35a5Z!$b$(lG}opD%YYMkBQBGvOa)-&B2G3t&tKM zn=vPmCrduMQ?|{G8W^ZigszV(F*OnB3!c68rZ>ia;bRPp2>=UsFk=#;J)=0g&>+mwL|%_sNp#z?bSgAL%$B z?yw%|w5AeKkN41sbJK|NNR4+(i*-+nbxn(NO|>dH4k!TjUu2CHG~zr!shA2SJXely z|LY9tul*_V2}sIoDcXKAnfeu+i%H(yEGF2@tvbL8Q-!>}_I3>n#x-@`6Kxc2Xz6$Y zF1i+3fQ|pi?Yf->rQ4nz<}c9g=U~s*%L#1e{J_jmqqx0$2jB|)w4@0v+0Xk-oyUum}kR0Yg4+U2eX;UWS!UmYsH^C z;zsg*sf^pgF!LOR{M+aiRdO~xH)HDoz z?KEsA*v7Wsdwo}g&>q)9l~qzAg{J0c$QFQx=?0qB{BfrK4_mJAAou zAX)-d?s>J(J#*C00Sza6jc41w8)x$O^JWKZ1(ju~R-BKjHiWbC(ULa6-S+M1v`m8Y z3mkUWH5dwPTHd$3eQY??YWAP0o57<|^Yz?#-@(yWdGu#K!;`T7KfkWkPs_^lF`egy z*sJhozUvydYDOT9&Apjjtxe2ec-Fzc;_d^W^yy;tYol^1qBU<3bOBJBH&Z`HS2osB z%k|)l`EUBUlxnl8qI3SFx@1Ii#R_x92pFxSWG*<3^Ix#*4b$6Mm;Ytg;bDVR-WkB{ z$X&u5zmhs|Ir(%x15Y@b9+N80yj)(>Y*9o@NF0P&I z-7L=zV?%!5i!;PMQA&_lx_eiNZ=yf{t{=x|BN*4;UfPcvf`;#JAExmxg2va`{O(&V zjTrZPvVBIftFk21(;G(&a9#bwgjoi?FC0OHS|k<}uoe`jK}|3fuc8pIERQ^29p}Aj zv%4KpXhxfMoqnGt&c_(PQ`WhHRaxg#SiLdJ2h>?F%fSZUJ8I}K6RZ` zvPx+zb&FBmt3kKaGUVl>xYn&)ja24`=fn7nAu4}dP%5Dg{TdJ*jbW9kTD>y&pqaW zEJVe)=jj*2U^5Gxz<4mm-fMBBl@DNj4Sl*V z(9Z^}FRclY90ic&tXP)&Kkee|obIeE_ks9BY&9;TP7==6G7!xMd&_zKYUT}Z_U}l* zz_-oEb7_~#sJ~cI7qVtgm?|Lv9&3dnIfW!$^CT%50YTNa8^z$0|qo-faKJ&P4 ziGx8Xod~s=laIC_KW4z)Cg+||mR*r2&7es(;EDT~dcu2K$V03%a2<=ajMSMLYca$C zrL#J`T{_m9w2j@4XC8nRplGj`?zhs1hvW4R@XKTvjQRQbhrTbtjUAu_t;Y`GrHQ>lBu#`4L-LMS9!=3_Cb3)B0~EjN zc4u2~qbK~k#dhQAt2P)qUSG)j-~Jb{8H$kSA=}^TKhajPDf;(+fN2B#{(te-HF@(x ze9OTId60?GhgJp&5t9l@DO`veXgZzI87irQI9L*8QAwmFEellv1+278mkun96&M*A zBxY_{oT7weDM@i3DrzP|HN=SHE{RjiU(4)zY5JZ`0cmTv2x5C8JY(2u*vNVisvyhk zS(>U@OB-VbaSRLkpJF0bLAeZ|OyKBHmm#bzg^4Zw&K3DM(^#wTAtqJ?{7KXyyY}aY z!EVNhxtSPbxgt-FMczIMf|=qG7tNOBeYU~x;!-JKDCdC)l2Fw>CzZo_EQAk({s7?KgX<3njTujqk^ST?um1iIx_r!wj zJV5(qe|~~}XbLUr^RDV^8>SwN6cGxxz59RH`LE2)-`yW6D$4(UUD7lZ1XfTD-2+M7 z4>4d=vQW?K(~;&(573TRj{m$&Ea-W2QB~LL_uAOffo5%b`^B$YXTX<M$;oce$+FePw$ss4($%`z-7x=b)6saf?B(l5OV4ai!{V)x_M>u*)I@Fo zQICOdeTh!Co&Iut@3oCYjrt=D1Cs&=gFMG%WzFyM5u5U18>$hTGU{`YHr|y+j+N@U zJKys&(f4uR_w}H=FXx$Ila+4XrEcw|f!A8<=q;tRjywhrA?-`w#xn0VFg=5Vzn(|( zhI?i{SFSG0dU8*CF3a+!!?vn#jd#c1N>|=W(>g0t?|$w1NJoBLj^|b@Q?bh>Lme4o zaIeY@_4N5WiP($Y)b*z={$fn6T-mCrW7X34baGC0vX8dYd#;;L4io!}belG4n>q_? zpRdNjkn@Q}qwRP@&T`|{K6j$3lhRfhbR(@oYuy}C-clh7$YCQ+H6`0C!TQW^D$|WH z<(X}&2%A>SlU7O(R>%*u$PY5ee;T0IQ4)YxTSD{QFs_nfM3DA1{0`F?f%@UA0G2S< zm>zn`5zOMFpe5&q6?f5qsjtx%Zwy_1>Ix)8z>$gHlVgy6xROY2JqAY~ds1>&xhGU%l!ck? zxwJF3UzWqVpntcfvvXgLK0_4i|LJ%U{XWpQPrj=!-yE>((B@v)>ugnEZCdT*SMuAg z!riX^cw72&*b#j7^tyTZ{anMxI!zrjtJYsEbuAZC#;(0V0Z8Gplby{Uaayq{Q`68_!#;%sX&1UVq`WPb(Tl%PDPs(=r zN+I~lq2`l52#SH#(9E{LeefzSZ9cINXM}`~CvHsd1cT`xXwfc@%qfn44kftz5V~_@ zXctofS&=}*o~uB<5q?N(TKj4=0jjYX5YW{A!JzY#iz_;ULXLaX!wqXkRI(&|s`NGP z7zLRp1oI+0K*bni;Ahf{Uf5C>lNWb6jeSj@{h>n35!BqF`DWSELEDF#1~O%@M;K(`Z%WFbOAi)cWq zZ+(!^GhNNwBT=H|xzRNaA!}Dv&(ZZuvXJ9zIw(`}sJ#}++ffE>r5vi{AaJ8zEK^2c zh8;GSK)=)^6r_a%reJQE%9DGz|L3%R zz^v*s1HW@G-D6$)QRr-(x zu5;3`M`JKvXaWMTsCh9l(vn~Z1*IY5(%3E z$|i6OP~p0FhrhZU?{}qv$d}DxbO4ksONRT0^sa|+R$nIA zd5f$f@^^?XM&SuSeW(cRlA$PK!q3lsjes-z0JISiT!pQc_zQU3>K2H-Pn7SuprS>t zo~+}5xvaZw!#t3GC5j-v2VaG^M01DWX#Nr3A)W~!QGMe(D;LP;gh98*ra-5BY(TpQ z%W!u1(}Ps|dy$?W4MJ_JA&Mc%WJl(*vi@dy^||Wuv-{#x%gRHu=3}cSVvA-R&5u|* z`eF5gVYQ=Tz)$7>^hr{I4r;*DDc?)$>Q4NPp`p|m{l|(r>#9EQtbQ&IJutfQ@Ttas z{c%na18fc0SG@)-9sw$ohKQNpuk(?2v518I7FSk$=&8%A+sqEOyL*4X+sU~UgJU(H z4?F|0?-A-d7FitxjI@9c@doIT)!nLb-7-9H?_Ga4s`0n2*FZaSI|^!fn$yQxnfXh) zB43x&*hR#VE?~lcS=eGIG5= zb9kxr$){@Ehn_HiOM{Q78bDO*X3yYO&D>JQ{HJd64}%hS-E>QBAm(5VGS)gVbF;9H zZMX17J)c1{kCwoSD$9zOMd86yC@#qPCV!K*851C(DZ%-%iQqkm8<0fTvrsV)KYPwQziH|gSNh=OYevHbS=BS4bCihM> z+1`t5-~MplVRVa&Uk-;+Y|aum?Z6^rGNn0{a>0ukPZK4dy_oJB$+|VPC*17!9@21XVC;oQk{mf5AA7_J&A)o zL^Ev|N53VHZApsGU`BO}#TiLusE03o;Wjw7X6Pc#Yi}ClkN#f4&|*5pbSwspoArLs zNXkYOr$izYZiqWNQqq33Z{IOIZwGS?J;X1SMjU*AhxQ7xPT`{`P?x_v$c^Y8f$ z1-%)@c=>q8PJE4jbX|J1G@BJMc@!{|3UYT)vN!Sy5)`n;?!ZuFCTH6sDklQ0v<8LIwZ;Ui&2A}~Mq>qKMK(yy{F{vZAIbH-aEJiI8kb^-e7P?h^oPT(@y99gJ7)UM{ z(ZW(f7lH!*Qbd!92NolD&BiZU3*FV0L|Dc|X$VUAfGXahAp#y5MJOCy#6MHu9qGRW z#sLARq-cF-Cg9o0K^v-Ko$M;$?HPr>YNk0-tP=vs71?s^bY{9KcbDU#Or@egj(;Tx zW(BOrCUmxyp70)!A*3pgKL%qJf5%XmIRq_;=%NbK+;eH_IwkX76kC>(8kRCv+ywQk zgeS~%ROFYrOTm1j8Xa8uD@17ehwzMqFmqow4Vfj@0VgrwLvbrT{OuZh=(_S-jk&@= z(EW0A>Hu#2L`|M)TbbWS_H1y@R4UHT`(iV(DLuYxXV2%fBIV*p*B#0`MP#Si(VB-8 z2cH0iF-Be{>SUfa(M-*WfIe7>YsnKyc7RwnY{t*~iMr`qF;Don{_CHjCw0bdYNf^e zkF%XW`G~j;cd7}A?bPJOWb{>Z^i}So4j?xcRSe|CH00#Wxj4G#^LHVud_L2;|kL zkp%gRq7wm%#_pX$3j&_AX)ztuY&4|JVls&{R~BQ*9`-`pF-swDDT~BC=<-<4KuDmA zJ+VB*(maR2h@c8DACO!cYkrRE`Bvg6cKh)|RWgMa{6f41#Z)nx4KbRn7d{{2j4dQtjj>q{Llml z1D<-Fn{-?eC(r`V+tCq6{lv-MIe(Mii~di6YPvjQQ~_rAB8~Uh;1rHUj06^!@eM&_ zH6)}+z}{04H5x2pLUIQBX*&nNnQiTbb>*2|&6z_Lfh9U(bF?Hs-3TAOp?lPDr#QNP zpEl{7Ke5M`EY3A%?6Y6Nos>AUkA$!`@*Qg5Bl25aTW_~neepv#@kI^6WnG^4T2?-x zja{Mt)5BPCK9SeQjf%SZ(%09QhyNFP8^J;NxBZg8@JAi-uM-PX(;~u)3l{0cmsPo4 z?8`ID`&-9u-@VOyYHKG^S$~hQL#@Xb>7&62X|k_h21_#voD5y|I(atw`nHCKSF3ub zI)-PfTR2*}7fe&}&Mix-nmq@nCPO7fyT5AzaIMU_g6^*$bLZ(oE-maPbISdWGbb}w z_@{!@2SL29wj`4S{nLX}V;N#n;-RWj2yRUI{8bcw*vCgn1XDH@llcVphM9yqxz~o7 zmk`{)r5|>Ft~^PV`uo#@=z*<4<>_Cn>s+j7oa<#p^w3)r()*P1J9PGX`d7I6*PD41Save|S8-c3QJa>MTU9dJH`6;cQG2!W zoAZ*#$=tB=mH~Yb4mAE=6aSgCe(`4BY!-dPeD@}7!L@zMK za@6+}t$#m_Z!bsXVZmMfg1e&HZ|=gPL$TrX_jwetcr@Z}M)6oe@km8MPE|%$FDb_Z z`76dbsK7fa0eeM(?3VK6(uUa33)|3pWZ|(fqp?0Ci)6xdVnYYsoC4pXO5#%?329Su z;Oac~_Nq3Zmt;?+$d38RK`Jf?RZA8^Dh{yj zQy@Yt1H;MhEU8{Sa&;5NlcPTq-wgNIViLZgYGRiGLEXQb{cCD_FrDA@z3OwLiSXSe z*Qag+8@ehj+=h!9&!bGIg({odfU7!ou?A^{;qm{-ItS*+8mL<*6FU>z&IA+Nn29s7 zZBK05&cy84wr$(CjlTWfTVK_!`l`+^IMvn9*=w)8mfEDNir0j-=jr)TzFPFF(V|AD zI9#PhK+42O(+^=uIb}0l8CL@@UyZSHK;Pk3S>-ICGIcV;NcOxSnqCwMtejjH->6dh z)0tH#U#+sJ0O=KCQG*}TqB9vcaB;QZ(VYn&f#S`sg~P0c&a;HYQ6XtoDPb-JTQ37o z19zGs(i8*1{MAbY89!rCs3;x+y+)u>?O`sN73NEz=cl@(0h(_toEwBOi|Po#QUk)9dEHG%U2)+@0j~E|YEpS*zNXnVVP$ zP$=_a|KxXjc+4dJ2$DcP(;$*4fPMY|fn_;rTM4L>*yeHeVpcpw+@0s9DRKWH`{W!wgU9L?VEL^nr44#5hCSgW6jh~?};hOTWQJt1y7eO`Xk&VJi+Z% z(FxnAfS%e%`_thde?i_9=zTXj>Nsq-A?W))IylbBq}}fGsRjgmQcD_Vbk&0nqn z`Af#ewi1(*fv!t21Vi25{}=m6OTWnBCQsow9^9<(S{(Z!FM6QVd~s^?5&aWMnc)#Q z0pMadO5`$N=J5c7cvCbuSX3(J0_RJuFTF>GXaNU(g~;Zx+|IA||# zTror;MS-R#`e{5g0Aw;51mR_oIri@cOmR*O7^3)-3%xbY4g}tO%W)XCV$iy(`cjx_ z!ElrP`Cu}qvqModqHR53(@PR_Y@)x{e${;sF%8aJ>r*`1vNw|VWu=)LB;JP@euY63 z3HX&JghuKo6p$Of1)Gl@uoq6^nO~BPlP*p3Ju@j3?!K4R+x~|h-*9ZtGkM5+fK9hH zN|YM|6Q1@YIEAiT7s|@kyD-q-2s}%)mxcd!r`sN-Cgz$r9gIff>m2G#um(!q@N;0Y zn=c&INxXIdI_~tt?p!bfETK_wb|}Xj0Ud(k3o-+YK>hPLw$?w-hJ;kkN4QHE_OH77 zUnvn;6$eKh4Np;b*ZPubm4$6OJnM3tQ`Bgeupu5Xkibf!g9%ilkB>x#kGx=72KFVF{P9gS2b|q6typdLLNO#3F)#gM=~v?vaMvbu0}Mk$2PAR+*p;LY+J0W zLG+~etfzM@=XI>7_HHCMC}lUTB)2W6cW9!X4I8Ca*@*q4L1qycaf;rN#$(?q-Bn*%!?-4ILGcv?K-p4N|UP>KOLIqtu z07HjBBE<({==JA7u9*c*F1Al{R|0Lkb&$b4(msY1(HR%c+z}_sUp$n|!LX5{p5oBl-^7C3 z#DaMc0tzS{KQi`EgXTi)0qU*efEN?Mv z?!R5peMK{ne+=87D9Xt~X>G=-4>xmf%Ro&Jf*>BfN zmle%({O%HG0}eCbMEv)s7NrHppnn|^4{kHbIWo9j zI7DmrZ^bPC^x{VtvdLujUcGf5v72C^~IeC zdh*)AcoJ*jPm6xK;)LGP59fWoi#wD6eI6B5)P(*bIm817XdFcfabwKF_D|4S+9}w}XL{{-^}_0sA61e0l`a_`{Bp z^_y`&I5EK13Hxs`u)%ybcF)5P{omc=Wp;>ek@ZrzUiHDq1+2lp+{kZY_hPBP`x2>F z!5me`H9$bvokbY`wgeOWB@`FO3>Hd~PMB%958MI^=(*ug$Ye(}g6h`{)UP1TYwGfs zL**g}N5&RYR>o*#S95Msc41e0XjVmTP>Co9id~ljzodZ4vCm&f-k4}qZ{p|>$=9ba zR$zKh5nmp>H=!oIhvb_k{W?W~goB@z;t*(`%db8PI|{CYFZM=`-lQ4+YN|>6ch$iA zu_9?$$h!LS^GK%dkNIccuX~hj;H&TFjsNxF2h71Xir~l1rt9{nB0;V)hP04<CfB88&ZpJ&%pStpzpJdo+~xMk?ZH!;V{aTxP9#>f6;uR zb0SkYfV%t`aDJ@EInfQW_JC_-+I&;juwGTSSl71N-n`h_Jk!%XsrVr;66|(nCCEJE zqhI)bkiEeGaakND#Kbo?z1%-GD>1#jEFh3R`$vy$L2G+igP&uirH;9#mdB}vmHX$K zNFTJNfa0@#okbbrmS(oP9)X4)!InCnrrw2K)-_s2yUXZHHh$rdXNSy$!4I?pYl7ag zeePa8<5s_RYhV4ct-sVSvM{SMwUTOJ*XZJBG_7zlDzUE=v}I;$=&r=qg1qB^%Gva%Z%Q&xiC!Wx%ODyLqu zVuCuGf;v-LE&*wiAt#F-yI#%%NnxBCqn;Y0gmh+47>b(pHPIF$DTq#LL=L$@0(6Gm zWzm^75n7h=TW8~5yqYhA>a(`;M_!foB%$i~NTX&efSqWvK;1Zg6;bP=PZ>LR9Iq== z`}KA0+2KE{^CGMLd)e)+3GM&L{6bq3QV;ow&plCj55de-f}SA|4}L=5p)UAtS(+0& zH#~o$x*qC3dkR-cF-zj=t!s60aOSzNDBx=_&GUlB25&^W0z#F(z=uDhDNxqyf3lrv z*IQ_0=yM*}V1P9E&&>ERnX#-tQRd^Gl|&ZN0v8QGRiFgQ6j2}5fs$~-@Y+BlE+S={no{Ows+U-(Wjnz^& zqr*S1`*T&9O*3&`Eqh5LX(fetSrv6#H)%yBVM8lkK;a*^dNMm$TX)0Np7Bjc$IH=0 z+MAPs&0jYVcV$4_-C;c)agwr6St+30@!Dg~zQvh_B;bN%#=0bmwvQI|1fYH-*vFNS zsFh{Vu4(cvd~k2PIQY#PwT#Z|-yi?7vayd2NhF;e<(ioM1Lhiu`~(&T{}&s&&4I)P zQc`rMn7N4u1KTJjmVJ6T{m??#nS*TY+@P{iVQG4ngQ>=4jmwiTGmB#ht3@etCs+EO zc^8I@Lf?zEwAWq6nlw~lgc8d>{FOiiE=LK^RVoyjKaf2E^cR zYn;f3gy?ivu*iQS5uKv_+QDG`_(s?XuKEz{_g;9x%*06S2l-iM_`hAjZ(!k`U?4Y} zi87e$N*HtMBt%k8iiV=F%JuOk1&N-c$5)=F)%~i5%p~nsOFjoO!{73KFHQ~O3>!Y7 z(097WQB|2GvMB`*7f5R9dRP?Gv5k#re>JjdltaXScN(84Dah;a0D1E^ z97Eh`e_q%ZiO&Pglr7-)R_;455ERwW(5Hv}$*=s!> zO8NR5TJCc3h;<3jYJ;>pAvjKqd(emoz2y9})j$gj**r^f*s!i#7Kfzcl zns|P~!binPTiL~F_*88kpksmtni3?D8D2RrUmcxfbdD}3UV33|DZH1Kce;C+bc>t`<}=S5HQ2RA8Hit8WbLylpkvUJT$64G^zygY$5zr6MYvDiF_pPdl%@F zW&r8PJ--EdG0;O_ z4$O>F@=pzv0Sc7CSY|9WR$w$%Bn=@-vI+8u@N=ndR3aZ*iBHQJ{mLXouIu?QZd{sC zv6gqK)N(^oNhOwdmRNpat7IOdCrmq<`WbNbMPM5D4s#t1?x*N+e%@{#aC#cG-xE4Q zdNt1SJ!r~D}3^r&xn60{<% z9wjQDAiy+{Q9hJe#+u;3U}{KWXo|#I6Tc_SZ+(hbeTw*p{4*=RwQ8(YZdS(g)k*r) z*l1Q=*4Ecu(@a=I+QrF8!dMiL`;)qiQn0C#Ij?}Lw44GrSJWC>>wZu3uaVYY!wi;! z^MrnSqt&8-8a`x!NMu#uA#>cSL2oIAI!iA$NigJZ%6H1|J%l8+G}GomyeOvf_H2k8 z^RUcbkenU_#&>KBcThueD95?-_8erb=?T4<#772Ks=EruC;G8&g(yNYVP;$t@q3mL z_4EB}XJ}c7|FVy)nWO=s?rG(4i-Tbo=6+4HkhM!<8iB=J?*5I7RP8tpxlOk?+Z8o4 zhD5b#l5~)y5J}>5VtqA#!5b+ul}CDyfBtMmRCZA}hgKm2|4h7@fsC^2Xdzd}*<*zL z3lRqY2zEC@!s(NXfO3UFbV3IE1cv$rwIhcuu;Gu?2zXD6-+a88N*6oEc4FErK`oa_ zmuyANo_@q2dr)|)bHgrTwsU5@fP;BUy9QDq=jn{pl}6v0%Lcg=LnE1xO4NzK{K>0S zWE{juq*)=)tc=R}a!x%~yU5Y0clVgQ8&#PPO?^z7#x2cuU2MZOWE5>mE?6I}Av|!C zyW6dT|JgJ*TPW#Uz z_tHpgxhy{KE1DIc)y>WCADAjQ{W7NLEh|ErVZ;z{CS;!pX)AMFE*jrp+~`Iog}=^h zZs$u&JoGe<~_I2z1hT+D;IKc!}J* z(g8J-+KotU``-OhJE~gC`{Ir2e@Wg4DdhQ}?~87a4W&fKVZmoAE8%{p&;AE}WgD8q zV8KIo{WPk8yl8{-U3X}TE>gnyW zLk zH!31RiJRfP&l+_>zF8Q_yWV(j2Mkz&2^i_;US<-mCe9Yxw9CNVx4k}ZxbIs*&-5Pr zwZ7%RK0&7opOf`uYj~_`xR@7(2kIr??_jyt=ote*ozLggZ#~^}zDqvl^fW_gkT&}u zO_{8s148>V@F#|*q2*t19dUWdPa(BUW+Agld&$MvMc-ufy;WcI&3wHQAl(4AZyVmr zXaCh*{M1}t%wDgH!>Jzc$(KYs-B6o&!Dc=w$#psIrJZ#N-CyULE|1@5C&f8qqht5( zyW{lqdcfP*?ax?psI6_Kt!bgDX`!oYqpNYLwRzFAX8zgKY-jT7CZjXn6$U+{JTS{V_=N1t$3bT z(rzwev#~NU_IA*>XtLUMe!sIG9x{Ahy3Dg{)TdieQt-Gnz3n;d7=++A8 zc5!R8aVs`(>(=n*?5R0yR?lnsp`VS!Zx zolPy3fRjg$-oLT~B9y*O0lf5klVLBcm>;KqugY1b%2_yi#NfOO{aBLZiRkm>Rc=ks zgB_9jf`?890cnSTv_(K#vPZA6g}Ni(j|{`_L^nx0WjNOKmu3#@D!`D=Cw9qAEh0d~ z7S@>V(OCA;Gv5Rz|0HI|4@|EL43Z^ypC)*prwE@X_%AuByzDbrrbkp1c0Up|OkWtN zuxP{q)umlhM+?xb_=fd(3r3}yRh_!2x^ zu11O=L$5eKp+6&?$_JlL5B-P}`%Vx0g)^bEU(c^wblUPNP3)eIbI9BJC4?9d(~nX90dqO#jUkMq57Egmde*9rshzW<27Ap zETjcM=NV1rDXrECb|vy+Ma1K_i0i7h*{F=?t^C8bvFMgD|A?5)m7DX^c-h40*~YSS zu%j&HJ%foOgGv2l5$h!7{3NB)BxSXxPhqQDe(jBk&ekvIsW_VYYKkIO!7gqk_0)-K zDSb6chcYF%#?$YQ8o4mmW6{vy2|wUwW&h2};wm51O$m;2MMxK(nOc zrpuzpk-kx(dn=9l`Y)(8eMUR#^a>zj ze_xHeq>66?K_^&v=m^&%xnyNlRo-8p(7xXYj!($Fc zPD|-!_&rr&r1z+Ph8s}~i-9W(QJxa25bYz;VMeUM?#CQ2^e!A~=u^0`hj=h(lfFqV zx&cXg6@V&lKx2Q%1S`r%9=Op5k>zeLi98X4)R^yyzfX|8Pr!Dv_2!@+N|8X00JyYs zp`H=Jvncm-{X@mGz5mKD+l!m}H;e9-u`&Lt(jm^pPyKp{W*P8n*f1g-wc;x=_{{gJ z&|&dx*JM0Yje$sqRkgdKz-db8HDEqc%YSGNQX02xQ70rCaa=BCpJv!q3H4(oP^XpZ^OX?ku~=R?d$Wtt_3U7^KvF&%#Lm6LbIz)9oldX&Ioi^3 z$-=6fjtl)+i9d3`? zvsvlX7;P@+g9EeSqQWWdM1(9vhx$1k+Ct|cF;*F5b#^%svvt?Qc6ly z;tj*gTtdRyK#_-3qy)bY+4v^0ex5wSDq(C)TAHO_gF+G^v7e=9dkTz>2)@Vn$JJJH z3Qc$H>o5=v#LrL%9A9eW$8DwvkfEtOG$B0`LbD&L`c!!Cmh9XEjlC0=$t#>G*LV`F zOchoKW^|$dFJhRNDB5=11n1lLeUvz`zUa|!taUS)G|c^y>3d`{HGD=Ck|@1%pF*&r zFmkhqg_cnB<K%!fXsXq?u*71ORjl08()Wm>dZT;5-D3d0=K6eQXBFiGWz&zm&;>kKqwoIe=daRR4CTT6juA?mf4md6AKw) z989CvT+kBa-@v+nM4 z;2S*^g_pgrZzb@{l=o)%P5$DGXH25qub6K5y-dQB4u)rp2MGa9Zq8NU zb=jBS`%K1OVPxcFL`~24v0NGGeLu-5EiFwJPeVybDJbZxudi=na=5dz(+;XJna}xx z%-r?`e%c*>2_$`iU$20A$oBWWzxrN5Y2Vzu+{=p#gcrmgH=ihp==(n;(mE<0?#<2| zY9B^#LmCgO4uh8(2RUl*thDs5z@B%jT)?d>oi8h%39O&HHwnGkc|Tn24lcJ&u;2IX zo`;&3Lyn5q^`hA)Wu2|7qAspGcvk+cZ9}iF`!u$4q@*&ivHLvy`lL!e;QXoDUC-Up z&D+L2|1TMD*VyX7&`w)12^0}r&$8Xgw+vOov)#(GO?vu~T+_NjtNT1#-?-BHbGwOW zz2l?J!lKQG=P5O#+01HLFI;s<3L6Fi z>-|0j=1vXfUM=))IrP3+;{JIEVOtii8`()xRAA#gvN9`?RDhZ?> zFRq3C`!l4??bs<`*v#NkPw7#q*z$)-y)0V01YWP?fJsHNVoBU)L9%)gK9#N?Tl_=( zyB#3trwRdwiij_i!dMzjQ7ooXDEzO_)|V|A8CSY|PR!XHe`|SonnSK35+@p6OW`IK z0YLLc^flM%w#!`ixdq_F$YFY2WOQ7+cU*gGU1V!nvv*no+_Zeht{M!&Ucrx-HngoA zCbAjg9b#qszFzTxE%AxD^W4&FUG=!_HZhW??3m41p1V{)Vz=i`5vcQ&$ApC1oKxg0hX+^&Fn<68L!K6R)}Rzm&eYrWHMP@}_J z$L-pN+T*Jd(rfkE9hK!@z&X6>S)}eVwj2Z-hAbymw7+xfLli)bpUgac`T@5?xdzp-NXG`IZLos)=;@D%nqlq1e*yQ9t)(i z#dmhvjx)#@niLHxMEY>JqDA2L{k|AdjI3ZYEqzA1&pQFO?YP4Pk>4&65wx#1LC zHhf=Vid#xo=jE>}hZ~%XIxw8LX@WUb)vOy3>D5?@`N-p%kaO9ye zLc+}y#9Q*xqTK^SfmW`7KUBHl`6nu~AmnNW$NeGt%@|378Hx_?w!+836B<4Nk1$#Y zZ59VH9}eDQ_NyF#8dmgdu(A#0(%lF*Vc|&C`@+s@>!h<|;twge_=dA16}JKwG5h}0 zT|P|g8;kP{0U@7!Dvp6r1RI$o-uD*|t}5h^%0N>q^cQI5JY3eX2-*e{_)85%xd7$v zFbo|2xyXUXp`Tug%H61cg-B?b{czx^jdqOwM;yKwv~J2g)^hA@;ue)tW%y(W->Z^eF~Grif1)(#N%?h-?P zxcj7iKF6MR=j=q~@&?Zc(t%N^i#q7vR}-(HMb!EkPUfl8`)2BZP0^wrhm-U$i(!P5 zg<&QoA3i!QAwP3OJuE~!sl__0L_0@-=|(Jn$vFiE0)140pUNMfjbDimz%Q*gyOK_~ zmU`<#gcfz~Ej|993iF%V>S?&R5;rJMu8;SB=iF}}&Wa*|AM(J5Y2bcN<&R1+vf19= z-e|4Uj_L4?27{0-o}Q3 zlT%Gk4>%Bx{^!phw;xxBC*#%KZ*QU3zG>;12Y+#%F^t*S7tr@`=BqV1mfx3z4q-F} z{VE%;E+4bA9=EchyEZ4gJ}dn>*F~>gLbfksI@a;Mn>n9suMbmU(0xDl9&@^~-=D@? ztG8sjSO0BnXRmDk+gQ(roZ76sJsss>g!w%2Z%7I8a-w*8RGxp506rb{%xSCXm{296 z^^w3dFB~#lq#XJ~;|gS!%b=+I2GVQAT}UPNV-laRYXZL)Q&d7tN8+{tc8@?1MIoaGX};OXaVTCKIcBHOqqyrwKKsXlr6WO&a{T z;v&ySMH;DL7R5c(YBK3t85h4_iCc%NClPI4|1L>Ph;3~MEv+aI&&%h9;}YZB#WqB}ir*?N6!&&0?^ftq$%_X4yCz+0#>m>am+j+6#AyG0 zx)e3>7C+$ce%M}7fz)vx<`64=QUmQ+$tR0Drb4TuBMbK+<8E3XwxCdCV zx3U9og9YAbHF3t@eq^DgNx_39h-K=1gGLK{_zvwU0o?`{xUr9_|41xEFsFrcFmzvU z=AkjWG5L?^h)vBXp+I19HEiEz^tm3%k+Y};=R4tJt;<@%lwL!$I*=Qm#p_29>6J#q z3_LhyuC@>Z`rKI1LIh1ZO}Z+sEV{TNWfJ@^@m;qWu)oZ$Ka@EL<7E*>(WHBn(fIzI zpm>d7{1Jkm6$}T99)2G*B>joAjl%{>f^~@<88VdnApoY^E3{wZqxfq&On*6yL{ire zX?{BM!sM6JvM9HC&*Y+)lL=p=?fdCCY9^5+RJw5@!F?$s6x*;!nGNY8ORRN5^s=-h zzdW2bm0wBX<)O&rmC%D-YsbsR+buf?yRuh$i)vjDB2Q5Gs?f?~#AT zjzJ?XmGj~7WVc$(uPi~2-HX$V)S|1+)(V&XzAW@%0bb{~dg^B)TmkmB;=&JCLD0=< zL;jr&<)T(yohz_+`((dKFYtJ}#mURr=C`#fz?(*66{_-VS_v6r>$%|kJyCz4Ca7Vc zEj_<%E#V@91uxdDqWnI`cI->*TNBtgkuCV^JIGpvywB{j{-1J80~&j)iKHy=kj-@@ zE3y%Er=iNv!#sAwX6(fUU5BL*bFrc-2!Ek-?#^uo7M|y(dEhjGr`UuY;ux-km^Xok zm<8?P7r5uXh&n{aTNj{)bgA!lQpW) zAe-lV9VJS#hxs-PH}2Fsvsv>4HUSwa{{==dFtD_Q1RhIn;C&yK84)fbPeegkk75!V z^C&#GHFR!6#DYjD#=v8Dg-AVx(;tR3^gW@!6IL6A0RLil@Utify8?+qLTKb0EH_%_ zr{s?3ZZBX5B{EQOrL(&j$VCi-@=w3quS5(mXvNDNiVUy-c0@BMaV-&GKClA9-o?Jd zh-8aU_(1|KmxdrjDqKFiyprkstm5>#3iqN4?-VWCNj1tP1qA0P=j84StoCkT*w_2N zGeP@DNo=lnyOw&V!g8;|V#5Zthq`V{!;-2hvgDv!6{QY`w}I|VzOPVp$uIi@J>X5K z?`tY373tNNxI_^4IJCOD8c6qMXJJ80PTs$=qAn!`PeAjvYW94+je?9^RaKRpk&&1L z{^c^+olqMnG%+zzqy7VQ1jK4K1qLjRh>h0L(S5yIw-f$+woDi|rJ)})=TpR#PykSA zHgQ5Pt5G!iY_3~v^5S>4<9~W)K)h>-!tnOnxkzkXMRh=|5PCNwv5)>&aIWs+)75#^a(26^_Sy2Lt9PJgE5tdRW^P_RhNTP4EFbS?{8k`W7hL?*5o7S zA%~}Ljmyy)^$c3|4C}0u8S~Nf`|OT^Ci9)*`-I%0(WBmtKLed-nedHt*~PnU!!^!i zHVCIY-dV0E&9AoXpQiMWRQ1kW?CyGn)>6qe^pH%t&Sf`kV{|JIs*-9|rPJsK4d}%e zlF`;Qxs3`EI#v4DOA)q9BR5LXuNK6wmxiy{hpsuPL5_yYQ#~g$@6FUt72+GRQ#;T3 zt*0WJrXj|qV7sQ_tH+{?$KuPU;%j8%D-@G%{LyzyitE^d*X`&dpab)HWOfp#&FwqG zYf%CGbvWU?4&!{8CW_bCtZ_^g$F6#5xvMR3UUXHe`$z4WFl zcNhOsV-HIX2yG1r1=*;y*uy@(OFHouJeM~Hph&QYXNfxo}@x<`I{)4A@p?7b$^Var);aGe7j zLa)9kpbBzA7DomIr$_~+1_Y(Vx8-3KWBlnQUg=@;;NwxD{B!?6EbnKh7iDM7 zI-I{WnXfcank-V11r`4cRu6i2A=n(=S5oGJThpXfFr}3+xoKo@YG?6-oKo6}tba0i z|D+;h3T-h-*-b{;jA5`9N-R*{pC`CEhi{y@xwvCg(qtx0_aEQGLhTNak+xE#tKv!1 z$0C%66{rodmZ7IDhF6q9s;cmnvt(;f6=H>=BecADAv5MgkDBGxpXON<`f)Y5ishnD z&STgV<61r<8hj$2=ZfF6#KQiSBJGpvgHx$BXmpq;J7FeaIxs{SsA6FKK@p8e*W?zZ zhuB9Ay-OH*6C?RbVLNw@C7Bo(K|M$jhNFul2|V=fD4Jh-0%Srp0hW<0kPx zAPx;3H2l~T%5}g|C%}Ub@Em3WSGpW#-%?zYa$ zwa)9-&Px~3J>Tu}em$CaK)2^6g%gFny>vMr1>W!adMl- z$6ce6+LVvW*Na6dD|VG$D~JGvBWUq^uy=azTD|?%PAntwR2A_i3-ONd_Jp0J z49we>lhD*ul#s~JB%-B#^K4JSF2Y()DlnRBgfK5-jwvHX=Tbp+h>)Y9RFa2*q~s>2 zEv^Vl*9!hc7Xl6aWrJ`7!OblT1qC54E-EfgE-vmZK4^A#_w4KSl$W_-#LZ0t&Ui*g z!-skd6d?9FaNP;dB)IVh#>+qMaxNyN0$0rzO-%e_E5C?859sQA4}k}Vhs1*JWfdP< zlfECnN5)3^JwC)#R4$+0+ky6=(Y&84YMbN#6T{0oWM>fC6&R?Ks_<2}aZ4|wW}L*k z>?ONzdb)15u|Aac#2<{krZ-uw+b z?9*+*WRD@floA&Lc6G8OzG-3V<^ZzTPQmxF!5l>Nax{Cjxk zoGAzgND(^~LWmNIVvX^0xk5k_zrb7)1shW2&*EYAnSvi9->DjCq$6e`Mw%%?*3n*` z+^Qh_&ja>b3N*4w4RrGin2ptc!9wB6h{5bID^P$}b`qwt-F`!c=o)#hF} z4%=^GgGDTdd!>CIhZy=Iwum2iPyH3I^J#*fdHqBcO7})xMV4!T>(P1-#25Ur%?UJQ z$TO$MSz`n{#*wjy8)}En>qMpDi~ODwudbWCy`sFfs=BnU%d(=vv8E)jM2~mLKzzx7 zpBmP^b(h*{!sMIeCwTq!We7$ufECR2J~sSDC*et%6dMM9mzQ1Fdo>ro6)_tB23WJ^ z;XcVL`v@<{`Iz?oA|4ia?KdgCceUH>aydLpl$3{s+}qom1C8}j*Y8Dd*W*mxnd#|L z^77A5PpT>^$q5NOu2&mbyslBv(X<#+Ac6hv?oLh5`%w!K9Q2d+eg^rrz3wM_dcYvR z#eYy9?d&Kh={VN--W*?dL0q}<^JDfN)6tIzDk~Yz))t5&;afqJk7s3+Z?2zr>d$U_ zRohw7}|Y|cZM@PQ&D!TXK}6gv^MiMb+h`^ zaNb^Bo<}#%_I0>^Egf2{ z-3z_WRVKHbKA+qc$Am_`T(^{^-|S_z?c4|SO%9B`AI?2`twjg^)aw_JLxcSSSh|yA zKJ*&SnZsE~iDgt9FfIK(Do;xc9>{x`@ju9oZwN5`Oz=Hpw}T0~ehbOen?L3G(QQl4cg(}JZ#|WJ zyMyuV$oX`+db~Ru`t?XmL6q_4DbAxr}8b-p!kk2X5vSewmOk)NpO zJ0k1vwpRn5L77d%HWyM^*4T=8fA6G#7GmNO0w|TRo0MJmtzD0;UC&LE_Dulq_KwFE z<_qm0WZ7U3_|-7vRxFZoEP{KQpIefjM}nUhL97=+s0Tc1uv;IB#|VPQNJ#m-fh7eK zWkoyL+;1XN=jHJOK>Zgx%w@R%7QAtq5A=37X(;<#T-}UXoq%TjZJmKhp@BuNPglE3 zQ>RB$qh)QUX;HmxQGrKMfn{l@VN~|C8VcGxlSwuByi`{h)yPMTDt@fB0tyzCUWvG8_cr- zig~uJ)?z9ImE2j|*$fv`v6o|!Hsfd<6prQlIGBn_d$1ym_{nkza->icyPxPl-=`^_ zmP*G-pzr0x)#fU5v4Qyt&1%ZTg!RAQDJDsj8WYCSSfG58e@2LDxc%0=au-}PY@HVH z@4P&gbrzlm?akd+Q`&;}lNrw)#~tX#vD5h9p28O>m)F-IbYCNWpb#kI|sdM~EkV zBZX6l57Q?U*wIqDyN(*PwWv$Fyt-Z9yf2xK>yjGNH2pNDH_C zw%1?mDc9ogdjwOrPA!|K`sGUCfZ`4$`PN=}9xGy3|D3u%+jdoT^S?cFQop|RBSmK! zi%+wU-NEVl^e1tWpqYe{FTEW=xr^JNWd<-y!2N9E)=?5AbF0f{x)!~7Iw$aA+tcYh z#{k{&VoT9ZnJ;mIymW_Z+8WyZFz2&q89_7 zN|lwFPH=oq0|ZdXHjex^5jX`Z0S-hsAM5qXOu9in1HLgSroUN)edR@$4|xnsV}4R% z;*l=7z|A2Sp2f{MlkMjkh;Rw?recxH%hK4EFqqr^{w4ch-|z_~;5fU0IKM>ItB=7& zfchO;)Y3wutehS$w=*OJ8w1|SD^DS$s;ac@Z5yC(ucG29D~mEhoMeWYSBhIuZ1$!W zw#8%&0AQ6Cpyw6bV_)Nymx9|_K0WK+RR7iz7yqnB^lS5Yb3>c#9X<4Yl6}`gDk}=6 z{DYdkFk*eVOIWr|EAJj$8@ zy0cJq{g<3^K9Ft~cS>#W0)T&dmew%r#T1bGjZ%3lk`enB^vxIT=Tr(sZSfevDX8Ap zNHrgVdNezAuSdGcY|KXe)+JNSOqebpCu)b%^Cqzqa1YRLxX9Z+HK?-63BOMpYPaBWXV{Za-EY;h$fuNy`#@@WA9_pU8)3V2n6c&_^6c z*ftB(U?4wC+9l>ua5A7%&O*#R4$`)@GK2!K#`bH?_9qJ}Glmndb21Y8O3LO^*6vbx zim7z4sC1Gkeg38cu!O%DKYz@^81+*gjy zf`qq^PuuD?e}43o8FcQRTn!X0n5k;JxLmETuipfI`@Zglx!r67D=mSm;M6=kJTx@Y zu%Mvef*Y?NAEm{`G11W=z=iT}z{gF`HzDk9>84+eL6?=SZBt|8X1fdhtxznmO=N1i z>*IY3+GymayTj|n&PtX|T@Ae&F(S%rO8%K&pUBX+ApFgzj<*@<^lUY1=`MAKYKP`_ z=W+$#$#j&;jCskU?QZ28Edu-VX995IrBF0RM>>-%_6MFlb@?$>a;uj1v_x_{?B zH5~Ko=H|7%eY%-ur$bof;obG9p*bxtH!knAKNWizCIFlSACvQemFueaBJ4lYIbPa7 zjjg<0=6F0paQ1Uued3=KHduVh8U;Mg=3uD%(RtF~v#W`=>5q6Vl6lTk8JxveyN>6& zQC7Q9*Sr*UpDK8*rQW^EE^DsbZzExK6VkqW7F=%0AFZ%s8qWOmZP0pH@;-_>OT=cU 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%0DqiP7K> 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 ^mF4ovH`VEr;7vo7u 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[HST98w^UEKJ4`$Rb;Vsd>W?Ieg807VF)^&| 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

`v@_2d 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

vFe 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 (MuC*%Gb$ZdoCDqSr=o2Tb6e{{s8vtNM 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 Hng;zJ&;`mB literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/screenshot-mobile-en.png b/src/.vuepress/public/screenshot-mobile-en.png new file mode 100644 index 0000000000000000000000000000000000000000..7acd9f8b262c88aa59e932db08950d37e886c7cf GIT binary patch literal 95460 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 + + diff --git a/src/.vuepress/components/MkSchemaViewer.vue b/src/.vuepress/components/MkSchemaViewer.vue index 319aa078d9..42f5673164 100644 --- a/src/.vuepress/components/MkSchemaViewer.vue +++ b/src/.vuepress/components/MkSchemaViewer.vue @@ -7,18 +7,22 @@ diff --git a/src/.vuepress/components/MkSchemaViewerItem.vue b/src/.vuepress/components/MkSchemaViewerItem.vue index fe1fe79415..e59ec981c7 100644 --- a/src/.vuepress/components/MkSchemaViewerItem.vue +++ b/src/.vuepress/components/MkSchemaViewerItem.vue @@ -1,9 +1,15 @@ + + + + diff --git a/src/.vuepress/mitheme/src/client/components/DropdownTransition.vue b/src/.vuepress/mitheme/src/client/components/DropdownTransition.vue new file mode 100644 index 0000000000..2dedb26e48 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/DropdownTransition.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/Navbar.vue b/src/.vuepress/mitheme/src/client/components/Navbar.vue new file mode 100644 index 0000000000..4b4602a637 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/Navbar.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/NavbarBrand.vue b/src/.vuepress/mitheme/src/client/components/NavbarBrand.vue new file mode 100644 index 0000000000..4fd4953c93 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/NavbarBrand.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/NavbarDropdown.vue b/src/.vuepress/mitheme/src/client/components/NavbarDropdown.vue new file mode 100644 index 0000000000..af627a03d7 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/NavbarDropdown.vue @@ -0,0 +1,319 @@ + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/NavbarItems.vue b/src/.vuepress/mitheme/src/client/components/NavbarItems.vue new file mode 100644 index 0000000000..58c4307aae --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/NavbarItems.vue @@ -0,0 +1,159 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/Page.vue b/src/.vuepress/mitheme/src/client/components/Page.vue new file mode 100644 index 0000000000..9486db7469 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/Page.vue @@ -0,0 +1,134 @@ + + + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/PageMeta.vue b/src/.vuepress/mitheme/src/client/components/PageMeta.vue new file mode 100644 index 0000000000..e29321445c --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/PageMeta.vue @@ -0,0 +1,124 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/PageNav.vue b/src/.vuepress/mitheme/src/client/components/PageNav.vue new file mode 100644 index 0000000000..81a51dce0e --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/PageNav.vue @@ -0,0 +1,103 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/Sidebar.vue b/src/.vuepress/mitheme/src/client/components/Sidebar.vue new file mode 100644 index 0000000000..ee49f0b1e1 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/Sidebar.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/SidebarItem.vue b/src/.vuepress/mitheme/src/client/components/SidebarItem.vue new file mode 100644 index 0000000000..63d0903c70 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/SidebarItem.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/SidebarItems.vue b/src/.vuepress/mitheme/src/client/components/SidebarItems.vue new file mode 100644 index 0000000000..d1d1263855 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/SidebarItems.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/ToggleColorModeButton.vue b/src/.vuepress/mitheme/src/client/components/ToggleColorModeButton.vue new file mode 100644 index 0000000000..1e148cc609 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/ToggleColorModeButton.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/ToggleSidebarButton.vue b/src/.vuepress/mitheme/src/client/components/ToggleSidebarButton.vue new file mode 100644 index 0000000000..791e574569 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/ToggleSidebarButton.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/.vuepress/mitheme/src/client/components/global/Badge.vue b/src/.vuepress/mitheme/src/client/components/global/Badge.vue new file mode 100644 index 0000000000..ecc9d8ee4b --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/global/Badge.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/global/CodeGroup.ts b/src/.vuepress/mitheme/src/client/components/global/CodeGroup.ts new file mode 100644 index 0000000000..b302739785 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/global/CodeGroup.ts @@ -0,0 +1,135 @@ +import { defineComponent, h, onBeforeUpdate, ref } from 'vue' +import type { Component, VNode } from 'vue' + +export const CodeGroup = defineComponent({ + name: 'CodeGroup', + + setup(_, { slots }) { + // index of current active item + const activeIndex = ref(-1) + + // refs of the tab buttons + const tabRefs = ref([]) + + if (__VUEPRESS_DEV__) { + // after removing a code-group-item, we need to clear the ref + // of the removed item to avoid issues caused by HMR + onBeforeUpdate(() => { + tabRefs.value = [] + }) + } + + // activate next tab + const activateNext = (i = activeIndex.value): void => { + if (i < tabRefs.value.length - 1) { + activeIndex.value = i + 1 + } else { + activeIndex.value = 0 + } + tabRefs.value[activeIndex.value].focus() + } + + // activate previous tab + const activatePrev = (i = activeIndex.value): void => { + if (i > 0) { + activeIndex.value = i - 1 + } else { + activeIndex.value = tabRefs.value.length - 1 + } + tabRefs.value[activeIndex.value].focus() + } + + // handle keyboard event + const keyboardHandler = (event: KeyboardEvent, i: number): void => { + if (event.key === ' ' || event.key === 'Enter') { + event.preventDefault() + activeIndex.value = i + } else if (event.key === 'ArrowRight') { + event.preventDefault() + activateNext(i) + } else if (event.key === 'ArrowLeft') { + event.preventDefault() + activatePrev(i) + } + } + + return () => { + // NOTICE: here we put the `slots.default()` inside the render function to make + // the slots reactive, otherwise the slot content won't be changed once the + // `setup()` function of current component is called + + // get children code-group-item + const items = (slots.default?.() || []) + .filter((vnode) => (vnode.type as Component).name === 'CodeGroupItem') + .map((vnode) => { + if (vnode.props === null) { + vnode.props = {} + } + return vnode as VNode & { props: Exclude } + }) + + // do not render anything if there is no code-group-item + if (items.length === 0) { + return null + } + + if (activeIndex.value < 0 || activeIndex.value > items.length - 1) { + // if `activeIndex` is invalid + + // find the index of the code-group-item with `active` props + activeIndex.value = items.findIndex( + (vnode) => vnode.props.active === '' || vnode.props.active === true + ) + + // if there is no `active` props on code-group-item, set the first item active + if (activeIndex.value === -1) { + activeIndex.value = 0 + } + } else { + // set the active item + items.forEach((vnode, i) => { + vnode.props.active = i === activeIndex.value + }) + } + + return h('div', { class: 'code-group' }, [ + h( + 'div', + { class: 'code-group__nav' }, + h( + 'ul', + { class: 'code-group__ul' }, + items.map((vnode, i) => { + const isActive = i === activeIndex.value + + return h( + 'li', + { class: 'code-group__li' }, + h( + 'button', + { + ref: (element) => { + if (element) { + tabRefs.value[i] = element as HTMLButtonElement + } + }, + class: { + 'code-group__nav-tab': true, + 'code-group__nav-tab-active': isActive, + }, + ariaPressed: isActive, + ariaExpanded: isActive, + onClick: () => (activeIndex.value = i), + onKeydown: (e) => keyboardHandler(e, i), + }, + vnode.props.title + ) + ) + }) + ) + ), + items, + ]) + } + }, +}) diff --git a/src/.vuepress/mitheme/src/client/components/global/CodeGroupItem.vue b/src/.vuepress/mitheme/src/client/components/global/CodeGroupItem.vue new file mode 100644 index 0000000000..4515463dd5 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/global/CodeGroupItem.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/.vuepress/mitheme/src/client/components/global/index.ts b/src/.vuepress/mitheme/src/client/components/global/index.ts new file mode 100644 index 0000000000..f7067bfca4 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/components/global/index.ts @@ -0,0 +1,5 @@ +import Badge from './Badge.vue' +import { CodeGroup } from './CodeGroup' +import CodeGroupItem from './CodeGroupItem.vue' + +export { Badge, CodeGroup, CodeGroupItem } diff --git a/src/.vuepress/mitheme/src/client/composables/index.ts b/src/.vuepress/mitheme/src/client/composables/index.ts new file mode 100644 index 0000000000..ce3616fadd --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/index.ts @@ -0,0 +1,6 @@ +export * from './useDarkMode' +export * from './useNavLink' +export * from './useResolveRouteWithRedirect' +export * from './useScrollPromise' +export * from './useSidebarItems' +export * from './useThemeData' diff --git a/src/.vuepress/mitheme/src/client/composables/useDarkMode.ts b/src/.vuepress/mitheme/src/client/composables/useDarkMode.ts new file mode 100644 index 0000000000..870929cf77 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useDarkMode.ts @@ -0,0 +1,72 @@ +import { usePreferredDark, useStorage } from '@vueuse/core' +import { computed, inject, onMounted, onUnmounted, provide, watch } from 'vue' +import type { InjectionKey, WritableComputedRef } from 'vue' +import { useThemeLocaleData } from '.' + +export type DarkModeRef = WritableComputedRef + +export const darkModeSymbol: InjectionKey = Symbol( + __VUEPRESS_DEV__ ? 'darkMode' : '' +) + +/** + * Inject dark mode global computed + */ +export const useDarkMode = (): DarkModeRef => { + const isDarkMode = inject(darkModeSymbol) + if (!isDarkMode) { + throw new Error('useDarkMode() is called without provider.') + } + return isDarkMode +} + +/** + * Create dark mode ref and provide as global computed in setup + */ +export const setupDarkMode = (): void => { + const themeLocale = useThemeLocaleData() + const isDarkPreferred = usePreferredDark() + const darkStorage = useStorage( + 'vuepress-color-scheme', + themeLocale.value.colorMode + ) + + const isDarkMode = computed({ + get() { + // disable color mode switching + if (!themeLocale.value.colorModeSwitch) { + return themeLocale.value.colorMode === 'dark' + } + // auto detected from prefers-color-scheme + if (darkStorage.value === 'auto') { + return isDarkPreferred.value + } + // storage value + return darkStorage.value === 'dark' + }, + set(val) { + if (val === isDarkPreferred.value) { + darkStorage.value = 'auto' + } else { + darkStorage.value = val ? 'dark' : 'light' + } + }, + }) + provide(darkModeSymbol, isDarkMode) + + updateHtmlDarkClass(isDarkMode) +} + +export const updateHtmlDarkClass = (isDarkMode: DarkModeRef): void => { + const update = (value = isDarkMode.value): void => { + // set `class="dark"` on `` element + const htmlEl = window?.document.querySelector('html') + htmlEl?.classList.toggle('dark', value) + } + + onMounted(() => { + watch(isDarkMode, update, { immediate: true }) + }) + + onUnmounted(() => update()) +} diff --git a/src/.vuepress/mitheme/src/client/composables/useNavLink.ts b/src/.vuepress/mitheme/src/client/composables/useNavLink.ts new file mode 100644 index 0000000000..5272fd47e1 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useNavLink.ts @@ -0,0 +1,26 @@ +import type { NavLink } from '../../shared' +import { useResolveRouteWithRedirect } from './useResolveRouteWithRedirect' + +declare module 'vue-router' { + interface RouteMeta { + title?: string + } +} + +/** + * Resolve NavLink props from string + * + * @example + * - Input: '/README.md' + * - Output: { text: 'Home', link: '/' } + */ +export const useNavLink = (item: string): NavLink => { + // the route path of vue-router is url-encoded, and we expect users are using + // non-url-encoded string in theme config, so we need to url-encode it first to + // resolve the route correctly + const resolved = useResolveRouteWithRedirect(encodeURI(item)) + return { + text: resolved.meta.title || item, + link: resolved.name === '404' ? item : resolved.fullPath, + } +} diff --git a/src/.vuepress/mitheme/src/client/composables/useResolveRouteWithRedirect.ts b/src/.vuepress/mitheme/src/client/composables/useResolveRouteWithRedirect.ts new file mode 100644 index 0000000000..297b0e95a6 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useResolveRouteWithRedirect.ts @@ -0,0 +1,28 @@ +import { isFunction, isString } from '@vuepress/shared' +import { useRouter } from 'vue-router' +import type { Router } from 'vue-router' + +/** + * Resolve a route with redirection + */ +export const useResolveRouteWithRedirect = ( + ...args: Parameters +): ReturnType => { + const router = useRouter() + const route = router.resolve(...args) + const lastMatched = route.matched[route.matched.length - 1] + if (!lastMatched?.redirect) { + return route + } + const { redirect } = lastMatched + const resolvedRedirect = isFunction(redirect) ? redirect(route) : redirect + const resolvedRedirectObj = isString(resolvedRedirect) + ? { path: resolvedRedirect } + : resolvedRedirect + return useResolveRouteWithRedirect({ + hash: route.hash, + query: route.query, + params: route.params, + ...resolvedRedirectObj, + }) +} diff --git a/src/.vuepress/mitheme/src/client/composables/useScrollPromise.ts b/src/.vuepress/mitheme/src/client/composables/useScrollPromise.ts new file mode 100644 index 0000000000..0405f8c7dd --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useScrollPromise.ts @@ -0,0 +1,22 @@ +export interface ScrollPromise { + wait(): Promise | null + pending: () => void + resolve: () => void +} + +let promise: Promise | null = null +let promiseResolve: (() => void) | null = null + +const scrollPromise: ScrollPromise = { + wait: () => promise, + pending: () => { + promise = new Promise((resolve) => (promiseResolve = resolve)) + }, + resolve: () => { + promiseResolve?.() + promise = null + promiseResolve = null + }, +} + +export const useScrollPromise = (): ScrollPromise => scrollPromise diff --git a/src/.vuepress/mitheme/src/client/composables/useSidebarItems.ts b/src/.vuepress/mitheme/src/client/composables/useSidebarItems.ts new file mode 100644 index 0000000000..945a0a4fc8 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useSidebarItems.ts @@ -0,0 +1,178 @@ +import { usePageData, usePageFrontmatter } from '@vuepress/client' +import type { PageHeader } from '@vuepress/client' +import { + isArray, + isPlainObject, + isString, + resolveLocalePath, +} from '@vuepress/shared' +import { computed, inject, provide } from 'vue' +import type { ComputedRef, InjectionKey } from 'vue' +import { useRoute } from 'vue-router' +import type { + DefaultThemeData, + DefaultThemeNormalPageFrontmatter, + ResolvedSidebarItem, + SidebarConfigArray, + SidebarConfigObject, + SidebarItem, +} from '../../shared' +import { useNavLink, useThemeLocaleData } from '.' + +export type SidebarItemsRef = ComputedRef + +export const sidebarItemsSymbol: InjectionKey = + Symbol('sidebarItems') + +/** + * Inject sidebar items global computed + */ +export const useSidebarItems = (): SidebarItemsRef => { + const sidebarItems = inject(sidebarItemsSymbol) + if (!sidebarItems) { + throw new Error('useSidebarItems() is called without provider.') + } + return sidebarItems +} + +/** + * Create sidebar items ref and provide as global computed in setup + */ +export const setupSidebarItems = (): void => { + const themeLocale = useThemeLocaleData() + const frontmatter = usePageFrontmatter() + const sidebarItems = computed(() => + resolveSidebarItems(frontmatter.value, themeLocale.value) + ) + provide(sidebarItemsSymbol, sidebarItems) +} + +/** + * Resolve sidebar items global computed + * + * It should only be resolved and provided once + */ +export const resolveSidebarItems = ( + frontmatter: DefaultThemeNormalPageFrontmatter, + themeLocale: DefaultThemeData +): ResolvedSidebarItem[] => { + // get sidebar config from frontmatter > theme data + const sidebarConfig = frontmatter.sidebar ?? themeLocale.sidebar ?? 'auto' + const sidebarDepth = frontmatter.sidebarDepth ?? themeLocale.sidebarDepth ?? 2 + + // resolve sidebar items according to the config + if (frontmatter.home || sidebarConfig === false) { + return [] + } + + if (sidebarConfig === 'auto') { + return resolveAutoSidebarItems(sidebarDepth) + } + + if (isArray(sidebarConfig)) { + return resolveArraySidebarItems(sidebarConfig, sidebarDepth) + } + + if (isPlainObject(sidebarConfig)) { + return resolveMultiSidebarItems(sidebarConfig, sidebarDepth) + } + + return [] +} + +/** + * Util to transform page header to sidebar item + */ +export const headerToSidebarItem = ( + header: PageHeader, + sidebarDepth: number +): ResolvedSidebarItem => ({ + text: header.title, + link: `#${header.slug}`, + children: headersToSidebarItemChildren(header.children, sidebarDepth), +}) + +export const headersToSidebarItemChildren = ( + headers: PageHeader[], + sidebarDepth: number +): ResolvedSidebarItem[] => + sidebarDepth > 0 + ? headers.map((header) => headerToSidebarItem(header, sidebarDepth - 1)) + : [] + +/** + * Resolve sidebar items if the config is `auto` + */ +export const resolveAutoSidebarItems = ( + sidebarDepth: number +): ResolvedSidebarItem[] => { + const page = usePageData() + + return [ + { + text: page.value.title, + children: headersToSidebarItemChildren(page.value.headers, sidebarDepth), + }, + ] +} + +/** + * Resolve sidebar items if the config is an array + */ +export const resolveArraySidebarItems = ( + sidebarConfig: SidebarConfigArray, + sidebarDepth: number +): ResolvedSidebarItem[] => { + const route = useRoute() + const page = usePageData() + + const handleChildItem = ( + item: ResolvedSidebarItem | SidebarItem | string + ): ResolvedSidebarItem => { + let childItem: ResolvedSidebarItem + if (isString(item)) { + childItem = useNavLink(item) + } else { + childItem = item as ResolvedSidebarItem + } + + if (childItem.children) { + return { + ...childItem, + children: childItem.children.map((item) => handleChildItem(item)), + } + } + + // if the sidebar item is current page and children is not set + // use headers of current page as children + if (childItem.link === route.path) { + // skip h1 header + const headers = + page.value.headers[0]?.level === 1 + ? page.value.headers[0].children + : page.value.headers + return { + ...childItem, + children: headersToSidebarItemChildren(headers, sidebarDepth), + } + } + + return childItem + } + + return sidebarConfig.map((item) => handleChildItem(item)) +} + +/** + * Resolve sidebar items if the config is a key -> value (path-prefix -> array) object + */ +export const resolveMultiSidebarItems = ( + sidebarConfig: SidebarConfigObject, + sidebarDepth: number +): ResolvedSidebarItem[] => { + const route = useRoute() + const sidebarPath = resolveLocalePath(sidebarConfig, route.path) + const matchedSidebarConfig = sidebarConfig[sidebarPath] ?? [] + + return resolveArraySidebarItems(matchedSidebarConfig, sidebarDepth) +} diff --git a/src/.vuepress/mitheme/src/client/composables/useThemeData.ts b/src/.vuepress/mitheme/src/client/composables/useThemeData.ts new file mode 100644 index 0000000000..a5192b459f --- /dev/null +++ b/src/.vuepress/mitheme/src/client/composables/useThemeData.ts @@ -0,0 +1,14 @@ +import { + useThemeData as _useThemeData, + useThemeLocaleData as _useThemeLocaleData, +} from '@vuepress/plugin-theme-data/lib/client' +import type { + ThemeDataRef, + ThemeLocaleDataRef, +} from '@vuepress/plugin-theme-data/lib/client' +import type { DefaultThemeData } from '../../shared' + +export const useThemeData = (): ThemeDataRef => + _useThemeData() +export const useThemeLocaleData = (): ThemeLocaleDataRef => + _useThemeLocaleData() diff --git a/src/.vuepress/mitheme/src/client/config.ts b/src/.vuepress/mitheme/src/client/config.ts new file mode 100644 index 0000000000..71688a09a9 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/config.ts @@ -0,0 +1,49 @@ +import { defineClientConfig } from '@vuepress/client' +import { h } from 'vue' +import { Badge, CodeGroup, CodeGroupItem } from './components/global' +import { + setupDarkMode, + setupSidebarItems, + useScrollPromise, +} from './composables' + +import './styles/index.scss' + +export default defineClientConfig({ + enhance({ app, router }) { + app.component('Badge', Badge) + app.component('CodeGroup', CodeGroup) + app.component('CodeGroupItem', CodeGroupItem) + + // compat with @vuepress/plugin-external-link-icon + app.component('AutoLinkExternalIcon', () => { + const ExternalLinkIcon = app.component('ExternalLinkIcon') + if (ExternalLinkIcon) { + return h(ExternalLinkIcon) + } + return null + }) + + // compat with @vuepress/plugin-docsearch and @vuepress/plugin-search + app.component('NavbarSearch', () => { + const SearchComponent = + app.component('Docsearch') || app.component('SearchBox') + if (SearchComponent) { + return h(SearchComponent) + } + return null + }) + + // handle scrollBehavior with transition + const scrollBehavior = router.options.scrollBehavior! + router.options.scrollBehavior = async (...args) => { + await useScrollPromise().wait() + return scrollBehavior(...args) + } + }, + + setup() { + setupDarkMode() + setupSidebarItems() + }, +}) diff --git a/src/.vuepress/mitheme/src/client/index.ts b/src/.vuepress/mitheme/src/client/index.ts new file mode 100644 index 0000000000..fc3b6ae88c --- /dev/null +++ b/src/.vuepress/mitheme/src/client/index.ts @@ -0,0 +1,51 @@ +import type { + DefaultThemeData, + DefaultThemeHomePageFrontmatter, + DefaultThemeLocaleData, + DefaultThemeLocaleOptions, + DefaultThemeNormalPageFrontmatter, + DefaultThemePageData, + DefaultThemePageFrontmatter, + DefaultThemePluginsOptions, + NavbarConfig, + NavbarGroup, + NavbarItem, + NavGroup, + NavItem, + NavLink, + ResolvedNavbarItem, + ResolvedSidebarItem, + SidebarConfig, + SidebarConfigArray, + SidebarConfigObject, + SidebarGroup, + SidebarGroupCollapsible, + SidebarItem, +} from '../shared' + +export type { + DefaultThemeData, + DefaultThemeHomePageFrontmatter, + DefaultThemeLocaleData, + DefaultThemeLocaleOptions, + DefaultThemeNormalPageFrontmatter, + DefaultThemePageData, + DefaultThemePageFrontmatter, + DefaultThemePluginsOptions, + NavbarConfig, + NavbarGroup, + NavbarItem, + NavGroup, + NavItem, + NavLink, + ResolvedNavbarItem, + ResolvedSidebarItem, + SidebarConfig, + SidebarConfigArray, + SidebarConfigObject, + SidebarGroup, + SidebarGroupCollapsible, + SidebarItem, +} +export * from './composables' +export * from './utils' diff --git a/src/.vuepress/mitheme/src/client/layouts/404.vue b/src/.vuepress/mitheme/src/client/layouts/404.vue new file mode 100644 index 0000000000..67477986e9 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/layouts/404.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/.vuepress/layouts/Landing.vue b/src/.vuepress/mitheme/src/client/layouts/Landing.vue similarity index 99% rename from src/.vuepress/layouts/Landing.vue rename to src/.vuepress/mitheme/src/client/layouts/Landing.vue index 4d8be86e42..93731173bf 100644 --- a/src/.vuepress/layouts/Landing.vue +++ b/src/.vuepress/mitheme/src/client/layouts/Landing.vue @@ -6,6 +6,8 @@

+ +
@@ -196,6 +198,7 @@ import { ClientOnly, usePageFrontmatter, } from '@vuepress/client'; +import Navbar from '@theme/Navbar.vue' const frontmatter = usePageFrontmatter(); @@ -303,7 +306,6 @@ html { #root { position: relative; - font-family: "M PLUS Rounded 1c", Roboto, HelveticaNeue, Arial, sans-serif; line-height: 1.5; background: #f9f9f9; @@ -378,6 +380,7 @@ html { } > .tagline { + font-family: "M PLUS Rounded 1c", Roboto, HelveticaNeue, Arial, sans-serif; font-size: 4em; font-weight: bold; margin-bottom: 40px; @@ -701,7 +704,7 @@ html { > .container { position: sticky; - top: 50px; + top: calc(50px + var(--globalHeaderHeight, 0px)); > .title { font-size: 2.5em; diff --git a/src/.vuepress/mitheme/src/client/layouts/Layout.vue b/src/.vuepress/mitheme/src/client/layouts/Layout.vue new file mode 100644 index 0000000000..0ce54fc79d --- /dev/null +++ b/src/.vuepress/mitheme/src/client/layouts/Layout.vue @@ -0,0 +1,319 @@ + + + + + + + diff --git a/src/.vuepress/mitheme/src/client/shim.d.ts b/src/.vuepress/mitheme/src/client/shim.d.ts new file mode 100644 index 0000000000..bf554924f3 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/shim.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import type { ComponentOptions } from 'vue' + const comp: ComponentOptions + export default comp +} diff --git a/src/.vuepress/mitheme/src/client/styles/_mixins.scss b/src/.vuepress/mitheme/src/client/styles/_mixins.scss new file mode 100644 index 0000000000..7d80c788d8 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/styles/_mixins.scss @@ -0,0 +1,20 @@ +@import '_variables'; + +@mixin content_wrapper { + max-width: var(--content-width); + margin: 0 auto; + padding: 2rem 2.5rem; + + @media (max-width: $MQNarrow) { + padding: 2rem; + } + + @media (max-width: $MQMobileNarrow) { + padding: 1.5rem; + } +} + +@mixin dropdown_wrapper { + transition: height 0.1s ease-out; + overflow: hidden; +} diff --git a/src/.vuepress/mitheme/src/client/styles/_variables.scss b/src/.vuepress/mitheme/src/client/styles/_variables.scss new file mode 100644 index 0000000000..e335053251 --- /dev/null +++ b/src/.vuepress/mitheme/src/client/styles/_variables.scss @@ -0,0 +1,11 @@ +@import '@vuepress/plugin-palette/palette'; + +// responsive breakpoints +$MQNarrow: 959px !default; +$MQMobile: 719px !default; +$MQMobileNarrow: 419px !default; + +// code languages +$codeLang: 'c' 'cpp' 'cs' 'css' 'dart' 'docker' 'fs' 'go' 'html' 'java' 'js' + 'json' 'kt' 'less' 'makefile' 'md' 'php' 'py' 'rb' 'rs' 'sass' 'scss' 'sh' + 'styl' 'ts' 'toml' 'vue' 'yml' !default; diff --git a/src/.vuepress/mitheme/src/client/styles/code-group.scss b/src/.vuepress/mitheme/src/client/styles/code-group.scss new file mode 100644 index 0000000000..02d0b3d74e --- /dev/null +++ b/src/.vuepress/mitheme/src/client/styles/code-group.scss @@ -0,0 +1,69 @@ +@import '_variables'; + +/** + * code-group + */ +.code-group__nav { + margin-top: 0.85rem; + // 2 * margin + border-radius of
 tag
+  margin-bottom: calc(-1.7rem - 6px);
+  padding-bottom: calc(1.7rem - 6px);
+  padding-left: 10px;
+  padding-top: 10px;
+  border-top-left-radius: 6px;
+  border-top-right-radius: 6px;
+  background-color: var(--code-bg-color);
+}
+
+.code-group__ul {
+  margin: auto 0;
+  padding-left: 0;
+  display: inline-flex;
+  list-style: none;
+}
+
+.code-group__nav-tab {
+  border: 0;
+  padding: 5px;
+  cursor: pointer;
+  background-color: transparent;
+  font-size: 0.85em;
+  line-height: 1.4;
+  color: rgba(255, 255, 255, 0.9);
+  font-weight: 600;
+}
+
+.code-group__nav-tab:focus {
+  outline: none;
+}
+
+.code-group__nav-tab:focus-visible {
+  outline: 1px solid rgba(255, 255, 255, 0.9);
+}
+
+.code-group__nav-tab-active {
+  border-bottom: var(--c-brand) 1px solid;
+}
+
+@media (max-width: $MQMobileNarrow) {
+  .code-group__nav {
+    margin-left: -1.5rem;
+    margin-right: -1.5rem;
+    border-radius: 0;
+  }
+}
+
+/**
+ * code-group-item
+ */
+.code-group-item {
+  display: none;
+}
+
+.code-group-item__active {
+  display: block;
+}
+
+.code-group-item > pre {
+  background-color: orange;
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/code.scss b/src/.vuepress/mitheme/src/client/styles/code.scss
new file mode 100644
index 0000000000..1fc14d44e3
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/code.scss
@@ -0,0 +1,262 @@
+@import '_variables';
+
+// ===============================
+// Forked and modified from prismjs/themes/prism-tomorrow.css
+
+code[class*='language-'],
+pre[class*='language-'] {
+  color: #ccc;
+  background: none;
+  font-family: var(--font-family-code);
+  font-size: 1em;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+/* Code blocks */
+pre[class*='language-'] {
+  padding: 1em;
+  margin: 0.5em 0;
+  overflow: auto;
+}
+
+:not(pre) > code[class*='language-'],
+pre[class*='language-'] {
+  background: #2d2d2d;
+}
+
+/* Inline code */
+:not(pre) > code[class*='language-'] {
+  padding: 0.1em;
+  border-radius: 0.3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.block-comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: #999;
+}
+
+.token.punctuation {
+  color: #ccc;
+}
+
+.token.tag,
+.token.attr-name,
+.token.namespace,
+.token.deleted {
+  color: #ec5975;
+}
+
+.token.function-name {
+  color: #6196cc;
+}
+
+.token.boolean,
+.token.number,
+.token.function {
+  color: #f08d49;
+}
+
+.token.property,
+.token.class-name,
+.token.constant,
+.token.symbol {
+  color: #f8c555;
+}
+
+.token.selector,
+.token.important,
+.token.atrule,
+.token.keyword,
+.token.builtin {
+  color: #cc99cd;
+}
+
+.token.string,
+.token.char,
+.token.attr-value,
+.token.regex,
+.token.variable {
+  color: #7ec699;
+}
+
+.token.operator,
+.token.entity,
+.token.url {
+  color: #67cdcc;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}
+
+.token.inserted {
+  color: #3eaf7c;
+}
+
+// ===============================
+
+.theme-default-content {
+  pre,
+  pre[class*='language-'] {
+    line-height: 1.4;
+    padding: 1.3rem 1.5rem;
+    margin: 0.85rem 0;
+    border-radius: 6px;
+    overflow: auto;
+
+    code {
+      color: #fff;
+      padding: 0;
+      background-color: transparent;
+      border-radius: 0;
+      overflow-wrap: unset;
+      -webkit-font-smoothing: auto;
+      -moz-osx-font-smoothing: auto;
+    }
+  }
+
+  .line-number {
+    font-family: var(--font-family-code);
+  }
+}
+
+div[class*='language-'] {
+  position: relative;
+  background-color: var(--code-bg-color);
+  border-radius: 6px;
+
+  &::before {
+    position: absolute;
+    z-index: 3;
+    top: 0.8em;
+    right: 1em;
+    font-size: 0.75rem;
+    color: var(--code-ln-color);
+  }
+
+  pre,
+  pre[class*='language-'] {
+    // force override the background color to be compatible with shiki
+    background: transparent !important;
+    position: relative;
+    z-index: 1;
+  }
+
+  .highlight-lines {
+    user-select: none;
+    padding-top: 1.3rem;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    line-height: 1.4;
+
+    .highlight-line {
+      background-color: var(--code-hl-bg-color);
+    }
+  }
+
+  &:not(.line-numbers-mode) {
+    .line-numbers {
+      display: none;
+    }
+  }
+
+  &.line-numbers-mode {
+    .highlight-lines .highlight-line {
+      position: relative;
+
+      &::before {
+        content: ' ';
+        position: absolute;
+        z-index: 2;
+        left: 0;
+        top: 0;
+        display: block;
+        width: var(--code-ln-wrapper-width);
+        height: 100%;
+      }
+    }
+
+    pre {
+      margin-left: var(--code-ln-wrapper-width);
+      padding-left: 1rem;
+      vertical-align: middle;
+    }
+
+    .line-numbers {
+      position: absolute;
+      top: 0;
+      width: var(--code-ln-wrapper-width);
+      text-align: center;
+      color: var(--code-ln-color);
+      padding-top: 1.25rem;
+      line-height: 1.4;
+      counter-reset: line-number;
+
+      .line-number {
+        position: relative;
+        z-index: 3;
+        user-select: none;
+        height: 1.4em;
+
+        &::before {
+          counter-increment: line-number;
+          content: counter(line-number);
+          font-size: 0.85em;
+        }
+      }
+    }
+
+    &::after {
+      content: '';
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: var(--code-ln-wrapper-width);
+      height: 100%;
+      border-radius: 6px 0 0 6px;
+      border-right: 1px solid var(--code-hl-bg-color);
+    }
+  }
+}
+
+@each $lang in $codeLang {
+  div[class*='language-'].ext-#{$lang} {
+    &:before {
+      content: '' + $lang;
+    }
+  }
+}
+
+// narrow mobile
+@media (max-width: $MQMobileNarrow) {
+  .theme-default-content {
+    div[class*='language-'] {
+      margin: 0.85rem -1.5rem;
+      border-radius: 0;
+    }
+  }
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/custom-container.scss b/src/.vuepress/mitheme/src/client/styles/custom-container.scss
new file mode 100644
index 0000000000..c26d935754
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/custom-container.scss
@@ -0,0 +1,126 @@
+.custom-container {
+  transition: color var(--t-color), border-color var(--t-color),
+    background-color var(--t-color);
+
+	position: relative;
+
+  .custom-container-title {
+    font-weight: 600;
+    &:not(:only-child) {
+      margin-bottom: -0.4rem;
+    }
+  }
+
+  &.tip,
+  &.warning,
+  &.danger {
+    padding: 0.1rem 1.5rem;
+    border-left-width: 0.5rem;
+    border-left-style: solid;
+    margin: 1rem 0;
+  }
+
+  &.tip {
+    border-color: var(--c-tip);
+    background-color: var(--c-tip-bg);
+    color: var(--c-tip-text);
+
+    .custom-container-title {
+      color: var(--c-tip-title);
+    }
+
+    a {
+      color: var(--c-tip-text-accent);
+    }
+  }
+
+  &.warning {
+    border-color: var(--c-warning);
+    background-color: var(--c-warning-bg);
+    color: var(--c-warning-text);
+
+    .custom-container-title {
+      color: var(--c-warning-title);
+    }
+
+    a {
+      color: var(--c-warning-text-accent);
+    }
+  }
+
+  &.danger {
+    border-color: var(--c-danger);
+    background-color: var(--c-danger-bg);
+    color: var(--c-danger-text);
+
+    .custom-container-title {
+      color: var(--c-danger-title);
+    }
+
+    a {
+      color: var(--c-danger-text-accent);
+    }
+  }
+
+  &.details {
+    display: block;
+    position: relative;
+    border-radius: 2px;
+    margin: 1.6em 0;
+    padding: 1.6em;
+    background-color: var(--c-details-bg);
+
+    h4 {
+      margin-top: 0;
+    }
+
+    figure,
+    p {
+      &:last-child {
+        margin-bottom: 0;
+        padding-bottom: 0;
+      }
+    }
+
+    summary {
+      outline: none;
+      cursor: pointer;
+    }
+  }
+
+	> i {
+		position: absolute;
+		top: 1rem;
+		left: -19px;
+		width: 30px;
+		height: 30px;
+		line-height: 30px;
+		border-radius: 100%;
+		text-align: center;
+		font-size: 14px;
+		color: var(--c-bg);
+	}
+
+	> p {
+		// vuepressใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใƒ†ใƒผใƒžใฎใƒŸใ‚นใงใ€detailsๅ†…ใซๅ…ฅใ‚ŒใŸcustom-containerใฎใƒžใƒผใ‚ธใƒณใŒ็„กใใชใฃใฆใ—ใพใ†ใŸใ‚
+		margin-block-end: 1em !important;
+	}
+
+	&.tip {
+		> i {
+			background: var(--c-tip);
+		}
+	}
+
+	&.warning {
+		> i {
+			background: var(--c-warning);
+		}
+	}
+
+	&.danger {
+		> i {
+			background: var(--c-danger);
+		}
+	}
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/index.scss b/src/.vuepress/mitheme/src/client/styles/index.scss
new file mode 100644
index 0000000000..5f23f6dd0e
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/index.scss
@@ -0,0 +1,106 @@
+@use 'vars';
+@use 'vars-dark';
+@use 'normalize';
+
+@use 'code';
+@use 'code-group';
+@use 'custom-container';
+@use 'transitions';
+
+@use '@vuepress/plugin-palette/style';
+
+html {
+	touch-action: manipulation;
+	accent-color: var(--c-brand);
+	text-size-adjust: 100%;
+	tab-size: 2;
+
+	/*
+	&, * {
+		scrollbar-color: var(--scrollbarHandle) inherit;
+		scrollbar-width: thin;
+
+		&::-webkit-scrollbar {
+			width: 6px;
+			height: 6px;
+		}
+
+		&::-webkit-scrollbar-track {
+			background: inherit;
+		}
+
+		&::-webkit-scrollbar-thumb {
+			background: var(--scrollbarHandle);
+
+			&:hover {
+				background: var(--scrollbarHandleHover);
+			}
+
+			&:active {
+				background: var(--accent);
+			}
+		}
+	}
+	*/
+}
+
+.mk-page {
+	display: block;
+	margin: 1em 0;
+	padding: 1em;
+	border: solid 1px var(--c-border);
+	border-radius: 8px;
+	color: var(--c-text);
+	font-weight: normal;
+
+	&:hover {
+		border-color: var(--c-brand);
+		text-decoration: none !important;
+	}
+
+	> header {
+		font-weight: bold;
+	}
+
+	> footer {
+		opacity: 0.7;
+	}
+}
+
+.arrow {
+  display: inline-block;
+  width: 0;
+  height: 0;
+
+  &.up {
+    border: {
+      left: 4px solid transparent;
+      right: 4px solid transparent;
+      bottom: 6px solid var(--c-bg-arrow);
+    }
+  }
+
+  &.down {
+    border: {
+      left: 4px solid transparent;
+      right: 4px solid transparent;
+      top: 6px solid var(--c-bg-arrow);
+    }
+  }
+
+  &.right {
+    border: {
+      top: 4px solid transparent;
+      bottom: 4px solid transparent;
+      left: 6px solid var(--c-bg-arrow);
+    }
+  }
+
+  &.left {
+    border: {
+      top: 4px solid transparent;
+      bottom: 4px solid transparent;
+      right: 6px solid var(--c-bg-arrow);
+    }
+  }
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/normalize.scss b/src/.vuepress/mitheme/src/client/styles/normalize.scss
new file mode 100644
index 0000000000..0a4435357c
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/normalize.scss
@@ -0,0 +1,177 @@
+html,
+body {
+  padding: 0;
+  margin: 0;
+  background-color: var(--c-bg);
+  transition: background-color var(--t-color);
+}
+
+html.dark {
+  color-scheme: dark;
+}
+
+html {
+  font-size: 16px;
+}
+
+body {
+  font-family: var(--font-family);
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  font-size: 1rem;
+  color: var(--c-text);
+}
+
+a {
+  font-weight: 500;
+  color: var(--c-text-accent);
+  text-decoration: none;
+  overflow-wrap: break-word;
+}
+
+p a code {
+  font-weight: 400;
+  color: var(--c-text-accent);
+}
+
+kbd {
+  font-family: var(--font-family-code);
+  color: var(--c-text);
+  background: var(--c-bg-lighter);
+  border: solid 0.15rem var(--c-border-dark);
+  border-bottom: solid 0.25rem var(--c-border-dark);
+  border-radius: 0.15rem;
+  padding: 0 0.15em;
+}
+
+code {
+  font-family: var(--font-family-code);
+  color: var(--c-text-lighter);
+  padding: 0.25rem 0.5rem;
+  margin: 0;
+  font-size: 0.85em;
+  background-color: var(--c-bg-lighter);
+  border-radius: 3px;
+  overflow-wrap: break-word;
+  transition: background-color var(--t-color);
+}
+
+blockquote {
+  font-size: 1rem;
+  color: var(--c-text-quote);
+  border-left: 0.2rem solid var(--c-border-dark);
+  margin: 1rem 0;
+  padding: 0.25rem 0 0.25rem 1rem;
+
+  & > p {
+    margin: 0;
+  }
+}
+
+ul,
+ol {
+  padding-left: 1.2em;
+}
+
+strong {
+  font-weight: 600;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-weight: 600;
+  line-height: 1.25;
+
+  &:focus-visible {
+    outline: none;
+  }
+
+  &:hover .header-anchor {
+    opacity: 1;
+  }
+}
+
+h1 {
+  font-size: 2.2rem;
+}
+
+h2 {
+  font-size: 1.65rem;
+  padding-bottom: 0.3rem;
+  border-bottom: 1px solid var(--c-border);
+  transition: border-color var(--t-color);
+}
+
+h3 {
+  font-size: 1.35rem;
+}
+
+h4 {
+  font-size: 1.15rem;
+}
+
+h5 {
+  font-size: 1.05rem;
+}
+
+h6 {
+  font-size: 1rem;
+}
+
+a.header-anchor {
+  font-size: 0.85em;
+  float: left;
+  margin-left: -0.87em;
+  padding-right: 0.23em;
+  margin-top: 0.125em;
+  opacity: 0;
+  user-select: none;
+
+  &:hover {
+    text-decoration: none;
+  }
+
+  &:focus-visible {
+    opacity: 1;
+  }
+}
+
+p,
+ul,
+ol {
+  line-height: 1.7;
+}
+
+hr {
+  border: 0;
+  border-top: 1px solid var(--c-border);
+}
+
+table {
+  border-collapse: collapse;
+  margin: 1rem 0;
+  display: block;
+  overflow-x: auto;
+  transition: border-color var(--t-color);
+}
+
+tr {
+  border-top: 1px solid var(--c-border-dark);
+  transition: border-color var(--t-color);
+
+  &:nth-child(2n) {
+    background-color: var(--c-bg-light);
+    transition: background-color var(--t-color);
+  }
+}
+
+th,
+td {
+  padding: 0.6em 1em;
+  border: 1px solid var(--c-border-dark);
+  transition: border-color var(--t-color);
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/transitions.scss b/src/.vuepress/mitheme/src/client/styles/transitions.scss
new file mode 100644
index 0000000000..608a766d97
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/transitions.scss
@@ -0,0 +1,22 @@
+/**
+ * dropdown
+ */
+.dropdown-enter-from,
+.dropdown-leave-to {
+  height: 0 !important;
+}
+
+/**
+ * fade-slide-y
+ */
+.fade-slide-y-enter-active {
+  transition: all 0.2s ease;
+}
+.fade-slide-y-leave-active {
+  transition: all 0.2s cubic-bezier(1, 0.5, 0.8, 1);
+}
+.fade-slide-y-enter-from,
+.fade-slide-y-leave-to {
+  transform: translateY(10px);
+  opacity: 0;
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/vars-dark.scss b/src/.vuepress/mitheme/src/client/styles/vars-dark.scss
new file mode 100644
index 0000000000..58e02fc5cb
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/vars-dark.scss
@@ -0,0 +1,46 @@
+html.dark {
+  // brand colors
+  --c-brand: #3aa675;
+  --c-brand-light: #349469;
+
+  // background colors
+  --c-bg: #22272e;
+  --c-bg-light: #2b313a;
+  --c-bg-lighter: #262c34;
+
+  // text colors
+  --c-text: #adbac7;
+  --c-text-light: #96a7b7;
+  --c-text-lighter: #8b9eb0;
+  --c-text-lightest: #8094a8;
+
+  // border colors
+  --c-border: #3e4c5a;
+  --c-border-dark: #34404c;
+
+  // custom container colors
+  --c-tip: #318a62;
+  --c-warning: #ceab00;
+  --c-warning-bg: #7e755b;
+  --c-warning-title: #ceac03;
+  --c-warning-text: #362e00;
+  --c-danger: #940000;
+  --c-danger-bg: #806161;
+  --c-danger-title: #610000;
+  --c-danger-text: #3a0000;
+  --c-details-bg: #323843;
+
+  // code blocks vars
+  --code-hl-bg-color: #363b46;
+}
+
+// plugin-docsearch
+html.dark .DocSearch {
+  --docsearch-logo-color: var(--c-text);
+  --docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
+  --docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d,
+    0 2px 2px 0 rgba(3, 4, 9, 0.3);
+  --docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);
+  --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5),
+    0 -4px 8px 0 rgba(0, 0, 0, 0.2);
+}
diff --git a/src/.vuepress/mitheme/src/client/styles/vars.scss b/src/.vuepress/mitheme/src/client/styles/vars.scss
new file mode 100644
index 0000000000..0d48ffc016
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/styles/vars.scss
@@ -0,0 +1,132 @@
+:root {
+  // brand colors
+  --c-brand: #3eaf7c;
+  --c-brand-light: #4abf8a;
+
+  // background colors
+  --c-bg: #ffffff;
+  --c-bg-light: #f3f4f5;
+  --c-bg-lighter: #eeeeee;
+  --c-bg-navbar: var(--c-bg);
+  --c-bg-sidebar: var(--c-bg);
+  --c-bg-arrow: #cccccc;
+
+  // text colors
+  --c-text: #3b4146;
+  --c-text-accent: var(--c-brand);
+  --c-text-light: #3a5169;
+  --c-text-lighter: #4e6e8e;
+  --c-text-lightest: #6a8bad;
+  --c-text-quote: #999999;
+
+  // border colors
+  --c-border: #eaecef;
+  --c-border-dark: #dfe2e5;
+
+  // custom container colors
+  --c-tip: #42b983;
+  --c-tip-bg: var(--c-bg-light);
+  --c-tip-title: var(--c-text);
+  --c-tip-text: var(--c-text);
+  --c-tip-text-accent: var(--c-text-accent);
+  --c-warning: #e7c000;
+  --c-warning-bg: #fffae3;
+  --c-warning-title: #ad9000;
+  --c-warning-text: #746000;
+  --c-warning-text-accent: var(--c-text);
+  --c-danger: #cc0000;
+  --c-danger-bg: #ffe0e0;
+  --c-danger-title: #990000;
+  --c-danger-text: #660000;
+  --c-danger-text-accent: var(--c-text);
+  --c-details-bg: #eeeeee;
+
+  // badge component colors
+  --c-badge-tip: var(--c-tip);
+  --c-badge-warning: var(--c-warning);
+  --c-badge-danger: var(--c-danger);
+
+  // transition vars
+  --t-color: 0.3s ease;
+  --t-transform: 0.3s ease;
+
+  // code blocks vars
+  --code-bg-color: #282c34;
+  --code-hl-bg-color: rgba(0, 0, 0, 0.66);
+  --code-ln-color: #9e9e9e;
+  --code-ln-wrapper-width: 3.5rem;
+
+  // font vars
+  --font-family: 'Kosugi Maru', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
+    Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
+  --font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+
+  // layout vars
+  --navbar-padding-v: 0.7rem;
+  --navbar-padding-h: 1.5rem;
+  --sidebar-width: 20rem;
+  --sidebar-width-mobile: calc(var(--sidebar-width) * 0.82);
+  --content-width: 740px;
+  --homepage-width: 960px;
+}
+
+// plugin-back-to-top
+.back-to-top {
+  --back-to-top-color: var(--c-brand);
+  --back-to-top-color-hover: var(--c-brand-light);
+}
+
+// plugin-docsearch
+.DocSearch {
+  --docsearch-primary-color: var(--c-brand);
+  --docsearch-text-color: var(--c-text);
+  --docsearch-highlight-color: var(--c-brand);
+  --docsearch-muted-color: var(--c-text-quote);
+  --docsearch-container-background: rgba(9, 10, 17, 0.8);
+  --docsearch-modal-background: var(--c-bg-light);
+  --docsearch-searchbox-background: var(--c-bg-lighter);
+  --docsearch-searchbox-focus-background: var(--c-bg);
+  --docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);
+  --docsearch-hit-color: var(--c-text-light);
+  --docsearch-hit-active-color: var(--c-bg);
+  --docsearch-hit-background: var(--c-bg);
+  --docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);
+  --docsearch-footer-background: var(--c-bg);
+}
+
+// plugin-external-link-icon
+.external-link-icon {
+  --external-link-icon-color: var(--c-text-quote);
+}
+
+// plugin-medium-zoom
+.medium-zoom-overlay {
+  --medium-zoom-bg-color: var(--c-bg);
+}
+
+// plugin-nprogress
+#nprogress {
+  --nprogress-color: var(--c-brand);
+}
+
+// plugin-pwa-popup
+.pwa-popup {
+  --pwa-popup-text-color: var(--c-text);
+  --pwa-popup-bg-color: var(--c-bg);
+  --pwa-popup-border-color: var(--c-brand);
+  --pwa-popup-shadow: 0 4px 16px var(--c-brand);
+  --pwa-popup-btn-text-color: var(--c-bg);
+  --pwa-popup-btn-bg-color: var(--c-brand);
+  --pwa-popup-btn-hover-bg-color: var(--c-brand-light);
+}
+
+// plugin-search
+.search-box {
+  --search-bg-color: var(--c-bg);
+  --search-accent-color: var(--c-brand);
+  --search-text-color: var(--c-text);
+  --search-border-color: var(--c-border);
+
+  --search-item-text-color: var(--c-text-lighter);
+  --search-item-focus-bg-color: var(--c-bg-light);
+}
diff --git a/src/.vuepress/mitheme/src/client/utils/index.ts b/src/.vuepress/mitheme/src/client/utils/index.ts
new file mode 100644
index 0000000000..6451d5bc7f
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/utils/index.ts
@@ -0,0 +1,3 @@
+export * from './isActiveSidebarItem'
+export * from './resolveEditLink'
+export * from './resolveRepoType'
diff --git a/src/.vuepress/mitheme/src/client/utils/isActiveSidebarItem.ts b/src/.vuepress/mitheme/src/client/utils/isActiveSidebarItem.ts
new file mode 100644
index 0000000000..6c38c9dee3
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/utils/isActiveSidebarItem.ts
@@ -0,0 +1,34 @@
+import type { RouteLocationNormalizedLoaded } from 'vue-router'
+import type { ResolvedSidebarItem } from '../../shared'
+
+const normalizePath = (path: string): string =>
+  decodeURI(path)
+    .replace(/#.*$/, '')
+    .replace(/(index)?\.(md|html)$/, '')
+
+const isActiveLink = (
+  link: string,
+  route: RouteLocationNormalizedLoaded
+): boolean => {
+  if (route.hash === link) {
+    return true
+  }
+  const currentPath = normalizePath(route.path)
+  const targetPath = normalizePath(link)
+  return currentPath === targetPath
+}
+
+export const isActiveSidebarItem = (
+  item: ResolvedSidebarItem,
+  route: RouteLocationNormalizedLoaded
+): boolean => {
+  if (item.link && isActiveLink(item.link, route)) {
+    return true
+  }
+
+  if (item.children) {
+    return item.children.some((child) => isActiveSidebarItem(child, route))
+  }
+
+  return false
+}
diff --git a/src/.vuepress/mitheme/src/client/utils/resolveEditLink.ts b/src/.vuepress/mitheme/src/client/utils/resolveEditLink.ts
new file mode 100644
index 0000000000..13173a5ef0
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/utils/resolveEditLink.ts
@@ -0,0 +1,64 @@
+import {
+  isLinkHttp,
+  removeEndingSlash,
+  removeLeadingSlash,
+} from '@vuepress/shared'
+import { resolveRepoType } from './resolveRepoType'
+import type { RepoType } from './resolveRepoType'
+
+export const editLinkPatterns: Record, string> = {
+  GitHub: ':repo/edit/:branch/:path',
+  GitLab: ':repo/-/edit/:branch/:path',
+  Gitee: ':repo/edit/:branch/:path',
+  Bitbucket:
+    ':repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default',
+}
+
+const resolveEditLinkPatterns = ({
+  docsRepo,
+  editLinkPattern,
+}: {
+  docsRepo: string
+  editLinkPattern?: string
+}): string | null => {
+  if (editLinkPattern) {
+    return editLinkPattern
+  }
+
+  const repoType = resolveRepoType(docsRepo)
+  if (repoType !== null) {
+    return editLinkPatterns[repoType]
+  }
+
+  return null
+}
+
+export const resolveEditLink = ({
+  docsRepo,
+  docsBranch,
+  docsDir,
+  filePathRelative,
+  editLinkPattern,
+}: {
+  docsRepo: string
+  docsBranch: string
+  docsDir: string
+  filePathRelative: string | null
+  editLinkPattern?: string
+}): string | null => {
+  if (!filePathRelative) return null
+
+  const pattern = resolveEditLinkPatterns({ docsRepo, editLinkPattern })
+  if (!pattern) return null
+
+  return pattern
+    .replace(
+      /:repo/,
+      isLinkHttp(docsRepo) ? docsRepo : `https://github.com/${docsRepo}`
+    )
+    .replace(/:branch/, docsBranch)
+    .replace(
+      /:path/,
+      removeLeadingSlash(`${removeEndingSlash(docsDir)}/${filePathRelative}`)
+    )
+}
diff --git a/src/.vuepress/mitheme/src/client/utils/resolveRepoType.ts b/src/.vuepress/mitheme/src/client/utils/resolveRepoType.ts
new file mode 100644
index 0000000000..c63b5d22a9
--- /dev/null
+++ b/src/.vuepress/mitheme/src/client/utils/resolveRepoType.ts
@@ -0,0 +1,11 @@
+import { isLinkHttp } from '@vuepress/shared'
+
+export type RepoType = 'GitHub' | 'GitLab' | 'Gitee' | 'Bitbucket' | null
+
+export const resolveRepoType = (repo: string): RepoType => {
+  if (!isLinkHttp(repo) || /github\.com/.test(repo)) return 'GitHub'
+  if (/bitbucket\.org/.test(repo)) return 'Bitbucket'
+  if (/gitlab\.com/.test(repo)) return 'GitLab'
+  if (/gitee\.com/.test(repo)) return 'Gitee'
+  return null
+}
diff --git a/src/.vuepress/mitheme/src/node/defaultTheme.ts b/src/.vuepress/mitheme/src/node/defaultTheme.ts
new file mode 100644
index 0000000000..4bcb62f614
--- /dev/null
+++ b/src/.vuepress/mitheme/src/node/defaultTheme.ts
@@ -0,0 +1,166 @@
+import type { Page, Theme } from '@vuepress/core'
+import { activeHeaderLinksPlugin } from '@vuepress/plugin-active-header-links'
+import { backToTopPlugin } from '@vuepress/plugin-back-to-top'
+import { containerPlugin } from '@vuepress/plugin-container'
+import { externalLinkIconPlugin } from '@vuepress/plugin-external-link-icon'
+import { gitPlugin } from '@vuepress/plugin-git'
+import { mediumZoomPlugin } from '@vuepress/plugin-medium-zoom'
+import { nprogressPlugin } from '@vuepress/plugin-nprogress'
+import { palettePlugin } from '@vuepress/plugin-palette'
+import { prismjsPlugin } from '@vuepress/plugin-prismjs'
+import { themeDataPlugin } from '@vuepress/plugin-theme-data'
+import { fs, path } from '@vuepress/utils'
+import type {
+  DefaultThemeLocaleOptions,
+  DefaultThemePageData,
+  DefaultThemePluginsOptions,
+} from '../shared'
+import {
+  assignDefaultLocaleOptions,
+  resolveContainerPluginOptions,
+} from './utils'
+
+export interface DefaultThemeOptions extends DefaultThemeLocaleOptions {
+  /**
+   * To avoid confusion with the root `plugins` option,
+   * we use `themePlugins`
+   */
+  themePlugins?: DefaultThemePluginsOptions
+}
+
+export const defaultTheme = ({
+  themePlugins = {},
+  ...localeOptions
+}: DefaultThemeOptions = {}): Theme => {
+  assignDefaultLocaleOptions(localeOptions)
+
+  return {
+    name: 'MiTheme',
+
+    layouts: path.resolve(__dirname, '../client/layouts'),
+
+    templateBuild: path.resolve(__dirname, '../../templates/build.html'),
+
+    // use alias to make all components replaceable
+    alias: Object.fromEntries(
+      fs
+        .readdirSync(path.resolve(__dirname, '../client/components'))
+        .filter((file) => file.endsWith('.vue'))
+        .map((file) => [
+          `@theme/${file}`,
+          path.resolve(__dirname, '../client/components', file),
+        ])
+    ),
+
+    clientConfigFile: path.resolve(__dirname, '../client/config.ts'),
+
+    extendsPage: (page: Page>) => {
+      // save relative file path into page data to generate edit link
+      page.data.filePathRelative = page.filePathRelative
+      // save title into route meta to generate navbar and sidebar
+      page.routeMeta.title = page.title
+    },
+
+    plugins: [
+      // @vuepress/plugin-active-header-link
+      themePlugins.activeHeaderLinks !== false
+        ? activeHeaderLinksPlugin({
+            headerLinkSelector: 'a.sidebar-item',
+            headerAnchorSelector: '.header-anchor',
+            // should greater than page transition duration
+            delay: 300,
+          })
+        : [],
+
+      // @vuepress/plugin-back-to-top
+      themePlugins.backToTop !== false ? backToTopPlugin() : [],
+
+      // @vuepress/plugin-container
+      themePlugins.container?.tip !== false
+        ? containerPlugin(resolveContainerPluginOptions(localeOptions, 'tip'))
+        : [],
+      themePlugins.container?.warning !== false
+        ? containerPlugin(
+            resolveContainerPluginOptions(localeOptions, 'warning')
+          )
+        : [],
+      themePlugins.container?.danger !== false
+        ? containerPlugin(
+            resolveContainerPluginOptions(localeOptions, 'danger')
+          )
+        : [],
+      themePlugins.container?.details !== false
+        ? containerPlugin({
+            type: 'details',
+            before: (info) =>
+              `
${ + info ? `${info}` : '' + }\n`, + after: () => '
\n', + }) + : [], + themePlugins.container?.codeGroup !== false + ? containerPlugin({ + type: 'code-group', + before: () => `\n`, + after: () => '\n', + }) + : [], + themePlugins.container?.codeGroupItem !== false + ? containerPlugin({ + type: 'code-group-item', + before: (info) => `\n`, + after: () => '\n', + }) + : [], + + // @vuepress/plugin-external-link-icon + themePlugins.externalLinkIcon !== false + ? externalLinkIconPlugin({ + locales: Object.entries(localeOptions.locales || {}).reduce( + (result, [key, value]) => { + result[key] = { + openInNewWindow: + value.openInNewWindow ?? localeOptions.openInNewWindow, + } + return result + }, + {} + ), + }) + : [], + + // @vuepress/plugin-git + themePlugins.git !== false + ? gitPlugin({ + createdTime: false, + updatedTime: localeOptions.lastUpdated !== false, + contributors: localeOptions.contributors !== false, + }) + : [], + + // @vuepress/plugin-medium-zoom + themePlugins.mediumZoom !== false + ? mediumZoomPlugin({ + selector: + '.theme-default-content > img, .theme-default-content :not(a) > img', + zoomOptions: {}, + // should greater than page transition duration + delay: 300, + }) + : [], + + // @vuepress/plugin-nprogress + themePlugins.nprogress !== false ? nprogressPlugin() : [], + + // @vuepress/plugin-palette + palettePlugin({ preset: 'sass' }), + + // @vuepress/plugin-prismjs + themePlugins.prismjs !== false ? prismjsPlugin() : [], + + // @vuepress/plugin-theme-data + themeDataPlugin({ themeData: localeOptions }), + ], + } +} diff --git a/src/.vuepress/mitheme/src/node/index.ts b/src/.vuepress/mitheme/src/node/index.ts new file mode 100644 index 0000000000..1c08907361 --- /dev/null +++ b/src/.vuepress/mitheme/src/node/index.ts @@ -0,0 +1,7 @@ +import { defaultTheme } from './defaultTheme' + +export * from '../shared' +export * from './defaultTheme' +export * from './utils' + +export default defaultTheme diff --git a/src/.vuepress/mitheme/src/node/utils/assignDefaultLocaleOptions.ts b/src/.vuepress/mitheme/src/node/utils/assignDefaultLocaleOptions.ts new file mode 100644 index 0000000000..3119419536 --- /dev/null +++ b/src/.vuepress/mitheme/src/node/utils/assignDefaultLocaleOptions.ts @@ -0,0 +1,73 @@ +import type { + DefaultThemeLocaleData, + DefaultThemeLocaleOptions, +} from '../../shared' + +export const DEFAULT_LOCALE_OPTIONS: DefaultThemeLocaleOptions = { + // color mode + colorMode: 'auto', + colorModeSwitch: true, + + // navbar + navbar: [], + logo: null, + repo: null, + selectLanguageText: 'Languages', + selectLanguageAriaLabel: 'Select language', + + // sidebar + sidebar: 'auto', + sidebarDepth: 2, + + // page meta + editLink: true, + editLinkText: 'Edit this page', + lastUpdated: true, + lastUpdatedText: 'Last Updated', + contributors: true, + contributorsText: 'Contributors', + + // 404 page messages + notFound: [ + `There's nothing here.`, + `How did we get here?`, + `That's a Four-Oh-Four.`, + `Looks like we've got some broken links.`, + ], + backToHome: 'Take me home', + + // a11y + openInNewWindow: 'open in new window', + toggleColorMode: 'toggle color mode', + toggleSidebar: 'toggle sidebar', +} + +export const DEFAULT_LOCALE_DATA: DefaultThemeLocaleData = { + // navbar + selectLanguageName: 'English', +} + +/** + * Assign default options + */ +export const assignDefaultLocaleOptions = ( + localeOptions: DefaultThemeLocaleOptions +): void => { + if (!localeOptions.locales) { + localeOptions.locales = {} + } + + if (!localeOptions.locales['/']) { + localeOptions.locales['/'] = {} + } + + Object.assign(localeOptions, { + ...DEFAULT_LOCALE_OPTIONS, + ...localeOptions, + }) + + Object.assign(localeOptions.locales['/'], { + ...DEFAULT_LOCALE_DATA, + ...localeOptions.locales['/'], + }) +} diff --git a/src/.vuepress/mitheme/src/node/utils/index.ts b/src/.vuepress/mitheme/src/node/utils/index.ts new file mode 100644 index 0000000000..d7da802baf --- /dev/null +++ b/src/.vuepress/mitheme/src/node/utils/index.ts @@ -0,0 +1,2 @@ +export * from './assignDefaultLocaleOptions' +export * from './resolveContainerPluginOptions' diff --git a/src/.vuepress/mitheme/src/node/utils/resolveContainerPluginOptions.ts b/src/.vuepress/mitheme/src/node/utils/resolveContainerPluginOptions.ts new file mode 100644 index 0000000000..11e1ffe1fa --- /dev/null +++ b/src/.vuepress/mitheme/src/node/utils/resolveContainerPluginOptions.ts @@ -0,0 +1,27 @@ +import type { ContainerPluginOptions } from '@vuepress/plugin-container' +import type { DefaultThemeData } from '../../shared' + +/** + * Resolve options for @vuepress/plugin-container + * + * For custom containers default title + */ +export const resolveContainerPluginOptions = ( + localeOptions: DefaultThemeData, + type: 'tip' | 'warning' | 'danger' +): ContainerPluginOptions => { + const locales = Object.entries(localeOptions.locales || {}).reduce( + (result, [key, value]) => { + result[key] = { + defaultInfo: value?.[type] ?? localeOptions[type], + } + return result + }, + {} + ) + + return { + type, + locales, + } +} diff --git a/src/.vuepress/mitheme/src/shared/index.ts b/src/.vuepress/mitheme/src/shared/index.ts new file mode 100644 index 0000000000..4a0c5b0867 --- /dev/null +++ b/src/.vuepress/mitheme/src/shared/index.ts @@ -0,0 +1,3 @@ +export * from './nav' +export * from './options' +export * from './page' diff --git a/src/.vuepress/mitheme/src/shared/nav.ts b/src/.vuepress/mitheme/src/shared/nav.ts new file mode 100644 index 0000000000..a7bdd2f5c1 --- /dev/null +++ b/src/.vuepress/mitheme/src/shared/nav.ts @@ -0,0 +1,57 @@ +/** + * Base nav item, displayed as text + */ +export interface NavItem { + text: string + ariaLabel?: string +} + +/** + * Base nav group, has nav items children + */ +export interface NavGroup extends NavItem { + children: T[] +} + +/** + * Props for `` + */ +export interface NavLink extends NavItem { + link: string + rel?: string + target?: string + activeMatch?: string +} + +/** + * Navbar types + */ +// user config +export type NavbarItem = NavLink +export type NavbarGroup = NavGroup +export type NavbarConfig = (NavbarItem | NavbarGroup | string)[] +// resolved +export type ResolvedNavbarItem = NavbarItem | NavGroup + +/** + * Sidebar types + */ +// user config +export type SidebarItem = NavItem & Partial +export type SidebarGroup = SidebarItem & + NavGroup +export type SidebarGroupCollapsible = SidebarGroup & { + collapsible?: boolean +} +export type SidebarConfigArray = ( + | SidebarItem + | SidebarGroupCollapsible + | string +)[] +export type SidebarConfigObject = Record +export type SidebarConfig = SidebarConfigArray | SidebarConfigObject +// resolved +export type ResolvedSidebarItem = SidebarItem & + Partial> & { + collapsible?: boolean + } diff --git a/src/.vuepress/mitheme/src/shared/options.ts b/src/.vuepress/mitheme/src/shared/options.ts new file mode 100644 index 0000000000..9f808cbd17 --- /dev/null +++ b/src/.vuepress/mitheme/src/shared/options.ts @@ -0,0 +1,284 @@ +import type { ThemeData } from '@vuepress/plugin-theme-data' +import type { LocaleData } from '@vuepress/shared' +import type { NavbarConfig, SidebarConfig } from './nav' + +export interface DefaultThemePluginsOptions { + /** + * Enable @vuepress/plugin-active-header-links or not + */ + activeHeaderLinks?: boolean + + /** + * Enable @vuepress/plugin-back-to-top or not + */ + backToTop?: boolean + + /** + * Enable @vuepress/plugin-container or not + */ + container?: { + tip?: boolean + warning?: boolean + danger?: boolean + details?: boolean + codeGroup?: boolean + codeGroupItem?: boolean + } + + /** + * Enable @vuepress/plugin-external-link-icon or not + */ + externalLinkIcon?: boolean + + /** + * Enable @vuepress/plugin-git or not + */ + git?: boolean + + /** + * Enable @vuepress/plugin-medium-zoom or not + */ + mediumZoom?: boolean + + /** + * Enable @vuepress/plugin-nprogress or not + */ + nprogress?: boolean + + /** + * Enable @vuepress/plugin-prismjs or not + */ + prismjs?: boolean +} + +export type DefaultThemeLocaleOptions = DefaultThemeData + +export type DefaultThemeData = ThemeData + +export interface DefaultThemeLocaleData extends LocaleData { + /** + * Default color mode + * + * @default 'auto' + */ + colorMode?: 'auto' | 'dark' | 'light' + + /** + * Enable color mode switching and display a button in navbar or not + * + * @default true + */ + colorModeSwitch?: boolean + + /** + * Home path of current locale + * + * Used as the link of back-to-home and navbar logo + */ + home?: string + + /** + * Navbar config + * + * Set to `false` to disable navbar in current locale + */ + navbar?: false | NavbarConfig + + /** + * Navbar logo config + * + * Logo to display in navbar + */ + logo?: null | string + + /** + * Navbar logo config for dark mode + * + * Logo to display in navbar in dark mode + */ + logoDark?: null | string + + /** + * Navbar repository config + * + * Used for the repository link of navbar + */ + repo?: null | string + + /** + * Navbar repository config + * + * Used for the repository text of navbar + */ + repoLabel?: string + + /** + * Navbar language selection config + * + * Text of the language selection dropdown + */ + selectLanguageText?: string + + /** + * Navbar language selection config + * + * Aria label of of the language selection dropdown + */ + selectLanguageAriaLabel?: string + + /** + * Navbar language selection config + * + * Language name of current locale + * + * Displayed inside the language selection dropdown + */ + selectLanguageName?: string + + /** + * Sidebar config + * + * Set to `false` to disable sidebar in current locale + */ + sidebar?: 'auto' | false | SidebarConfig + + /** + * Sidebar depth + * + * - Set to `0` to disable all levels + * - Set to `1` to include `

` + * - Set to `2` to include `

` and `

` + * - ... + * + * The max value depends on which headers you have extracted + * via `markdown.headers.level`. + * + * The default value of `markdown.headers.level` is `[2, 3]`, + * so the default max value of `sidebarDepth` is `2` + */ + sidebarDepth?: number + + /** + * Page meta - edit link config + * + * Whether to show "Edit this page" or not + */ + editLink?: boolean + + /** + * Page meta - edit link config + * + * The text to replace the default "Edit this page" + */ + editLinkText?: string + + /** + * Page meta - edit link config + * + * Pattern of edit link + * + * @example ':repo/edit/:branch/:path' + */ + editLinkPattern?: string + + /** + * Page meta - edit link config + * + * Use `repo` config by default + * + * Set this config if your docs is placed in a different repo + */ + docsRepo?: string + + /** + * Page meta - edit link config + * + * Set this config if the branch of your docs is not 'main' + */ + docsBranch?: string + + /** + * Page meta - edit link config + * + * Set this config if your docs is placed in sub dir of your `docsRepo` + */ + docsDir?: string + + /** + * Page meta - last updated config + * + * Whether to show "Last Updated" or not + */ + lastUpdated?: boolean + + /** + * Page meta - last updated config + * + * The text to replace the default "Last Updated" + */ + lastUpdatedText?: string + + /** + * Page meta - contributors config + * + * Whether to show "Contributors" or not + */ + contributors?: boolean + + /** + * Page meta - contributors config + * + * The text to replace the default "Contributors" + */ + contributorsText?: string + + /** + * Custom block config + * + * Default title of TIP custom block + */ + tip?: string + + /** + * Custom block config + * + * Default title of WARNING custom block + */ + warning?: string + + /** + * Custom block config + * + * Default title of DANGER custom block + */ + danger?: string + + /** + * 404 page config + * + * Not Found messages for 404 page + */ + notFound?: string[] + + /** + * 404 page config + * + * Text of back-to-home link in 404 page + */ + backToHome?: string + + /** + * A11y text for external link icon + */ + openInNewWindow?: string + + /** + * A11y text for color mode toggle button + */ + toggleColorMode?: string + + /** + * A11y text for sidebar toggle button + */ + toggleSidebar?: string +} diff --git a/src/.vuepress/mitheme/src/shared/page.ts b/src/.vuepress/mitheme/src/shared/page.ts new file mode 100644 index 0000000000..d9eeeb9f7b --- /dev/null +++ b/src/.vuepress/mitheme/src/shared/page.ts @@ -0,0 +1,46 @@ +import type { GitPluginPageData } from '@vuepress/plugin-git' +import type { NavLink, SidebarConfig } from './nav' + +export interface DefaultThemePageData extends GitPluginPageData { + filePathRelative: string | null +} + +export interface DefaultThemePageFrontmatter { + home?: boolean + navbar?: boolean + pageClass?: string +} + +export interface DefaultThemeHomePageFrontmatter + extends DefaultThemePageFrontmatter { + home: true + heroImage?: string + heroImageDark?: string + heroAlt?: string + heroText?: string | null + tagline?: string | null + actions?: { + text: string + link: string + type?: 'primary' | 'secondary' + }[] + features?: { + title: string + details: string + }[] + footer?: string + footerHtml?: boolean +} + +export interface DefaultThemeNormalPageFrontmatter + extends DefaultThemePageFrontmatter { + home?: false + editLink?: boolean + editLinkPattern?: string + lastUpdated?: boolean + contributors?: boolean + sidebar?: 'auto' | false | SidebarConfig + sidebarDepth?: number + prev?: string | NavLink + next?: string | NavLink +} diff --git a/src/.vuepress/mitheme/templates/build.html b/src/.vuepress/mitheme/templates/build.html new file mode 100644 index 0000000000..032c6bed05 --- /dev/null +++ b/src/.vuepress/mitheme/templates/build.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
+ + + diff --git a/src/.vuepress/styles/index.scss b/src/.vuepress/styles/index.scss index 58e5a261d1..f69448ea22 100644 --- a/src/.vuepress/styles/index.scss +++ b/src/.vuepress/styles/index.scss @@ -3,7 +3,7 @@ --c-brand-light: #acde17 !important; --c-bg-navbar: rgba(255, 255, 255, 0.7); - --c-bg-navbar-dropdown: var(--c-bg); + --c-bg-navbar-dropdown: #fff; --c-bg-navbar-dropdown-shadow: rgba(0, 0, 0, 0.1); --c-tip: #8ab942; @@ -12,7 +12,7 @@ html.dark { --c-bg: rgb(27, 30, 33); --c-bg-navbar: rgb(27, 30, 33, 0.7); - --c-bg-navbar-dropdown: var(--c-bg-light); + --c-bg-navbar-dropdown: #222; --c-bg-navbar-dropdown-shadow: rgba(0, 0, 0, 0.3); --c-tip: #678a31; @@ -24,82 +24,3 @@ html.dark { --c-danger-bg: #463434; --c-danger-text: #edd2d2; } - -.navbar { - backdrop-filter: blur(14px); - border-bottom: none !important; -} - -.nav-dropdown { - background-color: var(--c-bg-navbar-dropdown) !important; - border: none !important; - border-radius: 8px !important; - box-shadow: 0px 4px 32px var(--c-bg-navbar-dropdown-shadow) !important; -} - -.sidebar { - border-right: none !important; -} - -.custom-container { - position: relative; - - > i { - position: absolute; - top: 1rem; - left: -19px; - width: 30px; - height: 30px; - line-height: 30px; - border-radius: 100%; - text-align: center; - font-size: 14px; - color: var(--c-bg); - } - - > p { - // vuepressใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใƒ†ใƒผใƒžใฎใƒŸใ‚นใงใ€detailsๅ†…ใซๅ…ฅใ‚ŒใŸcustom-containerใฎใƒžใƒผใ‚ธใƒณใŒ็„กใใชใฃใฆใ—ใพใ†ใŸใ‚ - margin-block-end: 1em !important; - } - - &.tip { - > i { - background: var(--c-tip); - } - } - - &.warning { - > i { - background: var(--c-warning); - } - } - - &.danger { - > i { - background: var(--c-danger); - } - } -} - -.mk-page { - display: block; - margin: 1em 0; - padding: 1em; - border: solid 1px var(--c-border); - border-radius: 8px; - color: var(--c-text); - font-weight: normal; - - &:hover { - border-color: var(--c-brand); - text-decoration: none !important; - } - - > header { - font-weight: bold; - } - - > footer { - opacity: 0.7; - } -} diff --git a/src/.vuepress/theme/index.ts b/src/.vuepress/theme/index.ts index 7a7b007a52..139ab579fd 100644 --- a/src/.vuepress/theme/index.ts +++ b/src/.vuepress/theme/index.ts @@ -1,12 +1,14 @@ import type { ThemeObject } from '@vuepress/core' import { path } from '@vuepress/utils' +import { defaultTheme } from '@vuepress/theme-default' +import { DefaultThemeOptions, Theme } from 'vuepress' -const localTheme: ThemeObject = { +const localTheme = (options: DefaultThemeOptions): Theme => ({ name: 'vuepress-theme-local', - extends: '@vuepress/theme-default', + extends: defaultTheme(options), layouts: { Layout: path.resolve(__dirname, 'layouts/Layout.vue'), }, -} +}) export default localTheme diff --git a/src/.vuepress/theme/layouts/Layout.vue b/src/.vuepress/theme/layouts/Layout.vue index 915fd8a9aa..bd27df7b2c 100644 --- a/src/.vuepress/theme/layouts/Layout.vue +++ b/src/.vuepress/theme/layouts/Layout.vue @@ -1,5 +1,5 @@ - + diff --git a/src/.vuepress/components/MkApiParams.vue b/src/.vuepress/components/MkApiParams.vue new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/.vuepress/components/MkApiResources.vue b/src/.vuepress/components/MkApiResources.vue new file mode 100644 index 0000000000..ee13875e6b --- /dev/null +++ b/src/.vuepress/components/MkApiResources.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/.vuepress/components/MkSchemaViewerItem.vue b/src/.vuepress/components/MkSchemaViewerItem.vue index 10ad373f86..70f56054cb 100644 --- a/src/.vuepress/components/MkSchemaViewerItem.vue +++ b/src/.vuepress/components/MkSchemaViewerItem.vue @@ -46,14 +46,7 @@
{{ schema.description }}

-
Object:
-
{{ schema.description }}
-
-
{{ k }}*
-
-
- (nullable) -
default: {{ schema.default }}
+
@@ -121,9 +114,9 @@ export default { } > .object { - border: solid 1px var(--c-border); - border-radius: 6px; - padding: 12px 16px; + //border: solid 1px var(--c-border); + //border-radius: 6px; + //padding: 12px 16px; > .label { margin-bottom: 0.5em; diff --git a/src/.vuepress/components/MkSchemaViewerItemObject.vue b/src/.vuepress/components/MkSchemaViewerItemObject.vue new file mode 100644 index 0000000000..d02ec16a4c --- /dev/null +++ b/src/.vuepress/components/MkSchemaViewerItemObject.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/src/.vuepress/generate-endpoint-pages.ts b/src/.vuepress/generate-endpoint-pages.ts index ed450fa650..d8633b4015 100644 --- a/src/.vuepress/generate-endpoint-pages.ts +++ b/src/.vuepress/generate-endpoint-pages.ts @@ -7,13 +7,13 @@ export async function generateEndpointPages(app: App) { for (const locale of Object.keys(app.options.locales)) { const endpointsDir = locale + 'docs/api/endpoints/'; const endpointPaths = glob.sync(__dirname + '/..' + endpointsDir + '**/*.json5'); + const commonDef = JSON5.parse(fs.readFileSync(`${__dirname}/..${locale}docs/api/common.json5`, 'utf-8')); const endpointsForIndex = []; for (const endpointPath of endpointPaths) { const name = endpointPath.slice(endpointPath.indexOf(endpointsDir)).replace(endpointsDir, '').replace('.json5', ''); - const data = fs.readFileSync(endpointPath, 'utf-8'); - const def = JSON5.parse(data); + const def = JSON5.parse(fs.readFileSync(endpointPath, 'utf-8')); endpointsForIndex.push({ name: name, summary: def.summary, tags: def.tags ?? [] }); @@ -68,16 +68,19 @@ none content += ` ## Errors + + + + `; - for (const [id, err] of Object.entries(def.errors)) { - content += ` -### ${err.code} -ID: \`${id}\` - -${err.description} + content += ` +## Resources + + + + `; - } const page = await createPage(app, { path: endpointPath.slice(endpointPath.indexOf(endpointsDir)).replace('.json5', '.html'), diff --git a/src/.vuepress/mitheme/src/client/styles/index.scss b/src/.vuepress/mitheme/src/client/styles/index.scss index 5f23f6dd0e..a403a1f518 100644 --- a/src/.vuepress/mitheme/src/client/styles/index.scss +++ b/src/.vuepress/mitheme/src/client/styles/index.scss @@ -104,3 +104,7 @@ html { } } } + +._mono { + font-family: var(--font-family-code); +} diff --git a/src/.vuepress/mitheme/src/client/styles/normalize.scss b/src/.vuepress/mitheme/src/client/styles/normalize.scss index 0a4435357c..f6b5689941 100644 --- a/src/.vuepress/mitheme/src/client/styles/normalize.scss +++ b/src/.vuepress/mitheme/src/client/styles/normalize.scss @@ -153,14 +153,14 @@ hr { table { border-collapse: collapse; - margin: 1rem 0; + margin: 0; display: block; overflow-x: auto; transition: border-color var(--t-color); } tr { - border-top: 1px solid var(--c-border-dark); + border-top: 0px solid var(--c-border-dark); transition: border-color var(--t-color); &:nth-child(2n) { @@ -172,6 +172,6 @@ tr { th, td { padding: 0.6em 1em; - border: 1px solid var(--c-border-dark); + border: 0px solid var(--c-border-dark); transition: border-color var(--t-color); } diff --git a/src/.vuepress/mitheme/src/client/styles/vars.scss b/src/.vuepress/mitheme/src/client/styles/vars.scss index 3d302a58bb..ed8d6bbf79 100644 --- a/src/.vuepress/mitheme/src/client/styles/vars.scss +++ b/src/.vuepress/mitheme/src/client/styles/vars.scss @@ -68,7 +68,7 @@ --navbar-padding-h: 1.5rem; --sidebar-width: 20rem; --sidebar-width-mobile: calc(var(--sidebar-width) * 0.82); - --content-width: 740px; + --content-width: 800px; --homepage-width: 960px; } diff --git a/src/docs/api/common.json5 b/src/docs/api/common.json5 new file mode 100644 index 0000000000..1b02599e01 --- /dev/null +++ b/src/docs/api/common.json5 @@ -0,0 +1,39 @@ +{ + errors: { + '1384574d-a912-4b81-8601-c7b1c4085df1': { + id: '1384574d-a912-4b81-8601-c7b1c4085df1', + code: 'CREDENTIAL_REQUIRED', + description: 'ใ‚ฏใƒฌใƒ‡ใƒณใ‚ทใƒฃใƒซๅฟ…้ ˆใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใซใ‚ฏใƒฌใƒ‡ใƒณใ‚ทใƒฃใƒซ็„กใ—ใงใƒชใ‚ฏใ‚จใ‚นใƒˆใ•ใ‚Œใพใ—ใŸใ€‚', + }, + 'd5826d14-3982-4d2e-8011-b9e9f02499ef': { + id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', + code: 'RATE_LIMIT_EXCEEDED', + description: 'ใƒฌใƒผใƒˆใƒชใƒŸใƒƒใƒˆใซใ‚ˆใ‚‹ๅˆถ้™ใฎใŸใ‚ไธ€ๆ™‚็š„ใซๅˆฉ็”จใงใใพใ›ใ‚“ใ€‚', + }, + '56f35758-7dd5-468b-8439-5d6fb8ec9b8e': { + id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', + code: 'ACCESS_DENIED', + description: 'ใ‚ขใ‚ฏใ‚ปใ‚นๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚', + }, + '1370e5b7-d4eb-4566-bb1d-7748ee6a1838': { + id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', + code: 'PERMISSION_DENIED', + description: 'ไธŽใˆใ‚‰ใ‚ŒใŸใ‚ฏใƒฌใƒ‡ใƒณใ‚ทใƒฃใƒซใซใฏๅฟ…่ฆใชใƒ‘ใƒผใƒŸใƒƒใ‚ทใƒงใƒณใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚', + }, + 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': { + id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', + code: 'YOUR_ACCOUNT_SUSPENDED', + description: 'ใ‚ขใ‚ซใ‚ฆใƒณใƒˆใŒๅ‡็ตใ•ใ‚Œใฆใ„ใ‚‹ใŸใ‚ๅˆฉ็”จใงใใพใ›ใ‚“ใ€‚', + }, + '3d81ceae-475f-4600-b2a8-2bc116157532': { + id: '3d81ceae-475f-4600-b2a8-2bc116157532', + code: 'INVALID_PARAM', + description: 'ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒ‘ใƒฉใƒกใƒผใ‚ฟใซ่ชคใ‚ŠใŒใ‚ใ‚Šใพใ™ใ€‚', + }, + '5d37dbcb-891e-41ca-a3d6-e690c97775ac': { + id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', + code: 'INTERNAL_ERROR', + description: 'ใ‚ตใƒผใƒใƒผๅ†…้ƒจใงๅ•้กŒใŒ็™บ็”Ÿใ—ใพใ—ใŸใ€‚ๅผ•ใ็ถšใๅ•้กŒใŒ็™บ็”Ÿใ™ใ‚‹ๅ ดๅˆใฏ็ฎก็†่€…ใซใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚', + }, + }, +} diff --git a/src/en/docs/api/common.json5 b/src/en/docs/api/common.json5 new file mode 100644 index 0000000000..3301107df2 --- /dev/null +++ b/src/en/docs/api/common.json5 @@ -0,0 +1,39 @@ +{ + errors: { + '1384574d-a912-4b81-8601-c7b1c4085df1': { + id: '1384574d-a912-4b81-8601-c7b1c4085df1', + code: 'CREDENTIAL_REQUIRED', + description: 'Credential-required endpoint requested without credentials.', + }, + 'd5826d14-3982-4d2e-8011-b9e9f02499ef': { + id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', + code: 'RATE_LIMIT_EXCEEDED', + description: 'Temporarily unavailable due to rate limit restrictions.', + }, + '56f35758-7dd5-468b-8439-5d6fb8ec9b8e': { + id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', + code: 'ACCESS_DENIED', + description: 'You do not have access privileges.', + }, + '1370e5b7-d4eb-4566-bb1d-7748ee6a1838': { + id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', + code: 'PERMISSION_DENIED', + description: 'The given credential does not have the required permissions.', + }, + 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': { + id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', + code: 'YOUR_ACCOUNT_SUSPENDED', + description: 'Unavailable due to your account has been suspended.', + }, + '3d81ceae-475f-4600-b2a8-2bc116157532': { + id: '3d81ceae-475f-4600-b2a8-2bc116157532', + code: 'INVALID_PARAM', + description: 'The request contains incorrect parameters.', + }, + '5d37dbcb-891e-41ca-a3d6-e690c97775ac': { + id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', + code: 'INTERNAL_ERROR', + description: 'Internal error occurred. Please contact the administrator if the error persists.', + }, + }, +} From b1bad44fbc873e386866cafa71e6f2c457add394 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 16:59:48 +0900 Subject: [PATCH 053/296] :v: --- src/.vuepress/components/MkApiErrors.vue | 17 +- .../components/MkSchemaViewerItem.vue | 158 +++++++----------- .../components/MkSchemaViewerItemObject.vue | 2 +- src/.vuepress/generate-endpoint-pages.ts | 12 +- 4 files changed, 76 insertions(+), 113 deletions(-) diff --git a/src/.vuepress/components/MkApiErrors.vue b/src/.vuepress/components/MkApiErrors.vue index b0b20f9a60..f6c5af9001 100644 --- a/src/.vuepress/components/MkApiErrors.vue +++ b/src/.vuepress/components/MkApiErrors.vue @@ -2,12 +2,17 @@
- - -
{{ e.description }}
-
ID: {{ e.id }}
-
-
+ +
diff --git a/src/.vuepress/components/MkSchemaViewerItem.vue b/src/.vuepress/components/MkSchemaViewerItem.vue index 70f56054cb..b574fb2295 100644 --- a/src/.vuepress/components/MkSchemaViewerItem.vue +++ b/src/.vuepress/components/MkSchemaViewerItem.vue @@ -1,53 +1,54 @@ @@ -83,62 +84,23 @@ export default { diff --git a/src/.vuepress/components/MkSchemaViewerItemObject.vue b/src/.vuepress/components/MkSchemaViewerItemObject.vue index d02ec16a4c..f4bb876fa5 100644 --- a/src/.vuepress/components/MkSchemaViewerItemObject.vue +++ b/src/.vuepress/components/MkSchemaViewerItemObject.vue @@ -3,7 +3,7 @@ diff --git a/src/.vuepress/generate-endpoint-pages.ts b/src/.vuepress/generate-endpoint-pages.ts index d8633b4015..d7e2ff2376 100644 --- a/src/.vuepress/generate-endpoint-pages.ts +++ b/src/.vuepress/generate-endpoint-pages.ts @@ -40,8 +40,7 @@ filePath: '${`docs/api/endpoints/${name}.json5`}' content += ` ## Parameters - - + `; } else { @@ -55,8 +54,7 @@ none content += ` ## Response - - + `; } else { @@ -69,16 +67,14 @@ none content += ` ## Errors - - + `; content += ` ## Resources - - + `; From 7f42b8e9c3894df37f8d75d6d8766503db942e82 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 21:02:20 +0900 Subject: [PATCH 054/296] :v: --- src/.vuepress/generate-endpoint-pages.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/.vuepress/generate-endpoint-pages.ts b/src/.vuepress/generate-endpoint-pages.ts index d7e2ff2376..e1f635b612 100644 --- a/src/.vuepress/generate-endpoint-pages.ts +++ b/src/.vuepress/generate-endpoint-pages.ts @@ -25,7 +25,7 @@ filePath: '${`docs/api/endpoints/${name}.json5`}' # \`${name}\`\n${def.description}`; if (def.requireCredential) { - content += `\n\nCredential required.\n`; + content += `\n\n\n`; } content += ` @@ -38,41 +38,41 @@ filePath: '${`docs/api/endpoints/${name}.json5`}' if (def.req && Object.keys(def.req).length > 0) { content += ` -## Parameters +## ใƒ‘ใƒฉใƒกใƒผใ‚ฟ `; } else { content += ` -## Parameters -none +## ใƒ‘ใƒฉใƒกใƒผใ‚ฟ + `; } if (def.res) { content += ` -## Response +## ใƒฌใ‚นใƒใƒณใ‚น `; } else { content += ` -## Response -none +## ใƒฌใ‚นใƒใƒณใ‚น + `; } content += ` -## Errors +## ใ‚จใƒฉใƒผ `; content += ` -## Resources +## ใƒชใ‚ฝใƒผใ‚น From b9d7ccffc89ff213c5ecf312651d2d0559dc6a3d Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 22:24:08 +0900 Subject: [PATCH 055/296] :v: --- src/.vuepress/components/MkSchemaViewerItemObject.vue | 1 - src/docs/api/endpoints/server-info.json5 | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/.vuepress/components/MkSchemaViewerItemObject.vue b/src/.vuepress/components/MkSchemaViewerItemObject.vue index f4bb876fa5..58c75fdb2a 100644 --- a/src/.vuepress/components/MkSchemaViewerItemObject.vue +++ b/src/.vuepress/components/MkSchemaViewerItemObject.vue @@ -31,7 +31,6 @@ -
{{ schema.description }}
diff --git a/src/docs/api/endpoints/server-info.json5 b/src/docs/api/endpoints/server-info.json5 index 49e8021e91..6eae62d4f7 100644 --- a/src/docs/api/endpoints/server-info.json5 +++ b/src/docs/api/endpoints/server-info.json5 @@ -36,7 +36,7 @@ mem: { type: "object", optional: false, nullable: false, - description: "ใ‚นใƒˆใƒฌใƒผใ‚ธใซใคใ„ใฆใฎๆƒ…ๅ ฑใงใ™ใ€‚", + description: "ใƒกใƒขใƒชใซใคใ„ใฆใฎๆƒ…ๅ ฑใงใ™ใ€‚", properties: { total: { type: "number", @@ -65,4 +65,4 @@ }, }, errors: {}, -} \ No newline at end of file +} From 28382ca73a18f4db43ab517aba2542fc5e20770d Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 22:43:45 +0900 Subject: [PATCH 056/296] update docs --- src/docs/api/endpoints/i/favorites.json5 | 5 +++-- src/docs/api/endpoints/i/notifications.json5 | 4 ++-- src/docs/api/endpoints/i/pin.json5 | 10 +++++----- src/docs/api/endpoints/i/unpin.json5 | 6 +++--- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/docs/api/endpoints/i/favorites.json5 b/src/docs/api/endpoints/i/favorites.json5 index 7cc0cba240..74192de34d 100644 --- a/src/docs/api/endpoints/i/favorites.json5 +++ b/src/docs/api/endpoints/i/favorites.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใฎใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใฎใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -36,6 +36,7 @@ ref: 'NoteFavorite', $ref: 'misskey://NoteFavorite', }, + description: 'ใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑไธ€่ฆงใ€‚', }, errors: {}, } diff --git a/src/docs/api/endpoints/i/notifications.json5 b/src/docs/api/endpoints/i/notifications.json5 index df8b6ebcbe..33302228d1 100644 --- a/src/docs/api/endpoints/i/notifications.json5 +++ b/src/docs/api/endpoints/i/notifications.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: '้€š็Ÿฅไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: '้€š็Ÿฅไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚้€š็Ÿฅใฎ็จฎ้กžใ‚’ใƒ•ใ‚ฃใƒซใ‚ฟใƒชใƒณใ‚ฐใ—ใฆๅ–ๅพ—ใ™ใ‚‹ใ“ใจใ‚‚ๅฏ่ƒฝใงใ™ใ€‚', tags: [ 'account', ], diff --git a/src/docs/api/endpoints/i/pin.json5 b/src/docs/api/endpoints/i/pin.json5 index 356051d24f..3d6a871e47 100644 --- a/src/docs/api/endpoints/i/pin.json5 +++ b/src/docs/api/endpoints/i/pin.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใ‚’ใƒ”ใƒณ็•™ใ‚ใซ็™ป้Œฒใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใ‚’ใƒ”ใƒณ็•™ใ‚ใซ็™ป้Œฒใ—ใพใ™ใ€‚ใƒ”ใƒณ็•™ใ‚ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฏใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซๆƒ…ๅ ฑใซๅซใพใ‚Œใ€Misskey Webใงใฏใƒฆใƒผใ‚ถใƒผใฎใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซใƒšใƒผใ‚ธใง่กจ็คบใ•ใ‚Œใพใ™ใ€‚', tags: [ 'account', ], @@ -28,17 +28,17 @@ '56734f8b-3928-431e-bf80-6ff87df40cb3': { id: '56734f8b-3928-431e-bf80-6ff87df40cb3', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, '72dab508-c64d-498f-8740-a8eec1ba385a': { id: '72dab508-c64d-498f-8740-a8eec1ba385a', code: 'PIN_LIMIT_EXCEEDED', - description: '', + description: 'ใ“ใ‚ŒไปฅไธŠใƒ”ใƒณ็•™ใ‚ใงใใพใ›ใ‚“ใ€‚', }, '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913': { id: '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913', code: 'ALREADY_PINNED', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฏๆ—ขใซใƒ”ใƒณ็•™ใ‚ใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/i/unpin.json5 b/src/docs/api/endpoints/i/unpin.json5 index 83d4025406..1a9917cfd8 100644 --- a/src/docs/api/endpoints/i/unpin.json5 +++ b/src/docs/api/endpoints/i/unpin.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใ‚’ใƒ”ใƒณ็•™ใ‚ใ‹ใ‚‰่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใ‚’ใƒ”ใƒณ็•™ใ‚ใ‹ใ‚‰่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -28,7 +28,7 @@ '454170ce-9d63-4a43-9da1-ea10afe81e21': { id: '454170ce-9d63-4a43-9da1-ea10afe81e21', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } From da8496da40185667b3776d4368205984532bba24 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 22:55:29 +0900 Subject: [PATCH 057/296] :v: --- src/.vuepress/client.ts | 3 --- src/.vuepress/components/MkApiParams.vue | 0 .../mitheme/src/client/styles/index.scss | 11 ++++++++++ .../mitheme/src/client/styles/vars-dark.scss | 20 +++++++++---------- .../mitheme/src/client/styles/vars.scss | 6 +++--- src/.vuepress/styles/index.scss | 17 ---------------- 6 files changed, 24 insertions(+), 33 deletions(-) delete mode 100644 src/.vuepress/components/MkApiParams.vue delete mode 100644 src/.vuepress/styles/index.scss diff --git a/src/.vuepress/client.ts b/src/.vuepress/client.ts index f93107ff5d..98f3cb3bff 100644 --- a/src/.vuepress/client.ts +++ b/src/.vuepress/client.ts @@ -1,8 +1,5 @@ import { defineClientConfig } from '@vuepress/client' import ElementPlus from 'element-plus' -import 'element-plus/dist/index.css' -import 'element-plus/theme-chalk/dark/css-vars.css' -//import 'element-plus/lib/theme-chalk/index.css'; export default defineClientConfig({ enhance({app, router, siteData}) { diff --git a/src/.vuepress/components/MkApiParams.vue b/src/.vuepress/components/MkApiParams.vue deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/.vuepress/mitheme/src/client/styles/index.scss b/src/.vuepress/mitheme/src/client/styles/index.scss index a403a1f518..5f8d4d732a 100644 --- a/src/.vuepress/mitheme/src/client/styles/index.scss +++ b/src/.vuepress/mitheme/src/client/styles/index.scss @@ -9,6 +9,17 @@ @use '@vuepress/plugin-palette/style'; +@forward 'element-plus/theme-chalk/src/common/var.scss' with ( + $colors: ( + 'primary': ( + 'base': #86b300, + ), + ) +); + +@use "element-plus/theme-chalk/src/index.scss" as *; +@use "element-plus/theme-chalk/src/dark/css-vars.scss" as *; + html { touch-action: manipulation; accent-color: var(--c-brand); diff --git a/src/.vuepress/mitheme/src/client/styles/vars-dark.scss b/src/.vuepress/mitheme/src/client/styles/vars-dark.scss index ec8149834b..a5ff81eaa3 100644 --- a/src/.vuepress/mitheme/src/client/styles/vars-dark.scss +++ b/src/.vuepress/mitheme/src/client/styles/vars-dark.scss @@ -1,7 +1,7 @@ html.dark { // brand colors - --c-brand: #3aa675; - --c-brand-light: #349469; + --c-brand: #86b300; + --c-brand-light: #acde17; // background colors --c-bg: #0e0e0e; @@ -22,15 +22,15 @@ html.dark { --c-border-dark: #ffffff3f; // custom container colors - --c-tip: #318a62; - --c-warning: #ceab00; - --c-warning-bg: #7e755b; - --c-warning-title: #ceac03; - --c-warning-text: #362e00; - --c-danger: #940000; - --c-danger-bg: #806161; + --c-tip: #678a31; + --c-warning: #b79a0f; + --c-warning-bg: #353125; + --c-warning-title: #dec340; + --c-warning-text: #d6d0a8; + --c-danger: #bd3b3b; + --c-danger-bg: #463434; --c-danger-title: #610000; - --c-danger-text: #3a0000; + --c-danger-text: #edd2d2; --c-details-bg: #323843; // code blocks vars diff --git a/src/.vuepress/mitheme/src/client/styles/vars.scss b/src/.vuepress/mitheme/src/client/styles/vars.scss index ed8d6bbf79..f247102176 100644 --- a/src/.vuepress/mitheme/src/client/styles/vars.scss +++ b/src/.vuepress/mitheme/src/client/styles/vars.scss @@ -1,7 +1,7 @@ :root { // brand colors - --c-brand: #3eaf7c; - --c-brand-light: #4abf8a; + --c-brand: #86b300; + --c-brand-light: #acde17; // background colors --c-bg: #ffffff; @@ -26,7 +26,7 @@ --c-border-dark: #dfe2e5; // custom container colors - --c-tip: #42b983; + --c-tip: #8ab942; --c-tip-bg: var(--c-bg-light); --c-tip-title: var(--c-text); --c-tip-text: var(--c-text); diff --git a/src/.vuepress/styles/index.scss b/src/.vuepress/styles/index.scss deleted file mode 100644 index af9317cfae..0000000000 --- a/src/.vuepress/styles/index.scss +++ /dev/null @@ -1,17 +0,0 @@ -:root { - --c-brand: #86b300 !important; - --c-brand-light: #acde17 !important; - - --c-tip: #8ab942; -} - -html.dark { - --c-tip: #678a31; - --c-warning: #b79a0f; - --c-warning-bg: #353125; - --c-warning-title: #dec340; - --c-warning-text: #d6d0a8; - --c-danger: #bd3b3b; - --c-danger-bg: #463434; - --c-danger-text: #edd2d2; -} From 373c1c3d7db811f1552889b7815836a8c917529b Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 22 Aug 2022 23:04:15 +0900 Subject: [PATCH 058/296] Update MkSchemaViewerItem.vue --- src/.vuepress/components/MkSchemaViewerItem.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/.vuepress/components/MkSchemaViewerItem.vue b/src/.vuepress/components/MkSchemaViewerItem.vue index b574fb2295..91e8626639 100644 --- a/src/.vuepress/components/MkSchemaViewerItem.vue +++ b/src/.vuepress/components/MkSchemaViewerItem.vue @@ -32,7 +32,6 @@
Array of:
-
{{ schema.description }}
nullable
From ca653fa9795f81502b1583eae9bcdc8c3e218229 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 23 Aug 2022 00:06:50 +0900 Subject: [PATCH 059/296] Update generate-endpoint-pages.ts --- src/.vuepress/generate-endpoint-pages.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.vuepress/generate-endpoint-pages.ts b/src/.vuepress/generate-endpoint-pages.ts index e1f635b612..e011d93737 100644 --- a/src/.vuepress/generate-endpoint-pages.ts +++ b/src/.vuepress/generate-endpoint-pages.ts @@ -20,6 +20,7 @@ export async function generateEndpointPages(app: App) { let content = `--- filePath: '${`docs/api/endpoints/${name}.json5`}' +description: '${def.summary}' --- # \`${name}\`\n${def.description}`; From a5627c5bdb2165ab9d620fa21204da974b470e7d Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 23 Aug 2022 00:27:03 +0900 Subject: [PATCH 060/296] :v: --- src/.vuepress/config.ts | 2 - src/.vuepress/generate-endpoint-pages.ts | 19 +++++++- src/docs/api/common.json5 | 62 ++++++++++++++++++++++++ src/docs/api/entity/index.md | 3 -- src/docs/api/entity/note.md | 38 --------------- src/docs/api/entity/notification.md | 20 -------- src/docs/api/entity/user.md | 40 --------------- src/en/docs/api/common.json5 | 1 + src/en/docs/api/entity/index.md | 3 -- src/en/docs/api/entity/note.md | 38 --------------- src/en/docs/api/entity/notification.md | 20 -------- src/en/docs/api/entity/user.md | 40 --------------- 12 files changed, 81 insertions(+), 205 deletions(-) delete mode 100644 src/docs/api/entity/index.md delete mode 100644 src/docs/api/entity/note.md delete mode 100644 src/docs/api/entity/notification.md delete mode 100644 src/docs/api/entity/user.md delete mode 100644 src/en/docs/api/entity/index.md delete mode 100644 src/en/docs/api/entity/note.md delete mode 100644 src/en/docs/api/entity/notification.md delete mode 100644 src/en/docs/api/entity/user.md diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index 0c1ec314f3..bfb899e1a8 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -95,7 +95,6 @@ export default defineUserConfig({ children: [ '/docs/api', '/docs/api/streaming', - '/docs/api/entity', '/docs/api/endpoints.html', '/docs/features/webhook', ] @@ -204,7 +203,6 @@ export default defineUserConfig({ children: [ '/en/docs/api', '/en/docs/api/streaming', - '/en/docs/api/entity', '/en/docs/api/endpoints.html', ] }, diff --git a/src/.vuepress/generate-endpoint-pages.ts b/src/.vuepress/generate-endpoint-pages.ts index e011d93737..1f0e8376ba 100644 --- a/src/.vuepress/generate-endpoint-pages.ts +++ b/src/.vuepress/generate-endpoint-pages.ts @@ -19,7 +19,7 @@ export async function generateEndpointPages(app: App) { }); let content = `--- -filePath: '${`docs/api/endpoints/${name}.json5`}' +filePath: '${locale + `docs/api/endpoints/${name}.json5`}' description: '${def.summary}' --- @@ -99,5 +99,22 @@ description: '${def.summary}' content: indexContent, }); app.pages.push(indexPage); + + for (const [k, v] of Object.entries(commonDef.refs)) { + const page = await createPage(app, { + path: locale + `docs/api/entity/${k}.html`, + content: `--- +filePath: '${locale + `docs/api/common.json5`}' +description: '${v.description}' +--- + +# \`${k}\` + + + + `, + }); + app.pages.push(page); + } } } diff --git a/src/docs/api/common.json5 b/src/docs/api/common.json5 index 1b02599e01..31bbbe29d8 100644 --- a/src/docs/api/common.json5 +++ b/src/docs/api/common.json5 @@ -1,4 +1,66 @@ { + refs: { + user: { + type: 'object', + properties: { + id: { + type: 'string', + }, + createdAt: { + type: 'string', + }, + username: { + type: 'string', + }, + host: { + type: 'string', + nullable: true, + }, + name: { + type: 'string', + }, + onlineStatus: { + type: 'string', + enum: ['online', 'active', 'offline', 'unknown',], + }, + avatarUrl: { + type: 'string', + }, + avatarBlurhash: { + type: 'string', + }, + }, + }, + note: { + type: 'object', + properties: { + id: { + type: 'string', + }, + createdAt: { + type: 'string', + }, + text: { + type: 'string', + nullable: true, + }, + cw: { + type: 'string', + nullable: true, + }, + user: { + $ref: 'misskey://User', + }, + userId: { + type: 'string', + }, + visibility: { + type: 'string', + enum: ['public', 'home', 'followers', 'specified',], + }, + }, + }, + }, errors: { '1384574d-a912-4b81-8601-c7b1c4085df1': { id: '1384574d-a912-4b81-8601-c7b1c4085df1', diff --git a/src/docs/api/entity/index.md b/src/docs/api/entity/index.md deleted file mode 100644 index df5e402792..0000000000 --- a/src/docs/api/entity/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃ - - diff --git a/src/docs/api/entity/note.md b/src/docs/api/entity/note.md deleted file mode 100644 index 415036f7b0..0000000000 --- a/src/docs/api/entity/note.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: "ใƒŽใƒผใƒˆใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚" ---- - -# Note -ใƒŽใƒผใƒˆใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚ - -## ใ‚นใ‚ญใƒผใƒž - - diff --git a/src/docs/api/entity/notification.md b/src/docs/api/entity/notification.md deleted file mode 100644 index 17c1a34e4b..0000000000 --- a/src/docs/api/entity/notification.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -description: "้€š็Ÿฅใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚" ---- - -# Notification -้€š็Ÿฅใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚ - -## ใ‚นใ‚ญใƒผใƒž - - diff --git a/src/docs/api/entity/user.md b/src/docs/api/entity/user.md deleted file mode 100644 index 21508f61db..0000000000 --- a/src/docs/api/entity/user.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -description: "ใƒฆใƒผใ‚ถใƒผใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚" ---- - -# User -ใƒฆใƒผใ‚ถใƒผใ‚’่กจใ™ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใงใ™ใ€‚ - -## ใ‚นใ‚ญใƒผใƒž - - diff --git a/src/en/docs/api/common.json5 b/src/en/docs/api/common.json5 index 3301107df2..4bcf58ad2c 100644 --- a/src/en/docs/api/common.json5 +++ b/src/en/docs/api/common.json5 @@ -1,4 +1,5 @@ { + refs: {}, errors: { '1384574d-a912-4b81-8601-c7b1c4085df1': { id: '1384574d-a912-4b81-8601-c7b1c4085df1', diff --git a/src/en/docs/api/entity/index.md b/src/en/docs/api/entity/index.md deleted file mode 100644 index f2cc88a75c..0000000000 --- a/src/en/docs/api/entity/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Entities - - diff --git a/src/en/docs/api/entity/note.md b/src/en/docs/api/entity/note.md deleted file mode 100644 index 8d547aa0d6..0000000000 --- a/src/en/docs/api/entity/note.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: "Entity representing a note." ---- - -# Note -Entity representing a note. - -## Schema - - diff --git a/src/en/docs/api/entity/notification.md b/src/en/docs/api/entity/notification.md deleted file mode 100644 index 8b57b3aae0..0000000000 --- a/src/en/docs/api/entity/notification.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -description: "Entity representing a notification." ---- - -# Notification -Entity representing a notification. - -## Schema - - diff --git a/src/en/docs/api/entity/user.md b/src/en/docs/api/entity/user.md deleted file mode 100644 index 1aaa23a8d2..0000000000 --- a/src/en/docs/api/entity/user.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -description: "Entity representing a user." ---- - -# User -Entity representing a user. - -## Schema - - From f502031171d552a6f0965fb54e726bfeb240750f Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 23 Aug 2022 16:27:20 +0900 Subject: [PATCH 061/296] Update webhook.md --- src/docs/features/webhook.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/docs/features/webhook.md b/src/docs/features/webhook.md index 625bc57c1d..3abe30a9d4 100644 --- a/src/docs/features/webhook.md +++ b/src/docs/features/webhook.md @@ -16,7 +16,7 @@ WebhookใŒ็™ป้Œฒใ•ใ‚Œใ‚‹ใจใ€ๆŒ‡ๅฎšใ—ใŸใ‚คใƒ™ใƒณใƒˆใŒ็™บ็”Ÿใ—ใŸ้š›ใซใ€ ใƒชใ‚ฏใ‚จใ‚นใƒˆใƒšใ‚คใƒญใƒผใƒ‰ใฏไปฅไธ‹ใฎใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใŒๅ…ฅใ‚Šใพใ™ใ€‚ - Date: Wed, 24 Aug 2022 18:06:44 +0900 Subject: [PATCH 062/296] improve docs --- src/docs/api/endpoints/notes/global-timeline.json5 | 8 ++++---- src/docs/api/endpoints/notes/hybrid-timeline.json5 | 8 ++++---- src/docs/api/endpoints/notes/local-timeline.json5 | 8 ++++---- src/docs/api/endpoints/notes/timeline.json5 | 6 +++--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/docs/api/endpoints/notes/global-timeline.json5 b/src/docs/api/endpoints/notes/global-timeline.json5 index 254337937c..07848a4843 100644 --- a/src/docs/api/endpoints/notes/global-timeline.json5 +++ b/src/docs/api/endpoints/notes/global-timeline.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใŒๅ—ไฟกใ—ใŸๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชๆŠ•็จฟใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,7 +11,7 @@ withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', }, limit: { type: 'integer', @@ -52,7 +52,7 @@ '0332fc13-6ab2-4427-ae80-a9fadffd1a6b': { id: '0332fc13-6ab2-4427-ae80-a9fadffd1a6b', code: 'GTL_DISABLED', - description: '', + description: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใŒ็„กๅŠนใซใชใฃใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/hybrid-timeline.json5 b/src/docs/api/endpoints/notes/hybrid-timeline.json5 index 9802e9892a..ef945be802 100644 --- a/src/docs/api/endpoints/notes/hybrid-timeline.json5 +++ b/src/docs/api/endpoints/notes/hybrid-timeline.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใจ่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -43,7 +43,7 @@ withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', }, }, required: [], @@ -64,7 +64,7 @@ '620763f4-f621-4533-ab33-0577a1a3c342': { id: '620763f4-f621-4533-ab33-0577a1a3c342', code: 'STL_DISABLED', - description: '', + description: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใŒ็„กๅŠนใซใชใฃใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/local-timeline.json5 b/src/docs/api/endpoints/notes/local-timeline.json5 index c1ba03b02d..165506b102 100644 --- a/src/docs/api/endpoints/notes/local-timeline.json5 +++ b/src/docs/api/endpoints/notes/local-timeline.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,7 +11,7 @@ withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', }, fileType: { type: 'array', @@ -62,7 +62,7 @@ '45a6eb02-7695-4393-b023-dd3be9aaaefd': { id: '45a6eb02-7695-4393-b023-dd3be9aaaefd', code: 'LTL_DISABLED', - description: '', + description: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใŒ็„กๅŠนใซใชใฃใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/timeline.json5 b/src/docs/api/endpoints/notes/timeline.json5 index c3a0c2bff6..235aeb49ac 100644 --- a/src/docs/api/endpoints/notes/timeline.json5 +++ b/src/docs/api/endpoints/notes/timeline.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -43,7 +43,7 @@ withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', }, }, required: [], From 13e88af054c6bbde7b5b2e7a86a35e9255d1558b Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 24 Aug 2022 18:25:24 +0900 Subject: [PATCH 063/296] improve docs --- src/docs/api/endpoints/notes/favorites/create.json5 | 10 +++++----- src/docs/api/endpoints/notes/favorites/delete.json5 | 10 +++++----- src/docs/api/endpoints/notes/reactions/create.json5 | 13 +++++++------ src/docs/api/endpoints/notes/reactions/delete.json5 | 10 +++++----- src/docs/api/endpoints/notes/show.json5 | 6 +++--- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/docs/api/endpoints/notes/favorites/create.json5 b/src/docs/api/endpoints/notes/favorites/create.json5 index e8804a0b11..00b455b786 100644 --- a/src/docs/api/endpoints/notes/favorites/create.json5 +++ b/src/docs/api/endpoints/notes/favorites/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Š็™ป้Œฒใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Š็™ป้Œฒใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -22,12 +22,12 @@ '6dd26674-e060-4816-909a-45ba3f4da458': { id: '6dd26674-e060-4816-909a-45ba3f4da458', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6': { id: 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6', code: 'ALREADY_FAVORITED', - description: '', + description: 'ๆ—ขใซใŠๆฐ—ใซๅ…ฅใ‚Š็™ป้Œฒใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notes/favorites/delete.json5 b/src/docs/api/endpoints/notes/favorites/delete.json5 index b74f480a21..7dabca3351 100644 --- a/src/docs/api/endpoints/notes/favorites/delete.json5 +++ b/src/docs/api/endpoints/notes/favorites/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Šใ‹ใ‚‰่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Šใ‹ใ‚‰่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -22,12 +22,12 @@ '80848a2c-398f-4343-baa9-df1d57696c56': { id: '80848a2c-398f-4343-baa9-df1d57696c56', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, 'b625fc69-635e-45e9-86f4-dbefbef35af5': { id: 'b625fc69-635e-45e9-86f4-dbefbef35af5', code: 'NOT_FAVORITED', - description: '', + description: 'ใŠๆฐ—ใซๅ…ฅใ‚Š็™ป้Œฒใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notes/reactions/create.json5 b/src/docs/api/endpoints/notes/reactions/create.json5 index 624c9b0653..22b6cd4526 100644 --- a/src/docs/api/endpoints/notes/reactions/create.json5 +++ b/src/docs/api/endpoints/notes/reactions/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใซใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใซใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ—ใพใ™ใ€‚', tags: [ 'reactions', ], @@ -14,6 +14,7 @@ }, reaction: { type: 'string', + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฏUnicode็ตตๆ–‡ๅญ—ใ‚‚ใ—ใใฏใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใงใ™ใ€‚ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใฎๅ ดๅˆใฏใ‚ณใƒญใƒณใง็ตตๆ–‡ๅญ—ๅใ‚’ๆ‹ฌใ‚Šใพใ™ใ€‚', }, }, required: [ @@ -26,17 +27,17 @@ '033d0620-5bfe-4027-965d-980b0c85a3ea': { id: '033d0620-5bfe-4027-965d-980b0c85a3ea', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, '71efcf98-86d6-4e2b-b2ad-9d032369366b': { id: '71efcf98-86d6-4e2b-b2ad-9d032369366b', code: 'ALREADY_REACTED', - description: '', + description: 'ๆ—ขใซใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ—ใฆใ„ใพใ™ใ€‚', }, '20ef5475-9f38-4e4c-bd33-de6d979498ec': { id: '20ef5475-9f38-4e4c-bd33-de6d979498ec', code: 'YOU_HAVE_BEEN_BLOCKED', - description: '', + description: 'ใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใซใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฏ่กŒใˆใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notes/reactions/delete.json5 b/src/docs/api/endpoints/notes/reactions/delete.json5 index 3f369ad9c6..b9113a1e12 100644 --- a/src/docs/api/endpoints/notes/reactions/delete.json5 +++ b/src/docs/api/endpoints/notes/reactions/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใฎใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใฎใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'reactions', ], @@ -22,12 +22,12 @@ '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37': { id: '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, '92f4426d-4196-4125-aa5b-02943e2ec8fc': { id: '92f4426d-4196-4125-aa5b-02943e2ec8fc', code: 'NOT_REACTED', - description: '', + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ—ใฆใ„ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notes/show.json5 b/src/docs/api/endpoints/notes/show.json5 index 093f79af20..51f2101124 100644 --- a/src/docs/api/endpoints/notes/show.json5 +++ b/src/docs/api/endpoints/notes/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -28,7 +28,7 @@ '24fcbfc6-2e37-42b6-8388-c29b3861a08d': { id: '24fcbfc6-2e37-42b6-8388-c29b3861a08d', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } From f922a066959cee66c900ae107f0c9290657ab719 Mon Sep 17 00:00:00 2001 From: Luna Nova <63075513+lunaisnotaboy@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:02:53 -0400 Subject: [PATCH 064/296] Update instances.json5 (#100) Co-authored-by: syuilo --- src/instances.json5 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/instances.json5 b/src/instances.json5 index bdb0dabeac..80364a74b4 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -25,15 +25,16 @@ host: 'minidisc.tokyo', name: 'ใƒŸใƒ‹ใƒ‡ใ‚ฃใ‚นใ‚ฏใ€๏ผญ๏ฝ‰๏ฝŽ๏ฝ‰ใ€€๏ผค๏ฝ‰๏ฝ“๏ฝ•๏ฝ‹๏ฝ•ใ€‘', lang: 'en', -}, -{ +}, { host: 'misskey.social', name: 'Misskey Social', lang: 'it', -}, - { +}, { + host: 'fedi.mint.lgbt', + name: 'Fedimint', + lang: 'en', +}, { host: 'www.foxyhole.io', name: 'FoxyHole', lang: 'it', -} -] +}] From 76cadbfc51ca3b28b0117c929a584668913a0693 Mon Sep 17 00:00:00 2001 From: Seio Inoue Date: Fri, 26 Aug 2022 22:19:54 +0900 Subject: [PATCH 065/296] =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=83=89=E3=83=9D?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=88=E3=81=AE=E6=97=A5=E6=9C=AC=E8=AA=9E?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=20(hashtags,=20drive,=20mute,=20pages)=20(#1?= =?UTF-8?q?05)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add docs in Japanese for hashtag endpoints * Add docs in Japanese for email-address endpoints * Add docs in Japanese for drive and folders endpoints * Add error docs for endpoints/hashtags/show * Add docs for endpoints/drive/ * Add docs for endpoints/mute/ * Add docs for endpoints/pages/ --- src/docs/api/endpoints/drive/files.json5 | 9 +++++-- .../drive/files/attached-notes.json5 | 7 +++--- .../drive/files/check-existence.json5 | 8 +++--- .../api/endpoints/drive/files/create.json5 | 10 ++++---- .../api/endpoints/drive/files/delete.json5 | 11 ++++---- .../endpoints/drive/files/find-by-hash.json5 | 5 ++-- src/docs/api/endpoints/drive/files/find.json5 | 6 +++-- src/docs/api/endpoints/drive/files/show.json5 | 10 +++++--- .../api/endpoints/drive/files/update.json5 | 17 ++++++++----- .../drive/files/upload-from-url.json5 | 12 ++++++--- src/docs/api/endpoints/drive/folders.json5 | 8 ++++-- .../api/endpoints/drive/folders/create.json5 | 8 +++--- .../api/endpoints/drive/folders/delete.json5 | 11 ++++---- .../api/endpoints/drive/folders/find.json5 | 6 +++-- .../api/endpoints/drive/folders/show.json5 | 7 +++--- .../api/endpoints/drive/folders/update.json5 | 11 +++++--- src/docs/api/endpoints/drive/stream.json5 | 7 ++++-- .../endpoints/email-address/available.json5 | 7 ++++-- src/docs/api/endpoints/hashtags/list.json5 | 9 +++++-- src/docs/api/endpoints/hashtags/search.json5 | 8 ++++-- src/docs/api/endpoints/hashtags/show.json5 | 7 +++--- src/docs/api/endpoints/hashtags/trend.json5 | 7 ++++-- src/docs/api/endpoints/hashtags/users.json5 | 4 +++ src/docs/api/endpoints/mute/create.json5 | 15 +++++------ src/docs/api/endpoints/mute/delete.json5 | 13 +++++----- src/docs/api/endpoints/mute/list.json5 | 8 ++++-- src/docs/api/endpoints/pages/create.json5 | 19 +++++++++++--- src/docs/api/endpoints/pages/delete.json5 | 11 ++++---- src/docs/api/endpoints/pages/featured.json5 | 5 ++-- src/docs/api/endpoints/pages/like.json5 | 11 ++++---- src/docs/api/endpoints/pages/show.json5 | 9 ++++--- src/docs/api/endpoints/pages/unlike.json5 | 11 ++++---- src/docs/api/endpoints/pages/update.json5 | 25 +++++++++++++------ .../api/endpoints/username/available.json5 | 6 +++-- 34 files changed, 213 insertions(+), 115 deletions(-) diff --git a/src/docs/api/endpoints/drive/files.json5 b/src/docs/api/endpoints/drive/files.json5 index 2e31413dcf..3d415efd09 100644 --- a/src/docs/api/endpoints/drive/files.json5 +++ b/src/docs/api/endpoints/drive/files.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใฎใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚ใ‚‹ใ„ใฏใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใ€ใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ไปฅไธ‹ใ€ๆŒ‡ๅฎšใฎใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚ใ‚‹ใ„ใฏใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใ€ใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -13,25 +13,30 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒ•ใ‚กใ‚คใƒซใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚null๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใงใ‚ใ‚Œใฐใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, type: { type: 'string', nullable: true, pattern: '^[a-zA-Z\\/\\-*]+$', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎMIMEใ‚ฟใ‚คใƒ—ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/drive/files/attached-notes.json5 b/src/docs/api/endpoints/drive/files/attached-notes.json5 index 8881ac1bfa..a8ccbf8d5d 100644 --- a/src/docs/api/endpoints/drive/files/attached-notes.json5 +++ b/src/docs/api/endpoints/drive/files/attached-notes.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚Œใฆใ„ใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚Œใฆใ„ใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,6 +11,7 @@ fileId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, }, required: [ @@ -33,7 +34,7 @@ 'c118ece3-2e4b-4296-99d1-51756e32d232': { id: 'c118ece3-2e4b-4296-99d1-51756e32d232', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/files/check-existence.json5 b/src/docs/api/endpoints/drive/files/check-existence.json5 index 601a015810..9f65699f3a 100644 --- a/src/docs/api/endpoints/drive/files/check-existence.json5 +++ b/src/docs/api/endpoints/drive/files/check-existence.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒใƒƒใ‚ทใƒฅๅ€คใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ™ใ‚‹ใ‹็ขบ่ชใ—ใพใ™ใ€‚', + description: 'ใƒใƒƒใ‚ทใƒฅๅ€คใ‹ใ‚‰ใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ™ใ‚‹ใ‹็ขบ่ชใ—ใพใ™ใ€‚ใƒ•ใ‚กใ‚คใƒซใฎๅ†…ๅฎนใ‚’ๅ–ๅพ—ใ—ใŸใ„ๅ ดๅˆใฏใ€find-by-hashใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚', tags: [ 'drive', ], @@ -10,6 +10,7 @@ properties: { md5: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎMD5ใƒใƒƒใ‚ทใƒฅๅ€คใ€‚', }, }, required: [ @@ -20,6 +21,7 @@ type: 'boolean', optional: false, nullable: false, + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ™ใ‚Œใฐtrueใงใ™ใ€‚', }, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/drive/files/create.json5 b/src/docs/api/endpoints/drive/files/create.json5 index 982124f103..7fd0916b0d 100644 --- a/src/docs/api/endpoints/drive/files/create.json5 +++ b/src/docs/api/endpoints/drive/files/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -17,17 +17,17 @@ 'f449b209-0c60-4e51-84d5-29486263bfd4': { id: 'f449b209-0c60-4e51-84d5-29486263bfd4', code: 'INVALID_FILE_NAME', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซๅใŒไธๆญฃใงใ™ใ€‚', }, 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2': { id: 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2', code: 'INAPPROPRIATE', - description: '', + description: 'ไธ้ฉๅˆ‡ใชใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚’ๅซใ‚“ใงใ„ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใจๅˆคๅฎšใ•ใ‚Œใพใ—ใŸใ€‚', }, 'd08dbc37-a6a9-463a-8c47-96c32ab5f064': { id: 'd08dbc37-a6a9-463a-8c47-96c32ab5f064', code: 'NO_FREE_SPACE', - description: '', + description: 'ใƒ‰ใƒฉใ‚คใƒ–ใซ็ฉบใๅฎน้‡ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/files/delete.json5 b/src/docs/api/endpoints/drive/files/delete.json5 index 65b46e08b6..013158be68 100644 --- a/src/docs/api/endpoints/drive/files/delete.json5 +++ b/src/docs/api/endpoints/drive/files/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,6 +11,7 @@ fileId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ '908939ec-e52b-4458-b395-1025195cea58': { id: '908939ec-e52b-4458-b395-1025195cea58', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '5eb8d909-2540-4970-90b8-dd6f86088121': { id: '5eb8d909-2540-4970-90b8-dd6f86088121', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ‰Š้™คใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใƒ•ใ‚กใ‚คใƒซใฎๅ‰Š้™คใฏใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๆ‰€ๆœ‰ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใ‚ใ‚‹ใ„ใฏใƒขใƒ‡ใƒฌใƒผใ‚ฟใƒผใฎใฟใŒ่กŒใˆใพใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/drive/files/find-by-hash.json5 b/src/docs/api/endpoints/drive/files/find-by-hash.json5 index 6eb4210c2b..8e8de5239f 100644 --- a/src/docs/api/endpoints/drive/files/find-by-hash.json5 +++ b/src/docs/api/endpoints/drive/files/find-by-hash.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ไธŽใˆใ‚‰ใ‚ŒใŸใƒใƒƒใ‚ทใƒฅๅ€คใ‚’ๆŒใคใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ไธŽใˆใ‚‰ใ‚ŒใŸใƒใƒƒใ‚ทใƒฅๅ€คใ‚’ๆŒใคใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใ‹ใ‚‰ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ™ใ‚‹ใ‹ใฉใ†ใ‹ใ ใ‘ใ‚’็Ÿฅใ‚ŠใŸใ„ๅ ดๅˆใซใฏใ€ check-existenceใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚', tags: [ 'drive', ], @@ -10,6 +10,7 @@ properties: { md5: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎMD5ใƒใƒƒใ‚ทใƒฅๅ€คใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/drive/files/find.json5 b/src/docs/api/endpoints/drive/files/find.json5 index f8ace50623..d772abee97 100644 --- a/src/docs/api/endpoints/drive/files/find.json5 +++ b/src/docs/api/endpoints/drive/files/find.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใฎใƒ‰ใƒฉใ‚คใƒ–ใ‹ใ‚‰ใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -10,12 +10,14 @@ properties: { name: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใ€‚', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใฎidใ€‚null๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใงใ‚ใ‚Œใฐใ€ใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใƒ•ใ‚กใ‚คใƒซใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/drive/files/show.json5 b/src/docs/api/endpoints/drive/files/show.json5 index a7a69a9204..6866a78b74 100644 --- a/src/docs/api/endpoints/drive/files/show.json5 +++ b/src/docs/api/endpoints/drive/files/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -13,6 +13,7 @@ fileId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, }, required: [ @@ -23,6 +24,7 @@ properties: { url: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎURLใ€‚ใ‚ตใƒ ใƒใ‚คใƒซใ‚„webpublicใฎURLใ‹ใ‚‰ใ‚‚ๅ…ƒใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ—ใงใใพใ™ใ€‚', }, }, required: [ @@ -42,12 +44,12 @@ '067bc436-2718-4795-b0fb-ecbe43949e31': { id: '067bc436-2718-4795-b0fb-ecbe43949e31', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '25b73c73-68b1-41d0-bad1-381cfdf6579f': { id: '25b73c73-68b1-41d0-bad1-381cfdf6579f', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ—ใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใƒ•ใ‚กใ‚คใƒซใฎๅ–ๅพ—ใฏใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๆ‰€ๆœ‰ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใ‚ใ‚‹ใ„ใฏใƒขใƒ‡ใƒฌใƒผใ‚ฟใƒผใฎใฟใŒ่กŒใˆใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/files/update.json5 b/src/docs/api/endpoints/drive/files/update.json5 index 36c397c70d..2cf7b2cc58 100644 --- a/src/docs/api/endpoints/drive/files/update.json5 +++ b/src/docs/api/endpoints/drive/files/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใƒปๅ ดๆ‰€ใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎๅๅ‰ใƒปๅ ดๆ‰€ใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,22 +11,27 @@ fileId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, + description: '็งปๅ‹•ๅ…ˆใฎ่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚nullใซ่จญๅฎšใ™ใ‚‹ใจใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ใƒซใƒผใƒˆ้šŽๅฑคใซ็งปๅ‹•ใ—ใพใ™ใ€‚่จญๅฎšใ—ใชใ‘ใ‚Œใฐๅค‰ๆ›ดใ•ใ‚Œใพใ›ใ‚“ใ€‚', }, name: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎๆ–ฐใ—ใ„ๅๅ‰ใ€‚', }, isSensitive: { type: 'boolean', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’้–ฒ่ฆงๆณจๆ„ใซๆŒ‡ๅฎšใ™ใ‚‹ๅ ดๅˆใฏtrue, ๅค–ใ™ๅ ดๅˆใฏfalseใ€‚', }, comment: { type: 'string', nullable: true, maxLength: 512, + description: 'ใƒ•ใ‚กใ‚คใƒซใฎๆ–ฐใ—ใ„ใ‚ญใƒฃใƒ—ใ‚ทใƒงใƒณใ€‚', }, }, required: [ @@ -44,22 +49,22 @@ '395e7156-f9f0-475e-af89-53c3c23080c2': { id: '395e7156-f9f0-475e-af89-53c3c23080c2', code: 'INVALID_FILE_NAME', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซๅใŒไธๆญฃใงใ™ใ€‚', }, 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d': { id: 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '01a53b27-82fc-445b-a0c1-b558465a8ed2': { id: '01a53b27-82fc-445b-a0c1-b558465a8ed2', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใ‚’ๅค‰ๆ›ดใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใƒ•ใ‚กใ‚คใƒซใฎๅค‰ๆ›ดใฏใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ๆ‰€ๆœ‰ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใ‚ใ‚‹ใ„ใฏใƒขใƒ‡ใƒฌใƒผใ‚ฟใƒผใฎใฟใŒ่กŒใˆใพใ™ใ€‚', }, 'ea8fb7a5-af77-4a08-b608-c0218176cd73': { id: 'ea8fb7a5-af77-4a08-b608-c0218176cd73', code: 'NO_SUCH_FOLDER', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/files/upload-from-url.json5 b/src/docs/api/endpoints/drive/files/upload-from-url.json5 index 64af846959..c7f9582b6e 100644 --- a/src/docs/api/endpoints/drive/files/upload-from-url.json5 +++ b/src/docs/api/endpoints/drive/files/upload-from-url.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใฎURLใ‚’ๆŒ‡ๅฎšใ—ใฆใ€ใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎURLใ‚’ๆŒ‡ๅฎšใ—ใฆใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -10,31 +10,37 @@ properties: { url: { type: 'string', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใŒใ‚ใ‚‹URLใ€‚', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: 'ๆ ผ็ดๅ…ˆใฎ่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚', }, isSensitive: { type: 'boolean', default: false, + description: 'ใƒ•ใ‚กใ‚คใƒซใŒ้–ฒ่ฆงๆณจๆ„ใงใ‚ใ‚Œใฐtrueใซ่จญๅฎšใ—ใพใ™ใ€‚', }, comment: { type: 'string', nullable: true, maxLength: 512, default: null, + description: 'ใƒ•ใ‚กใ‚คใƒซใฎใ‚ญใƒฃใƒ—ใ‚ทใƒงใƒณใ€‚', }, marker: { type: 'string', nullable: true, default: null, + description: 'ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ‚’่ญ˜ๅˆฅใ™ใ‚‹ใŸใ‚ใฎใƒžใƒผใ‚ซใƒผใ€‚ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใŒๅฎŒไบ†ใ™ใ‚‹ใจใ€ใ“ใ“ใงๆŒ‡ๅฎšใ—ใŸใƒžใƒผใ‚ซใƒผใ‚’ๅซใ‚€urlUploadFinishedใ‚คใƒ™ใƒณใƒˆใŒใ‚นใƒˆใƒชใƒผใƒ ใซๆตใ•ใ‚Œใพใ™ใ€‚', }, force: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๅŒใ˜ใƒใƒƒใ‚ทใƒฅๅ€คใ‚’ๆŒใคใƒ•ใ‚กใ‚คใƒซใŒใ™ใงใซๅญ˜ๅœจใ—ใฆใ„ใ‚‹ๅ ดๅˆใงใ‚‚ใ€ใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ™ใ€‚', }, }, required: [ @@ -43,4 +49,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/drive/folders.json5 b/src/docs/api/endpoints/drive/folders.json5 index 5901899339..a7124abb6a 100644 --- a/src/docs/api/endpoints/drive/folders.json5 +++ b/src/docs/api/endpoints/drive/folders.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใฎใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚ใ‚‹ใ„ใฏใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใ€ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ไปฅไธ‹ใ€ๆŒ‡ๅฎšใฎใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚ใ‚‹ใ„ใฏใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใ€ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -13,20 +13,24 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใฎidใ€‚null๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใงใ‚ใ‚Œใฐใƒซใƒผใƒˆ้šŽๅฑคใซใ‚ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/drive/folders/create.json5 b/src/docs/api/endpoints/drive/folders/create.json5 index e409318bca..c44df818a9 100644 --- a/src/docs/api/endpoints/drive/folders/create.json5 +++ b/src/docs/api/endpoints/drive/folders/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -12,11 +12,13 @@ type: 'string', default: 'Untitled', maxLength: 200, + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๅๅ‰ใ€‚', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚null๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใงใ‚ใ‚Œใฐใƒซใƒผใƒˆ้šŽๅฑคใซใƒ•ใ‚ฉใƒซใƒ€ใŒไฝœๆˆใ•ใ‚Œใพใ™ใ€‚', }, }, required: [], @@ -32,7 +34,7 @@ '53326628-a00d-40a6-a3cd-8975105c0f95': { id: '53326628-a00d-40a6-a3cd-8975105c0f95', code: 'NO_SUCH_FOLDER', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/folders/delete.json5 b/src/docs/api/endpoints/drive/folders/delete.json5 index 4ef0038d08..fa3003221d 100644 --- a/src/docs/api/endpoints/drive/folders/delete.json5 +++ b/src/docs/api/endpoints/drive/folders/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚ไธญ่บซใŒ็ฉบใฎใƒ•ใ‚ฉใƒซใƒ€ใƒผใ ใ‘ใŒๅ‰Š้™คใงใใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,6 +11,7 @@ folderId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ '1069098f-c281-440f-b085-f9932edbe091': { id: '1069098f-c281-440f-b085-f9932edbe091', code: 'NO_SUCH_FOLDER', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'b0fc8a17-963c-405d-bfbc-859a487295e1': { id: 'b0fc8a17-963c-405d-bfbc-859a487295e1', code: 'HAS_CHILD_FILES_OR_FOLDERS', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒ็ฉบใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/drive/folders/find.json5 b/src/docs/api/endpoints/drive/folders/find.json5 index 10d45d8a7c..2a298a5cc0 100644 --- a/src/docs/api/endpoints/drive/folders/find.json5 +++ b/src/docs/api/endpoints/drive/folders/find.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -10,12 +10,14 @@ properties: { name: { type: 'string', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๅๅ‰ใ€‚', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚null๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใงใ‚ใ‚Œใฐใƒซใƒผใƒˆ้šŽๅฑคใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/drive/folders/show.json5 b/src/docs/api/endpoints/drive/folders/show.json5 index f843fbf4d3..4e1d4f859f 100644 --- a/src/docs/api/endpoints/drive/folders/show.json5 +++ b/src/docs/api/endpoints/drive/folders/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,6 +11,7 @@ folderId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚', }, }, required: [ @@ -28,7 +29,7 @@ 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9': { id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9', code: 'NO_SUCH_FOLDER', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/folders/update.json5 b/src/docs/api/endpoints/drive/folders/update.json5 index 718556c9cc..5c7e66b263 100644 --- a/src/docs/api/endpoints/drive/folders/update.json5 +++ b/src/docs/api/endpoints/drive/folders/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๅๅ‰ใƒปๅ ดๆ‰€ใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๅๅ‰ใƒปๅ ดๆ‰€ใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -11,15 +11,18 @@ folderId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚', }, name: { type: 'string', maxLength: 200, + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎๆ–ฐใ—ใ„ๅๅ‰ใ€‚', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, + description: '็งปๅ‹•ๅ…ˆใฎ่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใฎidใ€‚', }, }, required: [ @@ -37,12 +40,12 @@ 'f7974dac-2c0d-4a27-926e-23583b28e98e': { id: 'f7974dac-2c0d-4a27-926e-23583b28e98e', code: 'NO_SUCH_FOLDER', - description: '', + description: 'ใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1': { id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1', code: 'NO_SUCH_PARENT_FOLDER', - description: '', + description: '่ฆชใƒ•ใ‚ฉใƒซใƒ€ใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/drive/stream.json5 b/src/docs/api/endpoints/drive/stream.json5 index 22b39ffdb6..369dfc96fa 100644 --- a/src/docs/api/endpoints/drive/stream.json5 +++ b/src/docs/api/endpoints/drive/stream.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ใ€ใƒ•ใ‚ฉใƒซใƒ€ใ‚’ๆจชๆ–ญใ—ใฆๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใฎใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใƒ•ใ‚กใ‚คใƒซใฎไธ€่ฆงใ‚’ใ€ใƒ•ใ‚ฉใƒซใƒ€ใ‚’ๆจชๆ–ญใ—ใฆๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'drive', ], @@ -17,14 +17,17 @@ sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, type: { type: 'string', pattern: '^[a-zA-Z\\/\\-*]+$', + description: 'ใƒ•ใ‚กใ‚คใƒซใฎMIMEใ‚ฟใ‚คใƒ—ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/email-address/available.json5 b/src/docs/api/endpoints/email-address/available.json5 index c63ba9339e..52a5873fb7 100644 --- a/src/docs/api/endpoints/email-address/available.json5 +++ b/src/docs/api/endpoints/email-address/available.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใŒๅˆฉ็”จๅฏ่ƒฝใ‹็ขบ่ชใ—ใพใ™ใ€‚', + description: 'ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใŒๅˆฉ็”จๅฏ่ƒฝใ‹็ขบ่ชใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -10,6 +10,7 @@ properties: { emailAddress: { type: 'string', + description: 'ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใ€‚' }, }, required: [ @@ -25,11 +26,13 @@ type: 'boolean', optional: false, nullable: false, + description: 'ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใŒๅˆฉ็”จๅฏ่ƒฝใงใ‚ใ‚Œใฐtrueใงใ™ใ€‚', }, reason: { type: 'string', optional: false, nullable: true, + description: 'ๅˆฉ็”จๅฏ่ƒฝใงใชใ„ๅ ดๅˆใฎ็†็”ฑใ€‚ไปฅไธ‹ใฎใ„ใšใ‚Œใ‹ใฎๅ€คใŒๅ…ฅใ‚Šใพใ™ใ€‚used: ๅŒใ˜ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใ‚’ไฝฟใฃใฆใ„ใ‚‹ไป–ใฎใƒฆใƒผใ‚ถใƒผใŒใ™ใงใซๅญ˜ๅœจใ—ใพใ™ใ€‚format: ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใŒไธๆญฃใงใ™ใ€‚disposable: ไฝฟใ„ๆจใฆใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใงใ™ใ€‚mx: DNSใฎMXใƒฌใ‚ณใƒผใƒ‰ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚ๅˆฉ็”จๅฏ่ƒฝใงใ‚ใ‚ŒใฐnullใŒ่ฟ”ใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/hashtags/list.json5 b/src/docs/api/endpoints/hashtags/list.json5 index aaf40f4e11..c525732725 100644 --- a/src/docs/api/endpoints/hashtags/list.json5 +++ b/src/docs/api/endpoints/hashtags/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'hashtags', ], @@ -13,18 +13,22 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎๆœ€ๅคงๆ•ฐใ€‚', }, attachedToUserOnly: { type: 'boolean', default: false, + description: 'ใƒฆใƒผใ‚ถใƒผใŒไฝฟใฃใŸใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, attachedToLocalUserOnly: { type: 'boolean', default: false, + description: 'ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใŒไฝฟใฃใŸใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, attachedToRemoteUserOnly: { type: 'boolean', default: false, + description: 'ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใŒไฝฟใฃใŸใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, sort: { type: 'string', @@ -42,6 +46,7 @@ '+attachedRemoteUsers', '-attachedRemoteUsers', ], + description: 'ใ‚ฝใƒผใƒˆ้ †ใ€‚+ ใฏ้™้ †ใ€- ใฏๆ˜‡้ †ใ‚’็คบใ—ใพใ™ใ€‚' }, }, required: [ diff --git a/src/docs/api/endpoints/hashtags/search.json5 b/src/docs/api/endpoints/hashtags/search.json5 index 5ca80afb37..cee58fbea8 100644 --- a/src/docs/api/endpoints/hashtags/search.json5 +++ b/src/docs/api/endpoints/hashtags/search.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'hashtags', ], @@ -13,13 +13,16 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎๆœ€ๅคงๆ•ฐใ€‚', }, query: { type: 'string', + description: 'ๆคœ็ดขใซ็”จใ„ใ‚‹ๆ–‡ๅญ—ๅˆ—ใ€‚ๅ…ˆ้ ญไธ€่‡ดใงๆคœ็ดขใ•ใ‚Œใพใ™ใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญ offset ๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, }, required: [ @@ -34,6 +37,7 @@ type: 'string', optional: false, nullable: false, + description: 'ๆคœ็ดข็ตๆžœใ€‚ไฝฟ็”จๆ•ฐใฎ้™้ †ใงใ‚ฝใƒผใƒˆใ•ใ‚Œใพใ™ใ€‚' }, }, errors: {}, diff --git a/src/docs/api/endpoints/hashtags/show.json5 b/src/docs/api/endpoints/hashtags/show.json5 index 162418223f..893acf32e2 100644 --- a/src/docs/api/endpoints/hashtags/show.json5 +++ b/src/docs/api/endpoints/hashtags/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎ่ฉณ็ดฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฎ่ฉณ็ดฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'hashtags', ], @@ -10,6 +10,7 @@ properties: { tag: { type: 'string', + description: 'ๆคœ็ดขๅฏพ่ฑกใฎใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ€‚', }, }, required: [ @@ -27,7 +28,7 @@ '110ee688-193e-4a3a-9ecf-c167b2e6981e': { id: '110ee688-193e-4a3a-9ecf-c167b2e6981e', code: 'NO_SUCH_HASHTAG', - description: '', + description: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/hashtags/trend.json5 b/src/docs/api/endpoints/hashtags/trend.json5 index de94ff3e60..6ae15ec575 100644 --- a/src/docs/api/endpoints/hashtags/trend.json5 +++ b/src/docs/api/endpoints/hashtags/trend.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒˆใƒฌใƒณใƒ‰ใซใ‚ใ‚‹ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒˆใƒฌใƒณใƒ‰ใซใ‚ใ‚‹ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'hashtags', ], @@ -23,11 +23,13 @@ type: 'string', optional: false, nullable: false, + description: 'ใƒˆใƒฌใƒณใƒ‰ใซใ‚ใ‚‹ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ€‚1ๅˆ†ใ”ใจใซๆ›ดๆ–ฐใ•ใ‚Œใพใ™ใ€‚', }, chart: { type: 'array', optional: false, nullable: false, + description: 'ๆœ€่ฟ‘ใฎๆŠ•็จฟใงใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ไฝฟ็”จใ—ใŸใƒฆใƒผใ‚ถใƒผๆ•ฐใ€‚10ๅˆ†ๅ˜ไฝใง้›†่จˆใ•ใ‚Œใ€ๆ–ฐใ—ใ„้ †ใซไธฆในใ‚‰ใ‚Œใพใ™ใ€‚ใคใพใ‚Šใ€ๅ…ˆ้ ญใฎ่ฆ็ด ใฏใ€ใƒฌใ‚นใƒใƒณใ‚นๆ™‚ใ‹ใ‚‰้ŽๅŽป10ๅˆ†้–“ใงใฎใƒฆใƒผใ‚ถใƒผๆ•ฐใซใชใ‚Šใพใ™ใ€‚1ๅˆ†ใ”ใจใซๆ›ดๆ–ฐใ•ใ‚Œใพใ™ใ€‚', items: { type: 'number', optional: false, @@ -38,6 +40,7 @@ type: 'number', optional: false, nullable: false, + description: 'ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’้ŽๅŽป1ๆ™‚้–“ใซไฝฟ็”จใ—ใŸใƒฆใƒผใ‚ถใƒผๆ•ฐใ€‚1ๆ™‚้–“ใ”ใจใซๆ›ดๆ–ฐใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/hashtags/users.json5 b/src/docs/api/endpoints/hashtags/users.json5 index 6247c3e565..11d0f7b79d 100644 --- a/src/docs/api/endpoints/hashtags/users.json5 +++ b/src/docs/api/endpoints/hashtags/users.json5 @@ -16,6 +16,7 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚' }, sort: { type: 'string', @@ -27,6 +28,7 @@ '+updatedAt', '-updatedAt', ], + description: 'ใ‚ฝใƒผใƒˆ้ †ใ€‚+ใฏ้™้ †ใ‚’ใ€-ใฏๆ˜‡้ †ใ‚’็คบใ—ใพใ™ใ€‚followerใฏใƒฆใƒผใ‚ถใƒผใฎใƒ•ใ‚ฉใƒญใƒฏใƒผๆ•ฐใงใ™ใ€‚createdAt, updatedAtใฏใใ‚Œใžใ‚Œใƒฆใƒผใ‚ถใƒผใŒ็™ป้Œฒใ—ใŸๆ™‚ๅˆปใ€ๆœ€ๅพŒใซใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใ ใฃใŸๆ™‚ๅˆปใงใ™ใ€‚', }, state: { type: 'string', @@ -35,6 +37,7 @@ 'alive', ], default: 'all', + description: 'aliveใซใ™ใ‚‹ใจใ€5ๆ—ฅ้–“ไปฅๅ†…ใซใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใงใ‚ใฃใŸใƒฆใƒผใ‚ถใƒผใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, origin: { type: 'string', @@ -44,6 +47,7 @@ 'remote', ], default: 'local', + description: 'ใƒฆใƒผใ‚ถใƒผใฎๆ‰€ๅฑžใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๅŒบๅˆ†ใ€‚local๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰, remoteใซใ™ใ‚‹ใจใ€ใใ‚Œใžใ‚Œใƒญใƒผใ‚ซใƒซใƒปใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚combinedใซใ™ใ‚‹ใจใ€ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผใ‚’ๅฏพ่ฑกใซใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/mute/create.json5 b/src/docs/api/endpoints/mute/create.json5 index e521c5e033..0b99e003d6 100644 --- a/src/docs/api/endpoints/mute/create.json5 +++ b/src/docs/api/endpoints/mute/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,11 +11,12 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒŸใƒฅใƒผใƒˆใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, expiresAt: { type: 'integer', nullable: true, - description: 'A Unix Epoch timestamp that must lie in the future. `null` means an indefinite mute.', + description: 'ใƒŸใƒฅใƒผใƒˆใฎๆœŸ้™ใ€‚ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆŒ‡ๅฎšใ—ใพใ™ใ€‚nullใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€็„กๆœŸ้™ใƒŸใƒฅใƒผใƒˆใซใชใ‚Šใพใ™ใ€‚', }, }, required: [ @@ -27,17 +28,17 @@ '6fef56f3-e765-4957-88e5-c6f65329b8a5': { id: '6fef56f3-e765-4957-88e5-c6f65329b8a5', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'a4619cb2-5f23-484b-9301-94c903074e10': { id: 'a4619cb2-5f23-484b-9301-94c903074e10', code: 'MUTEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '7e7359cb-160c-4956-b08f-4d1c653cd007': { id: '7e7359cb-160c-4956-b08f-4d1c653cd007', code: 'ALREADY_MUTING', - description: '', + description: 'ใ™ใงใซใใฎใƒฆใƒผใ‚ถใƒผใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใฆใ„ใพใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/mute/delete.json5 b/src/docs/api/endpoints/mute/delete.json5 index 1b79860717..66fff053ca 100644 --- a/src/docs/api/endpoints/mute/delete.json5 +++ b/src/docs/api/endpoints/mute/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใฎใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -22,17 +23,17 @@ 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef': { id: 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9': { id: 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9', code: 'MUTEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใซๅฏพใ—ใฆใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '5467d020-daa9-4553-81e1-135c0c35a96d': { id: '5467d020-daa9-4553-81e1-135c0c35a96d', code: 'NOT_MUTING', - description: '', + description: 'ๅฏพ่ฑกใจใชใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ใใ‚‚ใใ‚‚ใƒŸใƒฅใƒผใƒˆใ—ใฆใ„ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/mute/list.json5 b/src/docs/api/endpoints/mute/list.json5 index bd02750da4..fb91e23d2e 100644 --- a/src/docs/api/endpoints/mute/list.json5 +++ b/src/docs/api/endpoints/mute/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŸใƒฅใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใŒ่จญๅฎšใ—ใฆใ„ใ‚‹ใƒŸใƒฅใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 30, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŸใƒฅใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŸใƒฅใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŸใƒฅใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], @@ -29,6 +32,7 @@ type: 'array', optional: false, nullable: false, + description: 'ใƒŸใƒฅใƒผใƒˆใฎไธ€่ฆงใ€‚', items: { type: 'object', optional: false, diff --git a/src/docs/api/endpoints/pages/create.json5 b/src/docs/api/endpoints/pages/create.json5 index 95f751955c..2053a03c3f 100644 --- a/src/docs/api/endpoints/pages/create.json5 +++ b/src/docs/api/endpoints/pages/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', tags: [ 'pages', ], @@ -10,14 +10,17 @@ properties: { title: { type: 'string', + description: 'ใƒšใƒผใ‚ธใฎใ‚ฟใ‚คใƒˆใƒซใ€‚', }, name: { type: 'string', minLength: 1, + description: 'ใƒšใƒผใ‚ธใ‚’ๅ‚็…งใ™ใ‚‹ใจใใฎใƒ‘ใ‚น๏ผˆURLใฎๆœซๅฐพใฎๆ–‡ๅญ—ๅˆ—๏ผ‰ใ€‚ใƒšใƒผใ‚ธ้–“ใง้‡่ค‡ใ—ใฆใฏใ„ใ‘ใพใ›ใ‚“ใ€‚', }, summary: { type: 'string', nullable: true, + description: 'ใƒšใƒผใ‚ธใฎ่ฆ็ด„ใ€‚', }, content: { type: 'array', @@ -25,6 +28,7 @@ type: 'object', additionalProperties: true, }, + description: 'ใƒšใƒผใ‚ธใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใ€‚', }, variables: { type: 'array', @@ -32,14 +36,17 @@ type: 'object', additionalProperties: true, }, + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ๅค‰ๆ•ฐใ€‚', }, script: { type: 'string', + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ใ‚นใ‚ฏใƒชใƒ—ใƒˆ๏ผˆAiScript๏ผ‰ใ€‚', }, eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'ใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใ‚ขใ‚คใ‚ญใƒฃใƒƒใƒ็”ปๅƒใฎใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, font: { type: 'string', @@ -48,14 +55,17 @@ 'sans-serif', ], default: 'sans-serif', + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ใƒ•ใ‚ฉใƒณใƒˆใ€‚', }, alignCenter: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒšใƒผใ‚ธใฎๅ†…ๅฎนใ‚’ไธญๅคฎๆƒใˆใซใ—ใพใ™ใ€‚', }, hideTitleWhenPinned: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ”ใƒณ็•™ใ‚ใ•ใ‚Œใฆใ„ใ‚‹ใจใใซใ‚ฟใ‚คใƒˆใƒซใ‚’้ž่กจ็คบใซใ—ใพใ™ใ€‚', }, }, required: [ @@ -72,17 +82,18 @@ nullable: false, ref: 'Page', $ref: 'misskey://Page', + description: 'ไฝœๆˆใ•ใ‚ŒใŸใƒšใƒผใ‚ธใ€‚', }, errors: { 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c': { id: 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '4650348e-301c-499a-83c9-6aa988c66bc1': { id: '4650348e-301c-499a-83c9-6aa988c66bc1', code: 'NAME_ALREADY_EXISTS', - description: '', + description: 'ๅŒใ˜URLใซใƒšใƒผใ‚ธใŒใ™ใงใซๅญ˜ๅœจใ—ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/pages/delete.json5 b/src/docs/api/endpoints/pages/delete.json5 index f7d83cfc5d..43f90acce5 100644 --- a/src/docs/api/endpoints/pages/delete.json5 +++ b/src/docs/api/endpoints/pages/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', tags: [ 'pages', ], @@ -11,6 +11,7 @@ pageId: { type: 'string', format: 'misskey:id', + description: 'ใƒšใƒผใ‚ธใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ 'eb0c6e1d-d519-4764-9486-52a7e1c6392a': { id: 'eb0c6e1d-d519-4764-9486-52a7e1c6392a', code: 'NO_SUCH_PAGE', - description: '', + description: 'ใƒšใƒผใ‚ธใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '8b741b3e-2c22-44b3-a15f-29949aa1601e': { id: '8b741b3e-2c22-44b3-a15f-29949aa1601e', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒšใƒผใ‚ธใ‚’ๅ‰Š้™คใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ๆ‰€ๆœ‰ใ™ใ‚‹ใƒฆใƒผใ‚ถใฎใฟใŒใƒšใƒผใ‚ธใ‚’ๅ‰Š้™คใงใใพใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/pages/featured.json5 b/src/docs/api/endpoints/pages/featured.json5 index a374cd12fa..09a950176e 100644 --- a/src/docs/api/endpoints/pages/featured.json5 +++ b/src/docs/api/endpoints/pages/featured.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ„ใ„ใญๆ•ฐใฎไธŠไฝ10ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ„ใ„ใญๆ•ฐใฎไธŠไฝ10ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ„ใ„ใญใ‚’ใ‚‚ใ‚‰ใฃใŸใƒšใƒผใ‚ธใฎๆ•ฐใŒ10ใซๆบ€ใŸใชใ„ๅ ดๅˆใฏใ€ใใ‚Œใ‚‰ใ™ในใฆใŒ่ฟ”ใ•ใ‚Œใพใ™ใ€‚', tags: [ 'pages', ], @@ -21,6 +21,7 @@ ref: 'Page', $ref: 'misskey://Page', }, + description: 'ใƒšใƒผใ‚ธใฎไธ€่ฆงใงใ™ใ€‚ใ„ใ„ใญๆ•ฐใฎ้™้ †ใซใ‚ฝใƒผใƒˆใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, errors: {}, } diff --git a/src/docs/api/endpoints/pages/like.json5 b/src/docs/api/endpoints/pages/like.json5 index d76c70a430..bdb2b73164 100644 --- a/src/docs/api/endpoints/pages/like.json5 +++ b/src/docs/api/endpoints/pages/like.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใซใ„ใ„ใญใ‚’ใคใ‘ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใซใ„ใ„ใญใ‚’ใคใ‘ใพใ™ใ€‚', tags: [ 'pages', ], @@ -11,6 +11,7 @@ pageId: { type: 'string', format: 'misskey:id', + description: 'ใƒšใƒผใ‚ธใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ 'cc98a8a2-0dc3-4123-b198-62c71df18ed3': { id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3', code: 'ALREADY_LIKED', - description: '', + description: 'ใ™ใงใซใ„ใ„ใญใ‚’ใคใ‘ใฆใ„ใพใ™ใ€‚', }, '28800466-e6db-40f2-8fae-bf9e82aa92b8': { id: '28800466-e6db-40f2-8fae-bf9e82aa92b8', code: 'YOUR_PAGE', - description: '', + description: '่‡ช่บซใฎใƒšใƒผใ‚ธใซใ„ใ„ใญใ‚’ใคใ‘ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/pages/show.json5 b/src/docs/api/endpoints/pages/show.json5 index d72d38a3b9..39e3bed4b0 100644 --- a/src/docs/api/endpoints/pages/show.json5 +++ b/src/docs/api/endpoints/pages/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'pages', ], @@ -13,6 +13,7 @@ pageId: { type: 'string', format: 'misskey:id', + description: 'ใƒšใƒผใ‚ธใฎidใ€‚', }, }, required: [ @@ -23,9 +24,11 @@ properties: { name: { type: 'string', + description: 'ใƒšใƒผใ‚ธใ‚’ๅ‚็…งใ™ใ‚‹ใจใใฎใƒ‘ใ‚น๏ผˆURLใฎๆœซๅฐพใฎๆ–‡ๅญ—ๅˆ—๏ผ‰ใ€‚', }, username: { type: 'string', + description: 'ใƒšใƒผใ‚ธใ‚’ไฝœๆˆใ—ใŸใƒฆใƒผใ‚ถใƒผใฎใƒฆใƒผใ‚ถใƒผๅใ€‚', }, }, required: [ @@ -46,7 +49,7 @@ '222120c0-3ead-4528-811b-b96f233388d7': { id: '222120c0-3ead-4528-811b-b96f233388d7', code: 'NO_SUCH_PAGE', - description: '', + description: 'ใƒšใƒผใ‚ธใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/pages/unlike.json5 b/src/docs/api/endpoints/pages/unlike.json5 index 9bd0dfcd65..b5ae3f88cb 100644 --- a/src/docs/api/endpoints/pages/unlike.json5 +++ b/src/docs/api/endpoints/pages/unlike.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใธใฎใ„ใ„ใญใ‚’ๅ–ใ‚Šๆถˆใ—ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใธใฎใ„ใ„ใญใ‚’ๅ–ใ‚Šๆถˆใ—ใพใ™ใ€‚', tags: [ 'pages', ], @@ -11,6 +11,7 @@ pageId: { type: 'string', format: 'misskey:id', + description: 'ใƒšใƒผใ‚ธใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ 'a0d41e20-1993-40bd-890e-f6e560ae648e': { id: 'a0d41e20-1993-40bd-890e-f6e560ae648e', code: 'NO_SUCH_PAGE', - description: '', + description: 'ใƒšใƒผใ‚ธใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'f5e586b0-ce93-4050-b0e3-7f31af5259ee': { id: 'f5e586b0-ce93-4050-b0e3-7f31af5259ee', code: 'NOT_LIKED', - description: '', + description: 'ใ„ใ„ใญใ‚’ใคใ‘ใฆใ„ใชใ„ใƒšใƒผใ‚ธใงใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/pages/update.json5 b/src/docs/api/endpoints/pages/update.json5 index 5ad38864a0..f53497efd2 100644 --- a/src/docs/api/endpoints/pages/update.json5 +++ b/src/docs/api/endpoints/pages/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใƒปๅฑžๆ€งใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', + description: 'ใƒšใƒผใ‚ธใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใƒปๅฑžๆ€งใ‚’ๅค‰ๆ›ดใ—ใพใ™ใ€‚', tags: [ 'pages', ], @@ -11,17 +11,21 @@ pageId: { type: 'string', format: 'misskey:id', + description: 'ใƒšใƒผใ‚ธใฎidใ€‚', }, title: { type: 'string', + description: 'ใƒšใƒผใ‚ธใฎใ‚ฟใ‚คใƒˆใƒซใ€‚', }, name: { type: 'string', minLength: 1, + description: 'ใƒšใƒผใ‚ธใ‚’ๅ‚็…งใ™ใ‚‹ใจใใฎใƒ‘ใ‚น๏ผˆURLใฎๆœซๅฐพใฎๆ–‡ๅญ—ๅˆ—๏ผ‰ใ€‚ใƒšใƒผใ‚ธ้–“ใง้‡่ค‡ใ—ใฆใฏใ„ใ‘ใพใ›ใ‚“ใ€‚', }, summary: { type: 'string', nullable: true, + description: 'ใƒšใƒผใ‚ธใฎ่ฆ็ด„ใ€‚', }, content: { type: 'array', @@ -29,6 +33,7 @@ type: 'object', additionalProperties: true, }, + description: 'ใƒšใƒผใ‚ธใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใ€‚', }, variables: { type: 'array', @@ -36,14 +41,17 @@ type: 'object', additionalProperties: true, }, + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ๅค‰ๆ•ฐใ€‚', }, script: { type: 'string', + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ใ‚นใ‚ฏใƒชใƒ—ใƒˆ๏ผˆAiScript๏ผ‰ใ€‚', }, eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'ใƒ‰ใƒฉใ‚คใƒ–ใซใ‚ใ‚‹ใ‚ขใ‚คใ‚ญใƒฃใƒƒใƒ็”ปๅƒใฎใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, font: { type: 'string', @@ -51,12 +59,15 @@ 'serif', 'sans-serif', ], + description: 'ใƒšใƒผใ‚ธใงไฝฟ็”จใ™ใ‚‹ใƒ•ใ‚ฉใƒณใƒˆใ€‚', }, alignCenter: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒšใƒผใ‚ธใฎๅ†…ๅฎนใ‚’ไธญๅคฎๆƒใˆใซใ—ใพใ™ใ€‚', }, hideTitleWhenPinned: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ”ใƒณ็•™ใ‚ใ•ใ‚Œใฆใ„ใ‚‹ใจใใซใ‚ฟใ‚คใƒˆใƒซใ‚’้ž่กจ็คบใซใ—ใพใ™ใ€‚', }, }, required: [ @@ -73,22 +84,22 @@ '21149b9e-3616-4778-9592-c4ce89f5a864': { id: '21149b9e-3616-4778-9592-c4ce89f5a864', code: 'NO_SUCH_PAGE', - description: '', + description: 'ใƒšใƒผใ‚ธใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '3c15cd52-3b4b-4274-967d-6456fc4f792b': { id: '3c15cd52-3b4b-4274-967d-6456fc4f792b', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒšใƒผใ‚ธใ‚’ๅค‰ๆ›ดใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ๆ‰€ๆœ‰ใ™ใ‚‹ใƒฆใƒผใ‚ถใฎใฟใŒใƒšใƒผใ‚ธใ‚’ๅค‰ๆ›ดใงใใพใ™ใ€‚', }, 'cfc23c7c-3887-490e-af30-0ed576703c82': { id: 'cfc23c7c-3887-490e-af30-0ed576703c82', code: 'NO_SUCH_FILE', - description: '', + description: 'ใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab': { id: '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab', code: 'NAME_ALREADY_EXISTS', - description: '', + description: 'ๅŒใ˜URLใซใƒšใƒผใ‚ธใŒใ™ใงใซๅญ˜ๅœจใ—ใพใ™ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/username/available.json5 b/src/docs/api/endpoints/username/available.json5 index 128de5eb05..0b8e226bac 100644 --- a/src/docs/api/endpoints/username/available.json5 +++ b/src/docs/api/endpoints/username/available.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผๅใŒๅˆฉ็”จๅฏ่ƒฝใ‹็ขบ่ชใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผๅใŒๅˆฉ็”จๅฏ่ƒฝใ‹็ขบ่ชใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,6 +11,7 @@ username: { type: 'string', pattern: '^\\w{1,20}$', + description: 'ใƒฆใƒผใ‚ถใƒผๅ', }, }, required: [ @@ -26,6 +27,7 @@ type: 'boolean', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผๅใŒๅˆฉ็”จๅฏ่ƒฝใงใ‚ใ‚Œใฐ true ใงใ™ใ€‚', }, }, required: [ From 7e37117fa678d931ee9b489c4e521d35a0bbe476 Mon Sep 17 00:00:00 2001 From: Seio Inoue Date: Thu, 8 Sep 2022 18:17:12 +0900 Subject: [PATCH 066/296] =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=83=89=E3=83=9D?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=88=E3=81=AE=E6=97=A5=E6=9C=AC=E8=AA=9E?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=20(blocking,=20following,=20notifications,?= =?UTF-8?q?=20federation,=20i)=20(#106)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add docs for endpoints/blocking/ * Add docs for endpoints/following * Add docs for endpoints/notifications/ * Add docs for endpoints/i/ (except group-related ones) * Add docs for endpoints/federation/ --- src/docs/api/endpoints/blocking/create.json5 | 11 ++--- src/docs/api/endpoints/blocking/delete.json5 | 11 ++--- src/docs/api/endpoints/blocking/list.json5 | 8 +++- .../api/endpoints/federation/followers.json5 | 8 +++- .../api/endpoints/federation/following.json5 | 8 +++- .../api/endpoints/federation/instances.json5 | 15 +++++-- .../endpoints/federation/show-instance.json5 | 5 ++- src/docs/api/endpoints/federation/stats.json5 | 7 ++-- .../federation/update-remote-user.json5 | 7 ++-- src/docs/api/endpoints/federation/users.json5 | 8 +++- src/docs/api/endpoints/following/create.json5 | 15 +++---- src/docs/api/endpoints/following/delete.json5 | 11 ++--- .../api/endpoints/following/invalidate.json5 | 11 ++--- .../endpoints/following/requests/accept.json5 | 11 ++--- .../endpoints/following/requests/cancel.json5 | 9 ++-- .../endpoints/following/requests/list.json5 | 4 +- .../endpoints/following/requests/reject.json5 | 9 ++-- src/docs/api/endpoints/i/favorites.json5 | 3 ++ src/docs/api/endpoints/i/gallery/likes.json5 | 7 +++- src/docs/api/endpoints/i/gallery/posts.json5 | 7 +++- .../i/get-word-muted-notes-count.json5 | 7 ++-- src/docs/api/endpoints/i/notifications.json5 | 8 ++++ src/docs/api/endpoints/i/page-likes.json5 | 7 +++- src/docs/api/endpoints/i/pages.json5 | 7 +++- src/docs/api/endpoints/i/pin.json5 | 1 + .../endpoints/i/read-all-unread-notes.json5 | 2 +- .../api/endpoints/i/read-announcement.json5 | 9 ++-- src/docs/api/endpoints/i/unpin.json5 | 1 + src/docs/api/endpoints/i/update.json5 | 42 +++++++++++++++---- .../api/endpoints/i/webhooks/create.json5 | 10 +++-- .../api/endpoints/i/webhooks/delete.json5 | 9 ++-- src/docs/api/endpoints/i/webhooks/list.json5 | 6 +-- src/docs/api/endpoints/i/webhooks/show.json5 | 9 ++-- .../api/endpoints/i/webhooks/update.json5 | 14 +++++-- .../api/endpoints/notifications/create.json5 | 9 ++-- .../notifications/mark-all-as-read.json5 | 6 +-- .../api/endpoints/notifications/read.json5 | 10 +++-- 37 files changed, 219 insertions(+), 113 deletions(-) diff --git a/src/docs/api/endpoints/blocking/create.json5 b/src/docs/api/endpoints/blocking/create.json5 index 7966040e5e..78890f9fcd 100644 --- a/src/docs/api/endpoints/blocking/create.json5 +++ b/src/docs/api/endpoints/blocking/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ–ใƒญใƒƒใ‚ฏใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,17 +29,17 @@ '7cc4f851-e2f1-4621-9633-ec9e1d00c01e': { id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '88b19138-f28d-42c0-8499-6a31bbd0fdc6': { id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6', code: 'BLOCKEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '787fed64-acb9-464a-82eb-afbd745b9614': { id: '787fed64-acb9-464a-82eb-afbd745b9614', code: 'ALREADY_BLOCKING', - description: '', + description: 'ใ™ใงใซใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/blocking/delete.json5 b/src/docs/api/endpoints/blocking/delete.json5 index 8ab4a4ac78..c366ba8e92 100644 --- a/src/docs/api/endpoints/blocking/delete.json5 +++ b/src/docs/api/endpoints/blocking/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใฎใƒ–ใƒญใƒƒใ‚ฏใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒ–ใƒญใƒƒใ‚ฏใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ–ใƒญใƒƒใ‚ฏใ‚’่งฃ้™คใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,17 +29,17 @@ '8621d8bf-c358-4303-a066-5ea78610eb3f': { id: '8621d8bf-c358-4303-a066-5ea78610eb3f', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '06f6fac6-524b-473c-a354-e97a40ae6eac': { id: '06f6fac6-524b-473c-a354-e97a40ae6eac', code: 'BLOCKEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใฎใƒ–ใƒญใƒƒใ‚ฏใ‚’่งฃ้™คใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '291b2efa-60c6-45c0-9f6a-045c8f9b02cd': { id: '291b2efa-60c6-45c0-9f6a-045c8f9b02cd', code: 'NOT_BLOCKING', - description: '', + description: 'ใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใชใ„ใƒฆใƒผใ‚ถใƒผใงใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/blocking/list.json5 b/src/docs/api/endpoints/blocking/list.json5 index 3f62882225..dd59a47da1 100644 --- a/src/docs/api/endpoints/blocking/list.json5 +++ b/src/docs/api/endpoints/blocking/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ–ใƒญใƒƒใ‚ฏใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใŒ่จญๅฎšใ—ใฆใ„ใ‚‹ใƒ–ใƒญใƒƒใ‚ฏใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 30, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒ–ใƒญใƒƒใ‚ฏใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ–ใƒญใƒƒใ‚ฏใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ–ใƒญใƒƒใ‚ฏใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], @@ -29,6 +32,7 @@ type: 'array', optional: false, nullable: false, + description: 'ใƒ–ใƒญใƒƒใ‚ฏใฎไธ€่ฆงใ€‚', items: { type: 'object', optional: false, diff --git a/src/docs/api/endpoints/federation/followers.json5 b/src/docs/api/endpoints/federation/followers.json5 index 68484c6c47..1325bf76f8 100644 --- a/src/docs/api/endpoints/federation/followers.json5 +++ b/src/docs/api/endpoints/federation/followers.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๆ‰€ๅฑžใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๆ‰€ๅฑžใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -10,20 +10,24 @@ properties: { host: { type: 'string', + description: 'ใƒ›ใ‚นใƒˆๅใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚ฉใƒญใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚ฉใƒญใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒ•ใ‚ฉใƒญใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/federation/following.json5 b/src/docs/api/endpoints/federation/following.json5 index 68484c6c47..cd84f7c8f4 100644 --- a/src/docs/api/endpoints/federation/following.json5 +++ b/src/docs/api/endpoints/federation/following.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‹ใ‚‰ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‹ใ‚‰ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -10,20 +10,24 @@ properties: { host: { type: 'string', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒ•ใ‚ฉใƒญใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚' }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ•ใ‚ฉใƒญใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒ•ใ‚ฉใƒญใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/federation/instances.json5 b/src/docs/api/endpoints/federation/instances.json5 index 1f925ab50e..b994fa15bb 100644 --- a/src/docs/api/endpoints/federation/instances.json5 +++ b/src/docs/api/endpoints/federation/instances.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: '่ช่ญ˜ใ—ใฆใ„ใ‚‹ไป–ใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: '่ช่ญ˜ใ—ใฆใ„ใ‚‹ไป–ใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅ„ใƒ‘ใƒฉใƒกใƒผใ‚ฟใ‚’ๆŒ‡ๅฎšใ—ใชใ„ๅ ดๅˆใ€ใใฎใƒ‘ใƒฉใƒกใƒผใ‚ฟใงใฎ็ตžใ‚Š่พผใฟใฏ่กŒใ‚ใ‚Œใพใ›ใ‚“ใ€‚่ค‡ๆ•ฐใฎใƒ‘ใƒฉใƒกใƒผใ‚ฟใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใ‚Œใ‚‰ใฎๆกไปถใ‚’ใ™ในใฆๆบ€ใŸใ™ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -11,44 +11,53 @@ host: { type: 'string', nullable: true, - description: 'Omit or use `null` to not filter by host.', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅ๏ผˆใƒ‰ใƒกใ‚คใƒณใ‚„IPใ‚ขใƒ‰ใƒฌใ‚น๏ผ‰ใ‹ใ€ใใฎไธ€้ƒจใ€‚ใƒ›ใ‚นใƒˆๅใฏ้ƒจๅˆ†ไธ€่‡ดใงๆคœ็ดขใ•ใ‚Œใพใ™ใ€‚', }, blocked: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, notResponding: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ๅฟœ็ญ”ใฎใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ๅฟœ็ญ”ใฎใ‚ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, suspended: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใ‹ใ‚‰ใฎ้…ไฟกใ‚’ๅœๆญขใ—ใฆใ„ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€้…ไฟกใ‚’ๅœๆญขใ—ใฆใ„ใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, federating: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใฎใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ€ใƒญใƒผใ‚ซใƒซใฎใƒฆใƒผใ‚ถใƒผใซใƒ•ใ‚ฉใƒญใƒผใ•ใ‚Œใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ใใฎใ‚ˆใ†ใชใƒฆใƒผใ‚ถใƒผใŒใ„ใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, subscribing: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใƒ•ใ‚ฉใƒญใƒผใ•ใ‚Œใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ใใฎใ‚ˆใ†ใชใƒฆใƒผใ‚ถใƒผใŒใ„ใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, publishing: { type: 'boolean', nullable: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ใใฎใ‚ˆใ†ใชใƒฆใƒผใ‚ถใƒผใŒใ„ใชใ„ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใฟใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 30, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, sort: { type: 'string', + description: 'ใ‚ฝใƒผใƒˆ้ †ใ€‚+ใฏ้™้ †๏ผˆๆ—ฅๆ™‚ใงใ‚ใ‚Œใฐๆ–ฐใ—ใ„้ †๏ผ‰ใ‚’ใ€-ใฏๆ˜‡้ †๏ผˆๅคใ„้ †๏ผ‰ใ‚’็คบใ—ใพใ™ใ€‚notesใฏๆŠ•็จฟๆ•ฐใงใ™ใ€‚usersใฏใƒฆใƒผใ‚ถใƒผๆ•ฐใงใ™ใ€‚followingใฏใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใฎๆ•ฐใงใ™ใ€‚followersใฏใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใฎๆ•ฐใงใ™ใ€‚pubSubใฏใพใšfollowingใงใ‚ฝใƒผใƒˆใ‚’่กŒใ„ใ€ๅŒใ˜ใƒ•ใ‚ฉใƒญใƒผๆ•ฐใงไธฆใ‚“ใ ๅ ดๅˆใ€ใใ‚Œใ‚‰ใฎใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฏfollowersใงใ•ใ‚‰ใซใ‚ฝใƒผใƒˆใ—ใพใ™ใ€‚caughtAtใฏใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็™บ่ฆ‹ๆ™‚ๅˆปใ€lastCommunicatedAtใฏๆœ€ๅพŒใซ้€šไฟกใ‚’่กŒใฃใŸๆ™‚ๅˆปใงใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/federation/show-instance.json5 b/src/docs/api/endpoints/federation/show-instance.json5 index e63fea4893..6a2ff74863 100644 --- a/src/docs/api/endpoints/federation/show-instance.json5 +++ b/src/docs/api/endpoints/federation/show-instance.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ่ฉณ็ดฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ่ฉณ็ดฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -10,6 +10,7 @@ properties: { host: { type: 'string', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/federation/stats.json5 b/src/docs/api/endpoints/federation/stats.json5 index 3cb8098d4e..8fbc3eb4ce 100644 --- a/src/docs/api/endpoints/federation/stats.json5 +++ b/src/docs/api/endpoints/federation/stats.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใƒป้€ฃๅˆใฎ็ตฑ่จˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใƒป้€ฃๅˆใฎ็ตฑ่จˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -13,10 +13,11 @@ minimum: 1, maximum: 100, default: 10, + description: '่ฉณ็ดฐใ‚’ๅ–ๅพ—ใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [], }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/federation/update-remote-user.json5 b/src/docs/api/endpoints/federation/update-remote-user.json5 index 9b3096ef70..d844655fb0 100644 --- a/src/docs/api/endpoints/federation/update-remote-user.json5 +++ b/src/docs/api/endpoints/federation/update-remote-user.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎๆƒ…ๅ ฑใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', + description: 'ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎๆƒ…ๅ ฑใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -19,4 +20,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/federation/users.json5 b/src/docs/api/endpoints/federation/users.json5 index 072c7a8a34..da0bf8f37b 100644 --- a/src/docs/api/endpoints/federation/users.json5 +++ b/src/docs/api/endpoints/federation/users.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๆ‰€ๅฑžใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๆ‰€ๅฑžใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'federation', ], @@ -10,20 +10,24 @@ properties: { host: { type: 'string', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใƒ›ใ‚นใƒˆๅใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒฆใƒผใ‚ถใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚' }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒฆใƒผใ‚ถใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/following/create.json5 b/src/docs/api/endpoints/following/create.json5 index f58ceebcc8..bcb7f97014 100644 --- a/src/docs/api/endpoints/following/create.json5 +++ b/src/docs/api/endpoints/following/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใพใ™ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒญใƒผใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,27 +29,27 @@ 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5': { id: 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '26fbe7bb-a331-4857-af17-205b426669a9': { id: '26fbe7bb-a331-4857-af17-205b426669a9', code: 'FOLLOWEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚ใ€‚', }, '35387507-38c7-4cb9-9197-300b93783fa0': { id: '35387507-38c7-4cb9-9197-300b93783fa0', code: 'ALREADY_FOLLOWING', - description: '', + description: 'ใ™ใงใซใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใพใ™ใ€‚', }, '4e2206ec-aa4f-4960-b865-6c23ac38e2d9': { id: '4e2206ec-aa4f-4960-b865-6c23ac38e2d9', code: 'BLOCKING', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใพใ™ใ€‚', }, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0': { id: 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0', code: 'BLOCKED', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใซใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/following/delete.json5 b/src/docs/api/endpoints/following/delete.json5 index 45008228b2..c0ebd946c2 100644 --- a/src/docs/api/endpoints/following/delete.json5 +++ b/src/docs/api/endpoints/following/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใฎใƒ•ใ‚ฉใƒญใƒผใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒ•ใ‚ฉใƒญใƒผใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒญใƒผใ‚’่งฃ้™คใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,17 +29,17 @@ '5b12c78d-2b28-4dca-99d2-f56139b42ff8': { id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'd9e400b9-36b0-4808-b1d8-79e707f1296c': { id: 'd9e400b9-36b0-4808-b1d8-79e707f1296c', code: 'FOLLOWEE_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ‚’่งฃ้™คใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09': { id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', code: 'NOT_FOLLOWING', - description: '', + description: 'ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใชใ„ใƒฆใƒผใ‚ถใƒผใงใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/following/invalidate.json5 b/src/docs/api/endpoints/following/invalidate.json5 index e8b444dafb..96d5f92fde 100644 --- a/src/docs/api/endpoints/following/invalidate.json5 +++ b/src/docs/api/endpoints/following/invalidate.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ไป–ใฎใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใ‚’็„กๅŠนใซใ—ใพใ™๏ผˆใƒ•ใ‚ฉใƒญใƒฏใƒผใ‚’่งฃ้™คใ—ใพใ™๏ผ‰ใ€‚', + description: 'ไป–ใฎใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใธใฎใƒ•ใ‚ฉใƒญใƒผใ‚’็„กๅŠนใซใ—ใพใ™๏ผˆใƒ•ใ‚ฉใƒญใƒฏใƒผใ‚’่งฃ้™คใ—ใพใ™๏ผ‰ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: '่‡ช่บซใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,17 +29,17 @@ '5b12c78d-2b28-4dca-99d2-f56139b42ff8': { id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '07dc03b9-03da-422d-885b-438313707662': { id: '07dc03b9-03da-422d-885b-438313707662', code: 'FOLLOWER_IS_YOURSELF', - description: '', + description: '่‡ชๅˆ†ใ‚’ใƒ•ใ‚ฉใƒญใƒฏใƒผ่งฃ้™คใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09': { id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', code: 'NOT_FOLLOWING', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใซใƒ•ใ‚ฉใƒญใƒผใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/following/requests/accept.json5 b/src/docs/api/endpoints/following/requests/accept.json5 index 3333a81b5c..4d2e59965f 100644 --- a/src/docs/api/endpoints/following/requests/accept.json5 +++ b/src/docs/api/endpoints/following/requests/accept.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒญใƒผใ‚’่จฑๅฏใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ใฃใŸใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใ‚’่จฑๅฏใ—ใพใ™ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒญใƒผใ‚’่จฑๅฏใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ '66ce1645-d66c-46bb-8b79-96739af885bd': { id: '66ce1645-d66c-46bb-8b79-96739af885bd', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'bcde4f8b-0913-4614-8881-614e522fb041': { id: 'bcde4f8b-0913-4614-8881-614e522fb041', code: 'NO_FOLLOW_REQUEST', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/following/requests/cancel.json5 b/src/docs/api/endpoints/following/requests/cancel.json5 index 4a571dd282..39f7b0f599 100644 --- a/src/docs/api/endpoints/following/requests/cancel.json5 +++ b/src/docs/api/endpoints/following/requests/cancel.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: '้€ใฃใŸใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ๅ–ใ‚Šๆถˆใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒไป–ใฎใƒฆใƒผใ‚ถใƒผใซ้€ใฃใŸใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ๅ–ใ‚Šๆถˆใ—ใพใ™ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ใฃใŸ็›ธๆ‰‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -28,12 +29,12 @@ '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab': { id: '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '089b125b-d338-482a-9a09-e2622ac9f8d4': { id: '089b125b-d338-482a-9a09-e2622ac9f8d4', code: 'FOLLOW_REQUEST_NOT_FOUND', - description: '', + description: 'ใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/following/requests/list.json5 b/src/docs/api/endpoints/following/requests/list.json5 index 5055a93b0f..6067543dd3 100644 --- a/src/docs/api/endpoints/following/requests/list.json5 +++ b/src/docs/api/endpoints/following/requests/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใซๅฑŠใ„ใŸใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'following', ], diff --git a/src/docs/api/endpoints/following/requests/reject.json5 b/src/docs/api/endpoints/following/requests/reject.json5 index 692125b593..a554a70a36 100644 --- a/src/docs/api/endpoints/following/requests/reject.json5 +++ b/src/docs/api/endpoints/following/requests/reject.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ•ใ‚ฉใƒญใƒผใ‚’ๆ‹’ๅฆใ—ใพใ™ใ€‚', + description: 'ใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’้€ใฃใŸใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๆ‹’ๅฆใ—ใพใ™ใ€‚', tags: [ 'following', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒ•ใ‚ฉใƒญใƒผใ‚’ๆ‹’ๅฆใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ 'abc2ffa6-25b2-4380-ba99-321ff3a94555': { id: 'abc2ffa6-25b2-4380-ba99-321ff3a94555', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/favorites.json5 b/src/docs/api/endpoints/i/favorites.json5 index 74192de34d..b0924391d7 100644 --- a/src/docs/api/endpoints/i/favorites.json5 +++ b/src/docs/api/endpoints/i/favorites.json5 @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใŠๆฐ—ใซๅ…ฅใ‚Šๆƒ…ๅ ฑใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/i/gallery/likes.json5 b/src/docs/api/endpoints/i/gallery/likes.json5 index e2d4f41a7d..5670e2fe8c 100644 --- a/src/docs/api/endpoints/i/gallery/likes.json5 +++ b/src/docs/api/endpoints/i/gallery/likes.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฎใƒฃใƒฉใƒชใƒผใฎๆŠ•็จฟใซใคใ‘ใŸใ„ใ„ใญใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒใ‚ฎใƒฃใƒฉใƒชใƒผใฎๆŠ•็จฟใซใคใ‘ใŸใ„ใ„ใญใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใ„ใ„ใญใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใ„ใ„ใญใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใ„ใ„ใญใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/i/gallery/posts.json5 b/src/docs/api/endpoints/i/gallery/posts.json5 index a32e2a506e..8a2ae0e07b 100644 --- a/src/docs/api/endpoints/i/gallery/posts.json5 +++ b/src/docs/api/endpoints/i/gallery/posts.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฎใƒฃใƒฉใƒชใƒผใธใฎๆŠ•็จฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใซใ‚ˆใ‚‹ใ‚ฎใƒฃใƒฉใƒชใƒผใธใฎๆŠ•็จฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ๆŠ•็จฟใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ๆŠ•็จฟใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ๆŠ•็จฟใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/i/get-word-muted-notes-count.json5 b/src/docs/api/endpoints/i/get-word-muted-notes-count.json5 index 101a898eda..32f390677d 100644 --- a/src/docs/api/endpoints/i/get-word-muted-notes-count.json5 +++ b/src/docs/api/endpoints/i/get-word-muted-notes-count.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฏใƒผใƒ‰ใƒŸใƒฅใƒผใƒˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎๆ•ฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใฎ่จญๅฎšใซใ‚ˆใ‚Šใƒฏใƒผใƒ‰ใƒŸใƒฅใƒผใƒˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎๆ•ฐใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -19,6 +19,7 @@ type: 'number', optional: false, nullable: false, + description: 'ใƒฏใƒผใƒ‰ใƒŸใƒฅใƒผใƒˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎๆ•ฐใ€‚', }, }, required: [ @@ -26,4 +27,4 @@ ], }, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/notifications.json5 b/src/docs/api/endpoints/i/notifications.json5 index 33302228d1..1b449efcd1 100644 --- a/src/docs/api/endpoints/i/notifications.json5 +++ b/src/docs/api/endpoints/i/notifications.json5 @@ -13,26 +13,32 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹้€š็Ÿฅใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, following: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใ‹ใ‚‰ใฎ้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, unreadOnly: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๆœช่ชญใฎ้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, markAsRead: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ๅ–ๅพ—ใ—ใŸ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', }, includeTypes: { type: 'array', @@ -53,6 +59,7 @@ 'app', ], }, + description: 'ใƒฌใ‚นใƒใƒณใ‚นใซๅซใ‚ใ‚‹้€š็Ÿฅใฎ็จฎ้กžใ€‚ๅ€คใ‚’ๆŒ‡ๅฎšใ—ใชใ„ๅ ดๅˆใ‚„็ฉบใฎ้…ๅˆ—ใ‚’ไธŽใˆใŸๅ ดๅˆใฏใ€ใ™ในใฆใฎ็จฎ้กžใฎ้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, excludeTypes: { type: 'array', @@ -72,6 +79,7 @@ 'groupInvited', 'app', ], + description: 'ใƒฌใ‚นใƒใƒณใ‚นใ‹ใ‚‰้™คๅค–ใ™ใ‚‹้€š็Ÿฅใฎ็จฎ้กžใ€‚ๅ€คใ‚’ๆŒ‡ๅฎšใ—ใชใ„ๅ ดๅˆใ‚„็ฉบใฎ้…ๅˆ—ใ‚’ไธŽใˆใŸๅ ดๅˆใฏใ€ใ™ในใฆใฎ็จฎ้กžใฎ้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚includeTypesใจexcludeTypesใ‚’ไธกๆ–นๆŒ‡ๅฎšใ—ใŸๅ ดๅˆใ€excludeTypesใฏ็„ก่ฆ–ใ•ใ‚Œใพใ™ใ€‚', }, }, }, diff --git a/src/docs/api/endpoints/i/page-likes.json5 b/src/docs/api/endpoints/i/page-likes.json5 index 39c1348c3d..0cc5f72f00 100644 --- a/src/docs/api/endpoints/i/page-likes.json5 +++ b/src/docs/api/endpoints/i/page-likes.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใธใฎใ„ใ„ใญใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒใคใ‘ใŸใƒšใƒผใ‚ธใธใฎใ„ใ„ใญใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใ„ใ„ใญใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใ„ใ„ใญใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใ„ใ„ใญใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/i/pages.json5 b/src/docs/api/endpoints/i/pages.json5 index 76f9e53be3..7cb139dcdb 100644 --- a/src/docs/api/endpoints/i/pages.json5 +++ b/src/docs/api/endpoints/i/pages.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒšใƒผใ‚ธใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใŸใƒšใƒผใ‚ธใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -13,14 +13,17 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒšใƒผใ‚ธใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„้€š็Ÿฅใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/i/pin.json5 b/src/docs/api/endpoints/i/pin.json5 index 3d6a871e47..591afa2e3e 100644 --- a/src/docs/api/endpoints/i/pin.json5 +++ b/src/docs/api/endpoints/i/pin.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒ”ใƒณ็•™ใ‚ใซ็™ป้Œฒใ™ใ‚‹ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/i/read-all-unread-notes.json5 b/src/docs/api/endpoints/i/read-all-unread-notes.json5 index 3f4a53a248..69a9444ca4 100644 --- a/src/docs/api/endpoints/i/read-all-unread-notes.json5 +++ b/src/docs/api/endpoints/i/read-all-unread-notes.json5 @@ -12,4 +12,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/read-announcement.json5 b/src/docs/api/endpoints/i/read-announcement.json5 index 52564f15e1..8f1171786a 100644 --- a/src/docs/api/endpoints/i/read-announcement.json5 +++ b/src/docs/api/endpoints/i/read-announcement.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใŠ็Ÿฅใ‚‰ใ›ใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', + description: 'ใŠ็Ÿฅใ‚‰ใ›ใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,6 +11,7 @@ announcementId: { type: 'string', format: 'misskey:id', + description: 'ๆ—ข่ชญใซใ™ใ‚‹ใŠ็Ÿฅใ‚‰ใ›ใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ '184663db-df88-4bc2-8b52-fb85f0681939': { id: '184663db-df88-4bc2-8b52-fb85f0681939', code: 'NO_SUCH_ANNOUNCEMENT', - description: '', + description: 'ใŠ็Ÿฅใ‚‰ใ›ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/unpin.json5 b/src/docs/api/endpoints/i/unpin.json5 index 1a9917cfd8..e0f4650e9e 100644 --- a/src/docs/api/endpoints/i/unpin.json5 +++ b/src/docs/api/endpoints/i/unpin.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒ”ใƒณ็•™ใ‚ใ‹ใ‚‰่งฃ้™คใ™ใ‚‹ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/i/update.json5 b/src/docs/api/endpoints/i/update.json5 index af8f74a9eb..116d7ea00a 100644 --- a/src/docs/api/endpoints/i/update.json5 +++ b/src/docs/api/endpoints/i/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซใƒป่จญๅฎšใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใฎใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซใƒป่จญๅฎšใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚ใƒ‘ใƒฉใƒกใƒผใ‚ฟใฎๅ€คใ‚’่จญๅฎšใ—ใชใ‘ใ‚Œใฐใ€ใใฎ้ …็›ฎใฏๅค‰ๆ›ดใ•ใ‚Œใพใ›ใ‚“ใ€‚', tags: [ 'account', ], @@ -13,23 +13,27 @@ minLength: 1, maxLength: 50, nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎๅๅ‰ใ€‚', }, description: { type: 'string', minLength: 1, maxLength: 500, nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎ่‡ชๅทฑ็ดนไป‹ใ€‚', }, location: { type: 'string', minLength: 1, maxLength: 50, nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎๅ ดๆ‰€ใ€‚', }, birthday: { type: 'string', pattern: '^([0-9]{4})-([0-9]{2})-([0-9]{2})$', nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎ่ช•็”Ÿๆ—ฅใ€‚YYYY-MM-DDใฎๅฝขๅผใงๆŒ‡ๅฎšใ—ใพใ™๏ผˆไพ‹๏ผš2001ๅนด9ๆœˆ13ๆ—ฅโ†’2001-09-13๏ผ‰ใ€‚', }, lang: { type: 'string', @@ -258,16 +262,19 @@ 'zu-ZA', ], nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎไฝฟ็”จ่จ€่ชžใ€‚', }, avatarId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎใ‚ขใƒใ‚ฟใƒผ็”ปๅƒใซๅฏพๅฟœใ™ใ‚‹ใ€ใƒ‰ใƒฉใ‚คใƒ–ใฎใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, bannerId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒใƒŠใƒผ็”ปๅƒใซๅฏพๅฟœใ™ใ‚‹ใ€ใƒ‰ใƒฉใ‚คใƒ–ใฎใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, fields: { type: 'array', @@ -288,42 +295,55 @@ 'value', ], }, + description: 'ใƒฆใƒผใ‚ถใƒผใฎ่ฟฝๅŠ ๆƒ…ๅ ฑใ€‚ๆœ€ๅคงใง16ๅ€‹ใฎ่ฆ็ด ใ‚’ๆŒใคใ“ใจใŒใงใใพใ™ใ€‚', }, isLocked: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚ฉใƒญใƒผใ‚’ๆ‰ฟ่ชๅˆถใซใ—ใพใ™ใ€‚ๅๅฏพใซfalseใซใ™ใ‚‹ใจใ€ไป–ใฎใƒฆใƒผใ‚ถใƒผใŒ่‡ช็”ฑใซใƒ•ใ‚ฉใƒญใƒผใงใใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚ใพใŸใ€ใใฎๆ™‚็‚นใงๅ—ใ‘ๅ–ใฃใฆใ„ใŸใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใฏใ™ในใฆๆ‰ฟ่ชใ•ใ‚Œใพใ™ใ€‚', }, isExplorable: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใŒไป–ใฎใƒฆใƒผใ‚ถใƒผใซใƒฌใ‚ณใƒกใƒณใƒ‰ใ•ใ‚Œใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚Misskey Webใงใฏใ€Œใฟใคใ‘ใ‚‹ใ€ใƒšใƒผใ‚ธใซไฝฟ็”จใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, hideOnlineStatus: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใฎใ‚ชใƒณใƒฉใ‚คใƒณ็Šถๆ…‹ใ‚’้š ใ—ใพใ™ใ€‚', }, publicReactions: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใฎ่กŒใฃใŸใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎๅฑฅๆญดใ‚’ๅ…ฌ้–‹ใ—ใพใ™ใ€‚', }, carefulBot: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€Botใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใ‚’ๆ‰ฟ่ชๅˆถใซใ—ใพใ™ใ€‚', }, autoAcceptFollowed: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎใƒ•ใ‚ฉใƒญใƒผใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’่‡ชๅ‹•ใงๆ‰ฟ่ชใ—ใพใ™ใ€‚', }, noCrawle: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใ‚ฏใƒญใƒผใƒฉใƒผใซใ‚ˆใ‚‹ใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใ‚’ๆ‹’ๅฆใ—ใพใ™ใ€‚', }, isBot: { type: 'boolean', + description: 'ใƒฆใƒผใ‚ถใƒผใŒBotใงใ‚ใ‚‹ใชใ‚‰ใฐtrueใซใ—ใพใ™ใ€‚', }, isCat: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใŒใƒใ‚ณใจใ—ใฆๆ‰ฑใ„ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใƒฆใƒผใ‚ถใƒผใฎๆŠ•็จฟใซๅ‡บ็พใ™ใ‚‹ใ€Œใชใ€ใŒใ€Œใซใ‚ƒใ€ใซ็ฝฎๆ›ใ•ใ‚Œใพใ™ใ€‚ใ‚ซใ‚ฟใ‚ซใƒŠใ‚„่‹ฑ่ชžใชใฉใ€ไป–ใฎๆ–‡ๅญ—็จฎใƒป่จ€่ชžใซใคใ„ใฆใ‚‚ๅŒๆง˜ใฎ็ฝฎๆ›ใŒใชใ•ใ‚Œใพใ™ใ€‚', }, showTimelineReplies: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใซใƒŽใƒผใƒˆใธใฎ่ฟ”ไฟกใ‚’่กจ็คบใ—ใพใ™ใ€‚', }, injectFeaturedNote: { type: 'boolean', + description: '', }, receiveAnnouncementEmail: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใŠ็Ÿฅใ‚‰ใ›ใ‚’ใƒกใƒผใƒซใงๅ—ใ‘ๅ–ใ‚Šใพใ™ใ€‚', }, alwaysMarkNsfw: { type: 'boolean', @@ -338,6 +358,7 @@ 'followers', 'private', ], + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒ•ใ‚ฉใƒญใƒผใƒปใƒ•ใ‚ฉใƒญใƒฏใƒผ้–ขไฟ‚ใฎๅ…ฌ้–‹็ฏ„ๅ›ฒใ€‚publicใซใ™ใ‚‹ใจๅ…จไฝ“ใซใ€followersใซใ™ใ‚‹ใจใƒ•ใ‚ฉใƒญใƒฏใƒผใฎใฟใซๅ…ฌ้–‹ใ•ใ‚Œใพใ™ใ€‚privateใซใ™ใ‚‹ใจ่ชฐใซใ‚‚ๅ…ฌ้–‹ใ•ใ‚Œใพใ›ใ‚“ใ€‚', }, pinnedPageId: { type: 'array', @@ -345,15 +366,18 @@ type: 'string', format: 'misskey:id', }, + description: 'ใƒ”ใƒณ็•™ใ‚ใ™ใ‚‹ใƒšใƒผใ‚ธใฎidใ€‚', }, mutedWords: { type: 'array', + description: 'ใƒŸใƒฅใƒผใƒˆใƒฏใƒผใƒ‰ใ€‚', }, mutedInstances: { type: 'array', items: { type: 'string', }, + description: 'ใƒŸใƒฅใƒผใƒˆใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใ‚ขใƒ‰ใƒฌใ‚นใ€‚', }, mutingNotificationTypes: { type: 'array', @@ -374,12 +398,14 @@ 'app', ], }, + description: 'ใƒŸใƒฅใƒผใƒˆใ™ใ‚‹้€š็Ÿฅใฎ็จฎ้กžใ€‚', }, emailNotificationTypes: { type: 'array', items: { type: 'string', }, + description: 'ใƒกใƒผใƒซใ‚’้€ใ‚‹้€š็Ÿฅใฎ็จฎ้กžใ€‚', }, }, }, @@ -394,32 +420,32 @@ '539f3a45-f215-4f81-a9a8-31293640207f': { id: '539f3a45-f215-4f81-a9a8-31293640207f', code: 'NO_SUCH_AVATAR', - description: '', + description: 'ใ‚ขใƒใ‚ฟใƒผ็”ปๅƒใฎใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '0d8f5629-f210-41c2-9433-735831a58595': { id: '0d8f5629-f210-41c2-9433-735831a58595', code: 'NO_SUCH_BANNER', - description: '', + description: 'ใƒใƒŠใƒผ็”ปๅƒใฎใƒ•ใ‚กใ‚คใƒซใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191': { id: 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191', code: 'AVATAR_NOT_AN_IMAGE', - description: '', + description: 'ใ‚ขใƒใ‚ฟใƒผ็”ปๅƒใซใ€็”ปๅƒใงใฏใชใ„ใƒ•ใ‚กใ‚คใƒซใŒๆŒ‡ๅฎšใ•ใ‚Œใพใ—ใŸใ€‚', }, '75aedb19-2afd-4e6d-87fc-67941256fa60': { id: '75aedb19-2afd-4e6d-87fc-67941256fa60', code: 'BANNER_NOT_AN_IMAGE', - description: '', + description: 'ใƒใƒŠใƒผ็”ปๅƒใซใ€็”ปๅƒใงใฏใชใ„ใƒ•ใ‚กใ‚คใƒซใŒๆŒ‡ๅฎšใ•ใ‚Œใพใ—ใŸใ€‚', }, '8e01b590-7eb9-431b-a239-860e086c408e': { id: '8e01b590-7eb9-431b-a239-860e086c408e', code: 'NO_SUCH_PAGE', - description: '', + description: 'ใƒšใƒผใ‚ธใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '0d786918-10df-41cd-8f33-8dec7d9a89a5': { id: '0d786918-10df-41cd-8f33-8dec7d9a89a5', code: 'INVALID_REGEXP', - description: '', + description: 'ๆญฃ่ฆ่กจ็พใŒไธๆญฃใงใ™ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/i/webhooks/create.json5 b/src/docs/api/endpoints/i/webhooks/create.json5 index 5e685fa6df..7b7cf6e024 100644 --- a/src/docs/api/endpoints/i/webhooks/create.json5 +++ b/src/docs/api/endpoints/i/webhooks/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'Webhookใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', + description: 'Webhookใ‚’ไฝœๆˆใ—ใพใ™ใ€‚Webhookใซใคใ„ใฆใฎ่ฉณ็ดฐใฏ่ฉฒๅฝ“ใ™ใ‚‹้ …็›ฎใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚', tags: [ 'webhooks', ], @@ -12,16 +12,19 @@ type: 'string', minLength: 1, maxLength: 100, + description: 'Webhookใฎๅๅ‰ใ€‚', }, url: { type: 'string', minLength: 1, maxLength: 1024, + description: 'URLใ€‚onใงๆŒ‡ๅฎšใ™ใ‚‹ใ‚คใƒ™ใƒณใƒˆใŒ็™บ็”Ÿใ™ใ‚‹ใจใ€urlใงๆŒ‡ๅฎšใ—ใŸURLใซHTTPใƒชใ‚ฏใ‚จใ‚นใƒˆใŒ้€ไฟกใ•ใ‚Œใพใ™ใ€‚', }, secret: { type: 'string', minLength: 1, maxLength: 1024, + description: 'ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ€‚HTTPใƒชใ‚ฏใ‚จใ‚นใƒˆใฎX-Misskey-Hook-Secretใฎๅ€คใซ่จญๅฎšใ•ใ‚Œใพใ™ใ€‚', }, on: { type: 'array', @@ -38,6 +41,7 @@ 'reaction', ], }, + description: 'ๅฏพ่ฑกใจใชใ‚‹ใ‚คใƒ™ใƒณใƒˆใ€‚ๅ„ใ‚คใƒ™ใƒณใƒˆใฎ็™บ็”Ÿๆกไปถใ‚„ใ€HTTPใƒชใ‚ฏใ‚จใ‚นใƒˆใซๅซใพใ‚Œใ‚‹ๆƒ…ๅ ฑใซใคใ„ใฆใฏใ€Webhookใฎ้ …็›ฎใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚', }, }, required: [ @@ -49,4 +53,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/webhooks/delete.json5 b/src/docs/api/endpoints/i/webhooks/delete.json5 index 017c054e5e..062679180c 100644 --- a/src/docs/api/endpoints/i/webhooks/delete.json5 +++ b/src/docs/api/endpoints/i/webhooks/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'Webhookใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'Webhookใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', tags: [ 'webhooks', ], @@ -11,6 +11,7 @@ webhookId: { type: 'string', format: 'misskey:id', + description: 'Webhookใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ 'bae73e5a-5522-4965-ae19-3a8688e71d82': { id: 'bae73e5a-5522-4965-ae19-3a8688e71d82', code: 'NO_SUCH_WEBHOOK', - description: '', + description: 'WebhookใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/webhooks/list.json5 b/src/docs/api/endpoints/i/webhooks/list.json5 index c130904349..f7bd474b9e 100644 --- a/src/docs/api/endpoints/i/webhooks/list.json5 +++ b/src/docs/api/endpoints/i/webhooks/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'Webhookใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒ่จญๅฎšใ—ใฆใ„ใ‚‹Webhookใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'webhooks', ], @@ -12,4 +12,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/webhooks/show.json5 b/src/docs/api/endpoints/i/webhooks/show.json5 index 6efeaa8ebc..4f9ec4d251 100644 --- a/src/docs/api/endpoints/i/webhooks/show.json5 +++ b/src/docs/api/endpoints/i/webhooks/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'Webhookใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ไธŽใˆใ‚‰ใ‚ŒใŸidใซๅฏพๅฟœใ™ใ‚‹Webhookใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'webhooks', ], @@ -11,6 +11,7 @@ webhookId: { type: 'string', format: 'misskey:id', + description: 'Webhookใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ '50f614d9-3047-4f7e-90d8-ad6b2d5fb098': { id: '50f614d9-3047-4f7e-90d8-ad6b2d5fb098', code: 'NO_SUCH_WEBHOOK', - description: '', + description: 'WebhookใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/i/webhooks/update.json5 b/src/docs/api/endpoints/i/webhooks/update.json5 index 06dfd8948b..64e0a4eaa1 100644 --- a/src/docs/api/endpoints/i/webhooks/update.json5 +++ b/src/docs/api/endpoints/i/webhooks/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'Webhookใฎ่จญๅฎšใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', + description: 'Webhookใฎ่จญๅฎšใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', tags: [ 'webhooks', ], @@ -11,21 +11,25 @@ webhookId: { type: 'string', format: 'misskey:id', + description: 'Webhookใฎidใ€‚', }, name: { type: 'string', minLength: 1, maxLength: 100, + description: 'Webhookใฎๅๅ‰ใ€‚', }, url: { type: 'string', minLength: 1, maxLength: 1024, + description: 'URLใ€‚', }, secret: { type: 'string', minLength: 1, maxLength: 1024, + description: 'ใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ€‚', }, on: { type: 'array', @@ -42,9 +46,11 @@ 'reaction', ], }, + description: 'ๅฏพ่ฑกใจใชใ‚‹ใ‚คใƒ™ใƒณใƒˆใ€‚', }, active: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€WebhookใŒๆœ‰ๅŠนใซใชใ‚Šใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€็„กๅŠนใซใชใ‚Šใพใ™ใ€‚Webhookใ‚’ๅ‰Š้™คใ™ใ‚‹ใซใฏใ€ i/webhooks/delete ใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚', }, }, required: [ @@ -61,7 +67,7 @@ 'fb0fea69-da18-45b1-828d-bd4fd1612518': { id: 'fb0fea69-da18-45b1-828d-bd4fd1612518', code: 'NO_SUCH_WEBHOOK', - description: '', + description: 'WebhookใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notifications/create.json5 b/src/docs/api/endpoints/notifications/create.json5 index de92ad5037..449b5acf94 100644 --- a/src/docs/api/endpoints/notifications/create.json5 +++ b/src/docs/api/endpoints/notifications/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ขใƒ—ใƒชใ‹ใ‚‰ใฎ้€š็Ÿฅใ‚’่กŒใ„ใพใ™ใ€‚', + description: 'ใ‚ขใƒ—ใƒชใ‹ใ‚‰ใฎ้€š็Ÿฅใ‚’่กŒใ„ใพใ™ใ€‚', tags: [ 'notifications', ], @@ -10,14 +10,17 @@ properties: { body: { type: 'string', + description: '้€š็Ÿฅใฎๆœฌๆ–‡ใ€‚', }, header: { type: 'string', nullable: true, + description: '้€š็Ÿฅใฎใƒ˜ใƒƒใƒ€ใƒผใ€‚ใ‚ขใƒ—ใƒชใฎๅๅ‰ใชใฉใ‚’่จญๅฎšใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚', }, icon: { type: 'string', nullable: true, + description: '้€š็Ÿฅใฎใ‚ขใ‚คใ‚ณใƒณ็”ปๅƒใธใฎURLใ€‚', }, }, required: [ @@ -26,4 +29,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notifications/mark-all-as-read.json5 b/src/docs/api/endpoints/notifications/mark-all-as-read.json5 index 1542115d23..20e7cf9bba 100644 --- a/src/docs/api/endpoints/notifications/mark-all-as-read.json5 +++ b/src/docs/api/endpoints/notifications/mark-all-as-read.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ™ในใฆใฎ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒๅ—ใ‘ๅ–ใฃใŸใ™ในใฆใฎ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', tags: [ 'notifications', ], @@ -12,4 +12,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/notifications/read.json5 b/src/docs/api/endpoints/notifications/read.json5 index c16c08668f..2b607aed14 100644 --- a/src/docs/api/endpoints/notifications/read.json5 +++ b/src/docs/api/endpoints/notifications/read.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใ—ใพใ™ใ€‚', tags: [ 'notifications', ], @@ -13,6 +13,7 @@ notificationId: { type: 'string', format: 'misskey:id', + description: 'ๆ—ข่ชญใซใ™ใ‚‹้€š็Ÿฅใฎidใ€‚', }, }, required: [ @@ -27,6 +28,7 @@ items: { type: 'string', format: 'misskey:id', + description: 'ๆ—ข่ชญใซใ™ใ‚‹้€š็Ÿฅใฎidใฎ้…ๅˆ—ใ€‚', }, maxItems: 100, }, @@ -42,7 +44,7 @@ 'efa929d5-05b5-47d1-beec-e6a4dbed011e': { id: 'efa929d5-05b5-47d1-beec-e6a4dbed011e', code: 'NO_SUCH_NOTIFICATION', - description: '', + description: '้€š็ŸฅใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} From c3820b9a500105b9fa8dfa521f18cf1d39b829a5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 10 Sep 2022 19:29:10 +0900 Subject: [PATCH 067/296] Update releases.md --- src/docs/releases.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 78b3064e9d..5456210cb6 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,19 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 12.119.0 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2022/09/10 + +### Improvements +- Client: Add following badge to user preview popup @nvisser +- Client: mobile twitter url can be used as widget @caipira113 +- Client: Improve clock widget @syuilo + +### Bugfixes +- ใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใซๅคฑๆ•—ใ™ใ‚‹ๅ•้กŒใ‚’ไฟฎๆญฃ +- Server: ไป–ไบบใฎ้€š็Ÿฅใ‚’ๆ—ข่ชญใซใงใใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚‹ใฎใ‚’ไฟฎๆญฃ @syuilo +- Client: ใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณ็ฎก็†็”ป้ขใ€ใ‚ขใ‚ซใ‚ฆใƒณใƒˆ็ฎก็†็”ป้ข่กจ็คบใงใใชใ„ใฎใ‚’ไฟฎๆญฃ @futchitwo + ## 12.118.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2022/08/07 From 6c112052cbc4ea56e3c69ee82f2f0f9da2288996 Mon Sep 17 00:00:00 2001 From: Geshi Date: Fri, 14 Oct 2022 08:38:34 +0200 Subject: [PATCH 068/296] Update instances.json5 (#84) Co-authored-by: syuilo --- src/instances.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index 80364a74b4..bf18ec704b 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -25,6 +25,10 @@ host: 'minidisc.tokyo', name: 'ใƒŸใƒ‹ใƒ‡ใ‚ฃใ‚นใ‚ฏใ€๏ผญ๏ฝ‰๏ฝŽ๏ฝ‰ใ€€๏ผค๏ฝ‰๏ฝ“๏ฝ•๏ฝ‹๏ฝ•ใ€‘', lang: 'en', +}, { + host: 'miruku.cafe', + name: 'Miruku', + lang: 'en', }, { host: 'misskey.social', name: 'Misskey Social', From 4cec39bb236bf2623ce81adc4f105b2d397ee170 Mon Sep 17 00:00:00 2001 From: m2en Date: Wed, 9 Nov 2022 15:15:36 +0900 Subject: [PATCH 069/296] docs: Fix Node.js prerequisites (#110) --- src/docs/install/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/install/manual.md b/src/docs/install/manual.md index 63fc4c6e9f..7678da9bea 100644 --- a/src/docs/install/manual.md +++ b/src/docs/install/manual.md @@ -9,7 +9,7 @@ Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ ::: tip ๅ‰ๆๆกไปถ ไปฅไธ‹ใฎใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒป่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจ -- **[Node.js](https://nodejs.org/en/)** (16.x) +- **[Node.js](https://nodejs.org/en/)** (16.xไปฅไธŠ) - **[PostgreSQL](https://www.postgresql.org/)** (10ไปฅไธŠ) - **[Redis](https://redis.io/)** - **[Yarn](https://yarnpkg.com/)** (v1็ณป) From d4c47988ec206e28151d6ccb791e09b14e3971a2 Mon Sep 17 00:00:00 2001 From: corite <52169276+corite@users.noreply.github.com> Date: Thu, 10 Nov 2022 10:14:26 +0100 Subject: [PATCH 070/296] fix: typo in nginx docs (#111) --- src/en/docs/admin/nginx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en/docs/admin/nginx.md b/src/en/docs/admin/nginx.md index 59daa4a1ad..9c07358203 100644 --- a/src/en/docs/admin/nginx.md +++ b/src/en/docs/admin/nginx.md @@ -10,7 +10,7 @@ 4. Run `sudo nginx -t` to verify that the configuration file will be loaded successfully. 5. Run `sudo systemctl restart nginx` to restart nginx. -# Nginx cofig example +# Nginx config example ```nginx # For WebSocket From 9ef822673cea9df414be7bda340005012c6258d1 Mon Sep 17 00:00:00 2001 From: tamaina Date: Fri, 11 Nov 2022 00:21:11 +0900 Subject: [PATCH 071/296] Update install.md --- src/docs/install.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/docs/install.md b/src/docs/install.md index 5f72912584..18b42ccfae 100644 --- a/src/docs/install.md +++ b/src/docs/install.md @@ -12,7 +12,8 @@ Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๆง‹็ฏ‰ใซ้–ขๅฟƒใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจ [ใ“ใกใ‚‰](./install/bash.html) ## ๅ…จ้ƒจ่‡ชๅŠ›ใงใ‚คใƒณใ‚นใƒˆใƒผใƒซ -[ใ“ใกใ‚‰](./install/manual.html) +[ๅŸบๆœฌ็ทจ](./install/manual.html)\ +[Ubuntu็‰ˆ่ฉณ็ดฐ่ชฌๆ˜Ž](./install/ubuntu-manual.html) ## YunoHostใ‚’ไฝฟใฃใŸใ‚คใƒณใ‚นใƒˆใƒผใƒซ MisskeyใฏYunoHostใงAppใจใ—ใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใงใใพใ™ใ€‚่ฉณใ—ใใฏใ€[Yunohostๅ‘ใ‘ใฎMisskeyใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎใƒชใƒใ‚ธใƒˆใƒช](https://github.com/YunoHost-Apps/misskey_ynh)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ From 584407a73acb992f45f0bb6c7cc6745f9bf00ac3 Mon Sep 17 00:00:00 2001 From: Seio Inoue Date: Sun, 13 Nov 2022 13:41:05 +0900 Subject: [PATCH 072/296] =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=83=89=E3=83=9D?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=88=E3=81=AE=E6=97=A5=E6=9C=AC=E8=AA=9E?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=20(users/,=20auth/session,=20announcements)?= =?UTF-8?q?=20(#113)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add docs for endpoints (users/, announcements , etc.) * Add docs for auth/session * Add a bit of docs for notes/ --- src/docs/api/endpoints/announcements.json5 | 11 +++++-- .../api/endpoints/auth/session/generate.json5 | 9 ++++-- .../api/endpoints/auth/session/show.json5 | 10 +++++-- .../api/endpoints/auth/session/userkey.json5 | 11 ++++--- src/docs/api/endpoints/notes/create.json5 | 19 +++++++++++- src/docs/api/endpoints/notes/show.json5 | 1 + src/docs/api/endpoints/notes/translate.json5 | 10 ++++--- src/docs/api/endpoints/pinned-users.json5 | 4 +-- src/docs/api/endpoints/reset-db.json5 | 6 ++-- src/docs/api/endpoints/stats.json5 | 6 ++-- .../users/get-frequently-replied-users.json5 | 10 +++++-- src/docs/api/endpoints/users/pages.json5 | 8 +++-- src/docs/api/endpoints/users/reactions.json5 | 12 ++++++-- .../api/endpoints/users/recommendation.json5 | 6 ++-- .../api/endpoints/users/report-abuse.json5 | 14 +++++---- .../users/search-by-username-and-host.json5 | 8 +++-- src/docs/api/endpoints/users/search.json5 | 9 ++++-- src/docs/api/endpoints/users/show.json5 | 13 ++++---- src/docs/api/endpoints/users/stats.json5 | 30 +++++++++++++++---- 19 files changed, 141 insertions(+), 56 deletions(-) diff --git a/src/docs/api/endpoints/announcements.json5 b/src/docs/api/endpoints/announcements.json5 index 63fa4439b4..99f6bfa9ee 100644 --- a/src/docs/api/endpoints/announcements.json5 +++ b/src/docs/api/endpoints/announcements.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‹ใ‚‰ใฎใŠ็Ÿฅใ‚‰ใ›ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‹ใ‚‰ใฎใŠ็Ÿฅใ‚‰ใ›ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'meta', ], @@ -13,18 +13,22 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใŠ็Ÿฅใ‚‰ใ›ใฎๆœ€ๅคงๆ•ฐใ€‚', }, withUnreads: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๆœช่ชญใฎใŠ็Ÿฅใ‚‰ใ›ใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚falseใซใ™ใ‚‹ใจใ€ใ™ในใฆใฎใŠ็Ÿฅใ‚‰ใ›ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใŠ็Ÿฅใ‚‰ใ›ใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใŠ็Ÿฅใ‚‰ใ›ใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], @@ -76,6 +80,7 @@ type: 'boolean', optional: true, nullable: false, + description: 'ใŠ็Ÿฅใ‚‰ใ›ใŒๆ—ข่ชญใงใ‚ใ‚Œใฐtrueใซใชใ‚Šใพใ™ใ€‚ใ‚ฏใƒฌใƒ‡ใƒณใ‚ทใƒฃใƒซใ‚’้€ไฟกใ—ใŸๅ ดๅˆใฎใฟ่ฟ”ใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ @@ -89,4 +94,4 @@ }, }, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/auth/session/generate.json5 b/src/docs/api/endpoints/auth/session/generate.json5 index bba087ef23..ba0bf682ca 100644 --- a/src/docs/api/endpoints/auth/session/generate.json5 +++ b/src/docs/api/endpoints/auth/session/generate.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ขใƒ—ใƒชใ‚’่ช่จผใ™ใ‚‹ใŸใ‚ใฎใƒˆใƒผใ‚ฏใƒณใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', + description: 'ใ‚ขใƒ—ใƒชใ‚’่ช่จผใ™ใ‚‹ใŸใ‚ใฎใƒˆใƒผใ‚ฏใƒณใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', tags: [ 'auth', ], @@ -10,6 +10,7 @@ properties: { appSecret: { type: 'string', + description: 'ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ‚ญใƒผใ€‚', }, }, required: [ @@ -25,12 +26,14 @@ type: 'string', optional: false, nullable: false, + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎใƒˆใƒผใ‚ฏใƒณใ€‚', }, url: { type: 'string', optional: false, nullable: false, format: 'url', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎURLใ€‚', }, }, required: [ @@ -42,7 +45,7 @@ '92f93e63-428e-4f2f-a5a4-39e1407fe998': { id: '92f93e63-428e-4f2f-a5a4-39e1407fe998', code: 'NO_SUCH_APP', - description: '', + description: 'ใ‚ขใƒ—ใƒชใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/auth/session/show.json5 b/src/docs/api/endpoints/auth/session/show.json5 index 53f34150e4..99f45bd5dd 100644 --- a/src/docs/api/endpoints/auth/session/show.json5 +++ b/src/docs/api/endpoints/auth/session/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'auth', ], @@ -10,6 +10,7 @@ properties: { token: { type: 'string', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎใƒˆใƒผใ‚ฏใƒณใ€‚', }, }, required: [ @@ -26,6 +27,7 @@ optional: false, nullable: false, format: 'id', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎIDใ€‚', }, app: { type: 'object', @@ -33,11 +35,13 @@ nullable: false, ref: 'App', $ref: 'misskey://App', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใ‚’ไฟๆŒใ™ใ‚‹ใ‚ขใƒ—ใƒชใ€‚', }, token: { type: 'string', optional: false, nullable: false, + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎใƒˆใƒผใ‚ฏใƒณใ€‚', }, }, required: [ @@ -50,7 +54,7 @@ 'bd72c97d-eba7-4adb-a467-f171b8847250': { id: 'bd72c97d-eba7-4adb-a467-f171b8847250', code: 'NO_SUCH_SESSION', - description: '', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/auth/session/userkey.json5 b/src/docs/api/endpoints/auth/session/userkey.json5 index 70cd67ba84..bff903a0b0 100644 --- a/src/docs/api/endpoints/auth/session/userkey.json5 +++ b/src/docs/api/endpoints/auth/session/userkey.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’็™บ่กŒใ—ใพใ™ใ€‚', + description: 'ใ‚ขใƒ—ใƒชใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ‚’็™บ่กŒใ—ใพใ™ใ€‚', tags: [ 'auth', ], @@ -10,9 +10,11 @@ properties: { appSecret: { type: 'string', + description: 'ใ‚ขใƒ—ใƒชใฎใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆใ‚ญใƒผใ€‚', }, token: { type: 'string', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใฎใƒˆใƒผใ‚ฏใƒณใ€‚', }, }, required: [ @@ -29,6 +31,7 @@ type: 'string', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใฎใ‚ขใ‚ฏใ‚ปใ‚นใƒˆใƒผใ‚ฏใƒณใ€‚', }, user: { type: 'object', @@ -47,12 +50,12 @@ 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d': { id: 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d', code: 'NO_SUCH_APP', - description: '', + description: 'ใ‚ขใƒ—ใƒชใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3': { id: '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3', code: 'NO_SUCH_SESSION', - description: '', + description: 'ใ‚ปใƒƒใ‚ทใƒงใƒณใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '8c8a4145-02cc-4cca-8e66-29ba60445a8e': { id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e', diff --git a/src/docs/api/endpoints/notes/create.json5 b/src/docs/api/endpoints/notes/create.json5 index 6d67fa20c8..68c57608ef 100644 --- a/src/docs/api/endpoints/notes/create.json5 +++ b/src/docs/api/endpoints/notes/create.json5 @@ -17,6 +17,7 @@ 'specified', ], default: 'public', + description: 'ใƒŽใƒผใƒˆใฎๅ…ฌ้–‹็ฏ„ๅ›ฒใ€‚', }, visibleUserIds: { type: 'array', @@ -25,32 +26,39 @@ type: 'string', format: 'misskey:id', }, + description: 'ใƒŽใƒผใƒˆใ‚’้–ฒ่ฆงๅฏ่ƒฝใชใƒฆใƒผใ‚ถใƒผใฎidใฎใƒชใ‚นใƒˆใ€‚visibilityใŒspecifiedใฎๅ ดๅˆใฎใฟ้ฉ็”จใ•ใ‚Œใพใ™ใ€‚', }, text: { type: 'string', maxLength: 3000, nullable: true, + description: 'ใƒŽใƒผใƒˆใฎๆœฌๆ–‡ใ€‚', }, cw: { type: 'string', nullable: true, maxLength: 100, + description: 'ใƒŽใƒผใƒˆใฎCWใ€‚', }, localOnly: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใฎใฟใซๆŠ•็จฟใ•ใ‚Œใพใ™ใ€‚', }, noExtractMentions: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๆœฌๆ–‡ใ‹ใ‚‰ใƒกใƒณใ‚ทใƒงใƒณใ‚’ๅฑ•้–‹ใ—ใพใ›ใ‚“ใ€‚', }, noExtractHashtags: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๆœฌๆ–‡ใ‹ใ‚‰ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’ๅฑ•้–‹ใ—ใพใ›ใ‚“ใ€‚', }, noExtractEmojis: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ๆœฌๆ–‡ใ‹ใ‚‰็ตตๆ–‡ๅญ—ใ‚’ๅฑ•้–‹ใ—ใพใ›ใ‚“ใ€‚', }, fileIds: { type: 'array', @@ -61,6 +69,7 @@ type: 'string', format: 'misskey:id', }, + description: 'ๆทปไป˜ใ™ใ‚‹ใƒ•ใ‚กใ‚คใƒซใฎidใ€‚', }, mediaIds: { deprecated: true, @@ -78,16 +87,19 @@ type: 'string', format: 'misskey:id', nullable: true, + description: '่ฟ”ไฟกๅ…ˆใฎใƒŽใƒผใƒˆใฎidใ€‚', }, renoteId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'Renoteๅฏพ่ฑกใฎใƒŽใƒผใƒˆใฎidใ€‚', }, channelId: { type: 'string', format: 'misskey:id', nullable: true, + description: 'ๆŠ•็จฟๅ…ˆใฎใƒใƒฃใƒณใƒใƒซใฎidใ€‚', }, poll: { type: 'object', @@ -103,24 +115,29 @@ minLength: 1, maxLength: 50, }, + description: '้ธๆŠž่‚ขใ€‚', }, multiple: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€่ค‡ๆ•ฐ้ธๆŠžใ‚’่จฑๅฎนใ—ใพใ™ใ€‚', }, expiresAt: { type: 'integer', nullable: true, + description: 'ๆŠ•็ฅจใฎ็ท ใ‚ๅˆ‡ใ‚Šใ€‚ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆŒ‡ๅฎšใ—ใพใ™ใ€‚', }, expiredAfter: { type: 'integer', nullable: true, minimum: 1, + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใƒŽใƒผใƒˆไฝœๆˆใ‹ใ‚‰expiredAfter็ง’ๅพŒใซๆŠ•็ฅจใ‚’็ท ใ‚ๅˆ‡ใ‚Šใพใ™ใ€‚expiresAtใจไฝตใ›ใฆๆŒ‡ๅฎšใ—ใŸๅ ดๅˆใ€expiresAtใŒๅ„ชๅ…ˆใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ 'choices', ], + description: 'ๆŠ•็ฅจใซ้–ขใ™ใ‚‹ใƒ‘ใƒฉใƒกใƒผใ‚ฟใ€‚', }, }, anyOf: [ @@ -202,7 +219,7 @@ '3ac74a84-8fd5-4bb0-870f-01804f82ce15': { id: '3ac74a84-8fd5-4bb0-870f-01804f82ce15', code: 'CANNOT_REPLY_TO_A_PURE_RENOTE', - description: 'ๅ˜็ด”ใชRenoteใ‚’ใซ่ฟ”ไฟกใ™ใ‚‹ใ“ใจใฏใงใใพใ›ใ‚“ใ€‚', + description: 'ๅ˜็ด”ใชRenoteใซ่ฟ”ไฟกใ™ใ‚‹ใ“ใจใฏใงใใพใ›ใ‚“ใ€‚', }, '04da457d-b083-4055-9082-955525eda5a5': { id: '04da457d-b083-4055-9082-955525eda5a5', diff --git a/src/docs/api/endpoints/notes/show.json5 b/src/docs/api/endpoints/notes/show.json5 index 51f2101124..9ec5bed9da 100644 --- a/src/docs/api/endpoints/notes/show.json5 +++ b/src/docs/api/endpoints/notes/show.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/translate.json5 b/src/docs/api/endpoints/notes/translate.json5 index 71c9ce8ea1..7149f2d328 100644 --- a/src/docs/api/endpoints/notes/translate.json5 +++ b/src/docs/api/endpoints/notes/translate.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’็ฟป่จณใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’็ฟป่จณใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,9 +11,11 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, targetLang: { type: 'string', + description: '็ฟป่จณๅ…ˆใฎ่จ€่ชžใ€‚ๅ€คใŒDeepL APIใฎv2/translateใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใฎtarget_langใƒ‘ใƒฉใƒกใƒผใ‚ฟใซๆธกใ•ใ‚Œใพใ™ใ€‚ใŸใ ใ—ใ€ใƒใ‚คใƒ•ใƒณไปฅ้™ใฏ็„ก่ฆ–ใ•ใ‚Œใพใ™ใ€‚ไพ‹๏ผšJAใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจๆ—ฅๆœฌ่ชžใ€DEใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใƒ‰ใ‚คใƒ„่ชžใซ็ฟป่จณใ—ใพใ™ใ€‚EN-GB๏ผˆใ‚คใ‚ฎใƒชใ‚น่‹ฑ่ชž๏ผ‰ใฏEN๏ผˆๅœฐๅŸŸใ‚’้™ๅฎšใ—ใชใ„ใ€Œ่‹ฑ่ชžใ€๏ผ‰ใจใ—ใฆๆ‰ฑใ‚ใ‚Œใพใ™ใ€‚', }, }, required: [ @@ -30,7 +32,7 @@ 'bea9b03f-36e0-49c5-a4db-627a029f8971': { id: 'bea9b03f-36e0-49c5-a4db-627a029f8971', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/pinned-users.json5 b/src/docs/api/endpoints/pinned-users.json5 index 42f3f50d87..cb56accbc4 100644 --- a/src/docs/api/endpoints/pinned-users.json5 +++ b/src/docs/api/endpoints/pinned-users.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ”ใƒณ็•™ใ‚ใ•ใ‚ŒใŸใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใซใ‚ˆใฃใฆใƒ”ใƒณ็•™ใ‚ใ•ใ‚ŒใŸใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], diff --git a/src/docs/api/endpoints/reset-db.json5 b/src/docs/api/endpoints/reset-db.json5 index 8975f41be9..fd33f50f70 100644 --- a/src/docs/api/endpoints/reset-db.json5 +++ b/src/docs/api/endpoints/reset-db.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ๅˆๆœŸๅŒ–ใ—ใฆใ€Redisใฎใƒ‡ใƒผใ‚ฟใ‚’ๆถˆๅŽปใ—ใพใ™ใ€‚', + description: 'ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ๅˆๆœŸๅŒ–ใ—ใฆใ€Redisใฎใƒ‡ใƒผใ‚ฟใ‚’ๆถˆๅŽปใ—ใพใ™ใ€‚NODE_ENV็’ฐๅขƒๅค‰ๆ•ฐใŒtestingใซ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใฎใฟๅ‹•ไฝœใ—ใพใ™ใ€‚', tags: [ 'non-productive', ], @@ -12,4 +12,4 @@ }, res: {}, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/stats.json5 b/src/docs/api/endpoints/stats.json5 index a077f0fe44..255ffde5dd 100644 --- a/src/docs/api/endpoints/stats.json5 +++ b/src/docs/api/endpoints/stats.json5 @@ -38,12 +38,12 @@ driveUsageLocal: { type: 'number', optional: false, nullable: false, - description: '', + description: 'ๆœชๅฎŸ่ฃ…๏ผšๅธธใซ0ใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, driveUsageRemote: { type: 'number', optional: false, nullable: false, - description: '', + description: 'ๆœชๅฎŸ่ฃ…๏ผšๅธธใซ0ใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -57,4 +57,4 @@ ], }, errors: {}, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/users/get-frequently-replied-users.json5 b/src/docs/api/endpoints/users/get-frequently-replied-users.json5 index ae4992e4ce..7249056112 100644 --- a/src/docs/api/endpoints/users/get-frequently-replied-users.json5 +++ b/src/docs/api/endpoints/users/get-frequently-replied-users.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใŒ้ ป็นใซใƒชใƒ—ใƒฉใ‚คใ‚’้€ไฟกใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใŒ้ ป็นใซใƒชใƒ—ใƒฉใ‚คใ‚’้€ไฟกใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๆœ€ๆ–ฐใฎ1000ไปถใฎใƒŽใƒผใƒˆใ‚’ๅฏพ่ฑกใซ้›†่จˆใ‚’่กŒใ„ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,12 +11,14 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [ @@ -43,6 +45,7 @@ type: 'number', optional: false, nullable: false, + description: 'userใซ้€ไฟกใ—ใŸใƒชใƒ—ใƒฉใ‚คๆ•ฐใ‚’ใ€ใ‚ใ‚‹ใƒฆใƒผใ‚ถใƒผใซ้€ใฃใŸๆœ€ๅคงใฎใƒชใƒ—ใƒฉใ‚คๆ•ฐใงๅ‰ฒใฃใŸใ‚‚ใฎใ€‚ๆœ€ๅคงใฎใƒชใƒ—ใƒฉใ‚คใฎ้€ไฟกๅ…ˆใŒuserใงใ‚ใ‚‹ๅ ดๅˆใ€weightใฏ1ใซใชใ‚Šใพใ™ใ€‚', }, }, required: [ @@ -50,12 +53,13 @@ 'weight', ], }, + description: 'ใƒชใƒ—ใƒฉใ‚คใ‚’ใ‚ˆใ้€ไฟกใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎไธ€่ฆงใ€‚', }, errors: { 'e6965129-7b2a-40a4-bae2-cd84cd434822': { id: 'e6965129-7b2a-40a4-bae2-cd84cd434822', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/users/pages.json5 b/src/docs/api/endpoints/users/pages.json5 index 2fedb5e1be..e0a8b94345 100644 --- a/src/docs/api/endpoints/users/pages.json5 +++ b/src/docs/api/endpoints/users/pages.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใ€ๅ…ฌ้–‹ใ—ใฆใ„ใ‚‹ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใ€ๅ…ฌ้–‹ใ—ใฆใ„ใ‚‹ใƒšใƒผใ‚ธใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,20 +11,24 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒšใƒผใ‚ธใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒšใƒผใ‚ธใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚cๅฐใ•ใ„ใƒšใƒผใ‚ธใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/users/reactions.json5 b/src/docs/api/endpoints/users/reactions.json5 index b8e38928ea..dce96a2d1f 100644 --- a/src/docs/api/endpoints/users/reactions.json5 +++ b/src/docs/api/endpoints/users/reactions.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใŒใคใ‘ใŸใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใŒใคใ‘ใŸใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,26 +11,32 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒ•ใ‚กใ‚คใƒซใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒไฝœๆˆใ•ใ‚ŒใŸใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -53,7 +59,7 @@ '673a7dd2-6924-1093-e0c0-e68456ceae5c': { id: '673a7dd2-6924-1093-e0c0-e68456ceae5c', code: 'REACTIONS_NOT_PUBLIC', - description: '', + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใŒๅ…ฌ้–‹ใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/users/recommendation.json5 b/src/docs/api/endpoints/users/recommendation.json5 index 51169b62b4..11807d74e0 100644 --- a/src/docs/api/endpoints/users/recommendation.json5 +++ b/src/docs/api/endpoints/users/recommendation.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใŠใ™ใ™ใ‚ใฎใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใซๅฏพใ—ใฆใ€ใƒ•ใ‚ฉใƒญใƒผใ‚’ใŠใ™ใ™ใ‚ใงใใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -13,10 +13,12 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚' }, }, required: [], diff --git a/src/docs/api/endpoints/users/report-abuse.json5 b/src/docs/api/endpoints/users/report-abuse.json5 index 60d5bdb65d..7dab9e95d7 100644 --- a/src/docs/api/endpoints/users/report-abuse.json5 +++ b/src/docs/api/endpoints/users/report-abuse.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใ‚’้€šๅ ฑใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’้€šๅ ฑใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,11 +11,13 @@ userId: { type: 'string', format: 'misskey:id', + description: '้€šๅ ฑๅฏพ่ฑกใฎใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, comment: { type: 'string', minLength: 1, maxLength: 2048, + description: '้€šๅ ฑใฎ็†็”ฑใ‚’่ชฌๆ˜Žใ™ใ‚‹ๆ–‡็ซ ใ‚„ใƒชใƒณใ‚ฏใ€‚', }, }, required: [ @@ -28,17 +30,17 @@ '1acefcb5-0959-43fd-9685-b48305736cb5': { id: '1acefcb5-0959-43fd-9685-b48305736cb5', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '1e13149e-b1e8-43cf-902e-c01dbfcb202f': { id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f', code: 'CANNOT_REPORT_YOURSELF', - description: '', + description: '่‡ช่บซใ‚’้€šๅ ฑใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, '35e166f5-05fb-4f87-a2d5-adb42676d48f': { id: '35e166f5-05fb-4f87-a2d5-adb42676d48f', code: 'CANNOT_REPORT_THE_ADMIN', - description: '', + description: '็ฎก็†่€…ใ‚’้€šๅ ฑใ—ใ‚ˆใ†ใจใ—ใพใ—ใŸใ€‚', }, }, -} \ No newline at end of file +} diff --git a/src/docs/api/endpoints/users/search-by-username-and-host.json5 b/src/docs/api/endpoints/users/search-by-username-and-host.json5 index 95633ace12..3983e9acb8 100644 --- a/src/docs/api/endpoints/users/search-by-username-and-host.json5 +++ b/src/docs/api/endpoints/users/search-by-username-and-host.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผๅใƒปใƒ›ใ‚นใƒˆๅใ‹ใ‚‰ใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผๅใƒปใƒ›ใ‚นใƒˆๅใ‹ใ‚‰ใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚30ๆ—ฅ้–“ๆŠ•็จฟใฎใชใ„ใƒฆใƒผใ‚ถใƒผใ‚„ใ€ๅ‡็ตใ•ใ‚Œใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฏ้™คๅค–ใ•ใ‚Œใพใ™ใ€‚็ตๆžœใฏใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅพŒใฎๆŠ•็จฟใŒๆ–ฐใ—ใ„้ †ใซใ‚ฝใƒผใƒˆใ•ใ‚Œใพใ™ใ€‚ใƒญใ‚ฐใ‚คใƒณไธญใงใ‚ใ‚Œใฐ๏ผˆ๏ผ่ช่จผๆƒ…ๅ ฑใŒ้€ไฟกใ•ใ‚Œใ‚Œใฐ๏ผ‰ใ€ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ๅ„ชๅ…ˆ็š„ใซๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,20 +11,24 @@ username: { type: 'string', nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผๅใ€‚', }, host: { type: 'string', nullable: true, + description: 'ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅ๏ผˆใƒ‰ใƒกใ‚คใƒณใชใฉ๏ผ‰ใ€‚ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‚’ๅฏพ่ฑกใซใ™ใ‚‹ๅ ดๅˆใฏnullใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, detail: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใฎ่ฉณ็ดฐใชๆƒ…ๅ ฑใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, anyOf: [ diff --git a/src/docs/api/endpoints/users/search.json5 b/src/docs/api/endpoints/users/search.json5 index 3a33454146..81475865e6 100644 --- a/src/docs/api/endpoints/users/search.json5 +++ b/src/docs/api/endpoints/users/search.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ไธŽใˆใ‚‰ใ‚ŒใŸใ‚ฏใ‚จใƒชใ‹ใ‚‰ใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ไธŽใˆใ‚‰ใ‚ŒใŸใ‚ฏใ‚จใƒชใ‹ใ‚‰ใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚30ๆ—ฅ้–“ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใงใชใ„ใƒฆใƒผใ‚ถใƒผใ‚„ใ€ๅ‡็ตใ•ใ‚Œใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฏ้™คๅค–ใ•ใ‚Œใพใ™ใ€‚็ตๆžœใฏใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅพŒใฎๆŠ•็จฟใŒๆ–ฐใ—ใ„้ †ใซใ‚ฝใƒผใƒˆใ•ใ‚Œใพใ™ใ€‚', tags: [ 'users', ], @@ -10,16 +10,19 @@ properties: { query: { type: 'string', + description: 'ๆคœ็ดขใ‚ฏใ‚จใƒชใ€‚@fooใจใ™ใ‚‹ใจใ€fooใงๅง‹ใพใ‚‹ใƒฆใƒผใ‚ถใƒผๅใ‚’ๆŒใคใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚ใใ‚Œไปฅๅค–ใฎๅ ดๅˆใ€ๅๅ‰ใ‚„ใƒฆใƒผใ‚ถใƒผๅใ€่‡ชๅทฑ็ดนไป‹ใซใ‚ฏใ‚จใƒชใŒๅซใพใ‚Œใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆœ€ๅคงๆ•ฐใ€‚', }, origin: { type: 'string', @@ -29,10 +32,12 @@ 'combined', ], default: 'combined', + description: 'ใƒฆใƒผใ‚ถใƒผใฎๆ‰€ๅฑžใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๅŒบๅˆ†ใ€‚local, remoteใซใ™ใ‚‹ใจใ€ใใ‚Œใžใ‚Œใƒญใƒผใ‚ซใƒซใƒปใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚combined๏ผˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ๏ผ‰ใซใ™ใ‚‹ใจใ€ใ™ในใฆใฎใƒฆใƒผใ‚ถใƒผใ‚’ๅฏพ่ฑกใซใ—ใพใ™ใ€‚', }, detail: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใฎ่ฉณ็ดฐใชๆƒ…ๅ ฑใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/users/show.json5 b/src/docs/api/endpoints/users/show.json5 index f5262a6b39..64fbd387b5 100644 --- a/src/docs/api/endpoints/users/show.json5 +++ b/src/docs/api/endpoints/users/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใฎๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใฎๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -13,6 +13,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -27,6 +28,7 @@ items: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, }, @@ -38,11 +40,12 @@ properties: { username: { type: 'string', + description: 'ใƒฆใƒผใ‚ถใƒผๅใ€‚', }, host: { type: 'string', nullable: true, - description: 'The local host is represented with `null`.', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๆ‰€ๅฑžใ™ใ‚‹ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ›ใ‚นใƒˆๅ๏ผˆใƒ‰ใƒกใ‚คใƒณใชใฉ๏ผ‰ใ€‚ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใ‚’ๅฏพ่ฑกใซใ™ใ‚‹ๅ ดๅˆใฏnullใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚', }, }, required: [ @@ -74,12 +77,12 @@ 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c': { id: 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c', code: 'FAILED_TO_RESOLVE_REMOTE_USER', - description: '', + description: 'ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎๆคœ็ดขใซๅคฑๆ•—ใ—ใพใ—ใŸใ€‚', }, '4362f8dc-731f-4ad8-a694-be5a88922a24': { id: '4362f8dc-731f-4ad8-a694-be5a88922a24', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/users/stats.json5 b/src/docs/api/endpoints/users/stats.json5 index 16bd475147..33a7d302bf 100644 --- a/src/docs/api/endpoints/users/stats.json5 +++ b/src/docs/api/endpoints/users/stats.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒฆใƒผใ‚ถใƒผใฎ็ตฑ่จˆๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒฆใƒผใ‚ถใƒผใฎ็ตฑ่จˆๆƒ…ๅ ฑใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'users', ], @@ -11,6 +11,7 @@ userId: { type: 'string', format: 'misskey:id', + description: 'ใƒฆใƒผใ‚ถใƒผใฎidใ€‚', }, }, required: [ @@ -26,102 +27,121 @@ type: 'integer', optional: false, nullable: false, + description: 'ไฝœๆˆใ—ใŸใƒŽใƒผใƒˆใฎๆ•ฐใ€‚', }, repliesCount: { type: 'integer', optional: false, nullable: false, + description: '้€ใฃใŸใƒชใƒ—ใƒฉใ‚คใฎๆ•ฐใ€‚', }, renotesCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใŒRenoteใ‚’่กŒใฃใŸๅ›žๆ•ฐใ€‚', }, repliedCount: { type: 'integer', optional: false, nullable: false, + description: 'ๅ—ใ‘ๅ–ใฃใŸใƒชใƒ—ใƒฉใ‚คใฎๆ•ฐใ€‚', }, renotedCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒRenoteใ•ใ‚ŒใŸๅ›žๆ•ฐใ€‚', }, pollVotesCount: { type: 'integer', optional: false, nullable: false, + description: 'ๆŠ•็ฅจใ‚’่กŒใฃใŸๅ›žๆ•ฐใ€‚', }, pollVotedCount: { type: 'integer', optional: false, nullable: false, + description: 'ๆŠ•็ฅจใ‚’ไฝœๆˆใ—ใŸๅ›žๆ•ฐใ€‚', }, localFollowingCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใŒใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใฎๆ•ฐใ€‚', }, remoteFollowingCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใŒใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎๆ•ฐใ€‚', }, localFollowersCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒญใƒผใ‚ซใƒซใƒฆใƒผใ‚ถใƒผใฎๆ•ฐใ€‚', }, remoteFollowersCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒชใƒขใƒผใƒˆใƒฆใƒผใ‚ถใƒผใฎๆ•ฐใ€‚', }, followingCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใŒใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆ•ฐ๏ผˆใƒญใƒผใ‚ซใƒซใจใƒชใƒขใƒผใƒˆใฎๅ’Œ๏ผ‰ใ€‚', }, followersCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒฆใƒผใ‚ถใƒผใ‚’ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎๆ•ฐ๏ผˆใƒญใƒผใ‚ซใƒซใจใƒชใƒขใƒผใƒˆใฎๅ’Œ๏ผ‰ใ€‚', }, sentReactionsCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’้€ใฃใŸๅ›žๆ•ฐใ€‚', }, receivedReactionsCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ—ใ‘ๅ–ใฃใŸๅ›žๆ•ฐใ€‚', }, noteFavoritesCount: { type: 'integer', optional: false, nullable: false, + description: 'ใŠๆฐ—ใซๅ…ฅใ‚Šใซ่ฟฝๅŠ ใ—ใŸใƒŽใƒผใƒˆใฎๆ•ฐใ€‚', }, pageLikesCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒšใƒผใ‚ธใซใ„ใ„ใญใ‚’ใคใ‘ใŸๅ›žๆ•ฐใ€‚', }, pageLikedCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒšใƒผใ‚ธใธใฎใ„ใ„ใญใ‚’ๅ—ใ‘ๅ–ใฃใŸๅ›žๆ•ฐใ€‚', }, driveFilesCount: { type: 'integer', optional: false, nullable: false, + description: 'ใƒ‰ใƒฉใ‚คใƒ–ใซๅญ˜ๅœจใ™ใ‚‹ใƒ•ใ‚กใ‚คใƒซใฎๆ•ฐใ€‚', }, driveUsage: { type: 'integer', optional: false, nullable: false, - description: 'Drive usage in bytes', + description: 'ใƒ‰ใƒฉใ‚คใƒ–ใฎไฝฟ็”จๅฎน้‡ใ€‚ใƒใ‚คใƒˆๅ˜ไฝใงใ™ใ€‚', }, }, required: [ @@ -151,7 +171,7 @@ '9e638e45-3b25-4ef7-8f95-07e8498f1819': { id: '9e638e45-3b25-4ef7-8f95-07e8498f1819', code: 'NO_SUCH_USER', - description: '', + description: 'ใƒฆใƒผใ‚ถใƒผใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, -} \ No newline at end of file +} From da2489764deb2772fcbc4e08a7c6f27e331c5871 Mon Sep 17 00:00:00 2001 From: Maximilian Stumpf Date: Wed, 16 Nov 2022 22:09:32 +0100 Subject: [PATCH 073/296] Add misskey.icu to instances (#118) --- src/instances.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index bf18ec704b..c930ab3b7b 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -41,4 +41,8 @@ host: 'www.foxyhole.io', name: 'FoxyHole', lang: 'it', +}, { + host: 'misskey.icu', + name: 'Misskey.ICU', + lang: 'de', }] From 475844ead5a99386abfa64c86ab0722e743382ce Mon Sep 17 00:00:00 2001 From: Seio Inoue Date: Fri, 18 Nov 2022 20:31:04 +0900 Subject: [PATCH 074/296] Add Apps page (#119) --- src/docs/apps.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/docs/apps.md diff --git a/src/docs/apps.md b/src/docs/apps.md new file mode 100644 index 0000000000..ae4d86953a --- /dev/null +++ b/src/docs/apps.md @@ -0,0 +1,18 @@ +--- +description: 'Misskeyใ‚’ไฝฟใ†ใŸใ‚ใฎใ‚ขใƒ—ใƒชใ‚’็ดนไป‹ใ—ใพใ™ใ€‚' +--- + +# ใ‚ขใƒ—ใƒช +Misskeyใ‚’ไฝฟใ†ใŸใ‚ใฎใ‚ขใƒ—ใƒช๏ผˆใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ๏ผ‰ใ‚’็ดนไป‹ใ—ใพใ™ใ€‚ + +ใƒ–ใƒฉใ‚ฆใ‚ถใ‹ใ‚‰Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซใƒญใ‚ฐใ‚คใƒณใ™ใ‚‹ใจใ€ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚ใ“ใฎใจใ่กจ็คบใ•ใ‚Œใฆใ„ใ‚‹ใฎใŒMisskeyๅ”ฏไธ€ใฎๅ…ฌๅผใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใ€**Misskey Web**ใงใ™ใ€‚ใƒ–ใƒฉใ‚ฆใ‚ถใงๅ‹•ใใ‚ขใƒ—ใƒชใงใ™ใŒใ€PWAใซใ‚‚ๅฏพๅฟœใ—ใฆใ„ใ‚‹ใฎใงใ€ใƒขใƒใ‚คใƒซOSใฎใƒใ‚คใƒ†ใ‚ฃใƒ–ใ‚ขใƒ—ใƒชใฎใ‚ˆใ†ใซๅ‹•ไฝœใ•ใ›ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰](TODO)ใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚ใชใŠใ€Misskeyใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงใฏใƒใ‚คใƒ†ใ‚ฃใƒ–ใ‚ขใƒ—ใƒชใ‚’้–‹็™บใ—ใฆใ„ใพใ›ใ‚“ใ€‚ + +Misskey Webใซๆ…ฃใ‚ŒใฆใใŸใ‚‰ใ€ๆœ‰ๅฟ—ใŒ้–‹็™บใ™ใ‚‹้žๅ…ฌๅผใ‚ขใƒ—ใƒชใ‚’่ฉฆใ—ใฆใฟใ‚‹ใฎใ‚‚ใ„ใ„ใงใ—ใ‚‡ใ†ใ€‚ใ“ใ“ใงใฏใ€ๅบƒใไฝฟใ‚ใ‚Œใฆใ„ใ‚‹ใ‚ขใƒ—ใƒชใ‚’็ดนไป‹ใ—ใพใ™๏ผˆใ‚ขใƒซใƒ•ใ‚กใƒ™ใƒƒใƒˆ้ †๏ผ‰ใ€‚ + +- **Kaiteki** (Web, Android, Windows, Linux): ๅน…ๅบƒใ„ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใงๅ‹•ไฝœใ™ใ‚‹ใ€‚Mastodon, Pleroma, Twitterใซใ‚‚ๅฏพๅฟœใ€‚[ๅ…ฌๅผใ‚ตใ‚คใƒˆ](https://craftplacer.moe/projects/kaiteki/)ใ€‚[ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰](https://github.com/Kaiteki-Fedi/Kaiteki)ใ€‚ +- **Milktea** (Android): ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚„็‰นๅฎšใฎๆคœ็ดข็ตๆžœใซใ‚ฟใƒ–ใ‹ใ‚‰็ด ๆ—ฉใใ‚ขใ‚ฏใ‚ปใ‚นใงใใ‚‹ใ€‚ไป–ใฎใƒฆใƒผใ‚ถใƒผใซใƒ‹ใƒƒใ‚ฏใƒใƒผใƒ ใ‚’ไธŽใˆใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)ใ€‚[ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰](https://github.com/pantasystem/Milktea)ใ€‚ +- **Misscat** (iOS): ใ‚นใƒžใƒ›ใซ้ฉใ—ใŸ็›ดๆ„Ÿ็š„ใชๆ“ไฝœๆ€งใ‚’ๆไพ›ใ™ใ‚‹ใ“ใจใ‚’็›ฎๆจ™ใซ้–‹็™บใ•ใ‚Œใฆใ„ใ‚‹ใ€‚2021ๅนด5ๆœˆใ‚’ๆœ€ๅพŒใซ้–‹็™บใŒๅœๆญขใ—ใฆใ„ใ‚‹ใ€‚[ๅ…ฌๅผใ‚ตใ‚คใƒˆ](https://yuiga.dev/misscat/)ใ€‚[App Store](https://apps.apple.com/app/id1505059993)ใ€‚[ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰](https://github.com/YuigaWada/MissCat)ใ€‚ +- **SocialHub** (iOS): Misskey, Mastodon, Twitter, Slack, Tumblrใซใ‚‚ๅฏพๅฟœใ—ใŸๆœ‰ๆ–™ใ‚ขใƒ—ใƒชใ€‚[ๅ…ฌๅผใ‚ตใ‚คใƒˆ](https://uakihir0.github.io/socialhub/)ใ€‚[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)ใ€‚ +- **Subway Tooter** (Android): ๅผทๅŠ›ใชใƒ•ใ‚ฃใƒซใ‚ฟใ€่ค‡ๆ•ฐใฎใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ไธฆๅˆ—ใซ่กจ็คบใ™ใ‚‹ใ‚ฟใƒ–ใƒฌใƒƒใƒˆใƒขใƒผใƒ‰ใชใฉใ‚’ๅ‚™ใˆใ‚‹ใ€‚Mastodonใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใ ใŒใ€Misskeyใซใ‚‚้ƒจๅˆ†็š„ใซๅฏพๅฟœใ€‚[Google Play](https://play.google.com/store/apps/details?id=jp.juggler.subwaytooter)ใ€‚[ใ‚ฝใƒผใ‚นใ‚ณใƒผใƒ‰](https://github.com/tateisu/SubwayTooter)ใ€‚ + +ใจใฏใ„ใˆใ€Misskeyใฏๆดป็™บใซๆฉŸ่ƒฝใŒๆ›ดๆ–ฐใ•ใ‚Œใฆใ„ใ‚‹ใŸใ‚ใ€ๆœ€ๆ–ฐใฎๆฉŸ่ƒฝใธใฎๅฏพๅฟœใŒ้…ใ‚Œใ‚‹ใ“ใจใ‚‚ใ‚ใ‚Šใพใ™ใ€‚็‰นใซใ“ใ ใ‚ใ‚ŠใŒใชใ‘ใ‚ŒใฐMisskey Webใฎๅˆฉ็”จใ‚’ใŠใ™ใ™ใ‚ใ—ใพใ™ใ€‚ From c0940cdb5b5ac80194442187559dec0b4553c921 Mon Sep 17 00:00:00 2001 From: Maximilian Stumpf Date: Sat, 19 Nov 2022 02:45:39 +0100 Subject: [PATCH 075/296] misskey.icu -> kitsune.moe (#120) * Add misskey.icu to instances * Domain Change - misskey.icu -> kitsune.moe Co-authored-by: syuilo --- src/instances.json5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/instances.json5 b/src/instances.json5 index c930ab3b7b..a18a97348b 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -42,7 +42,7 @@ name: 'FoxyHole', lang: 'it', }, { - host: 'misskey.icu', - name: 'Misskey.ICU', + host: 'kitsune.moe', + name: 'Kitsune.MOE', lang: 'de', }] From 658e7e706138c5f9bbbd5a0f2b61f7668f6d11eb Mon Sep 17 00:00:00 2001 From: heka Date: Mon, 21 Nov 2022 15:10:21 +0900 Subject: [PATCH 076/296] Update English release notes (#117) --- src/en/docs/releases.md | 253 +++++++++++++++++++++++++++++++++++----- 1 file changed, 224 insertions(+), 29 deletions(-) diff --git a/src/en/docs/releases.md b/src/en/docs/releases.md index 5b3dbcf6a3..44540676fa 100644 --- a/src/en/docs/releases.md +++ b/src/en/docs/releases.md @@ -5,7 +5,174 @@ Notes for indivudual misskey releases. Information updates may not be translated yet. For the latest information see [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). ::: -## 12.111.1๏ผˆ2022/06/13๏ผ‰ +## 12.119.0 +Released at: 2022/09/10 + +### Improvements +- Client: Add following badge to user preview popup @nvisser +- Client: mobile twitter url can be used as widget @caipira113 +- Client: Improve clock widget @syuilo + +### Bugfixes +- Fix an issue that can cause migration failures +- Server: Fix an issue that allows marking others' notification as read @syuilo +- Client: Fix an issue where 'Manage access tokens' and 'Manage Accounts' page is not shown @futchitwo + +## 12.118.0 +Released at: 2022/08/07 + +### Improvements +- Client: Preference backups feature +- Client: Add vi-VN language support +- Client: Add unix time widget @syuilo + +### Bugfixes +- Server: Fix blocking users from remote instances @xianonn +- Client: Fix webhook page freeze after webhook is first created @syuilo +- Client: Fix broken MiAuth page @syuilo +- Client: Fix an issue where drag-and-drop to the post form doesn't work with some applications @m-hayabusa + +## 12.117.1 +Released at: 2022/07/19 + +### Improvements +- Client: UI brushup @syuilo + +### Bugfixes +- Server: Fix an issue where upload fails intermittently @acid-chicken +- Client: Fix an issue where reaction picker is shown behind other in-app windows @syuilo +- Client: Fix user information lookup retry feature @xianonn +- Client: Update MFM cheatsheet behavior @syuilo +- Client: Fix an issue that prevents changing 'Receive notifications from this instance' setting @syuilo + +## 12.117.0 +Released at: 2022/07/18 + +### Improvements +- Client: Support maximizing windows @syuilo +- Client: Shift-clicking on the link opens it in-app @syuilo +- Client: Ctrl-clicking on the link will force page transition on Deck UI @syuilo +- Client: UI brushup @syuilo + +## 12.116.1 +Released at: 2022/07/17 + +### Bugfixes +- Client: Fix an issue that prevents 'Show in page' button from working on Deck UI @syuilo +- Error During Migration Run to 12.111.x + +## 12.116.0 +Released at: 2022/07/16 + +### Improvements +- Client: registry editor @syuilo +- Client: UI brushup @syuilo + +### Bugfixes +- Error During Migration Run to 12.111.x +- Server: TypeError: Cannot convert undefined or null to object @syuilo + +## 12.115.0 +Released at: 2022/07/16 + +### Improvements +- Client: Easier account switching on the Deck @syuilo +- Client: UI brushup @syuilo + +## 12.114.0 +Released at: 2022/07/15 + +### Improvements +- Add article order shuffle feature to the RSS ticker @syuilo + +### Bugfixes +- Fix an issue that prevents client from booting @syuilo + +## 12.113.0 +Released at: 2022/07/13 + +### Improvements +- Support `` syntax for MFM + +### Bugfixes +- Server: Fix crash at startup if TensorFlow is not supported @mei23 +- Client: Fix routing of the URL encoded string + +## 12.112.3 +Released at: 2022/07/09 + +### Improvements +- Make active email validation configurable + +### Bugfixes +- Server: Fix Attempts to update all notifications @mei23 + +## 12.112.2 +Released at: 2022/07/08 + +### Bugfixes +- Fix Docker doesn't work @mei23 + Still not working on arm64 environment. (See 12.112.0) + +## 12.112.1 +Released at: 2022/07/07 + +same as 12.112.0 + +## 12.112.0 +Released at: 2022/07/07 + +### Known issues +- Installation is currently not working on arm64 environment. This will be fixed in the next version. + +### Changes +- Highlight menu has been merged into the Explore menu. +- Custom Emoji page has been merged into the Instance Information page. +- Federation page has been merged into the Instance Information page. +- Mentions menu has been merged into the Notification menu. +- Direct notes menu has been merged into the Notifications menu. +- You can now access Antennas via the top icon of the Timeline, instead of the main menu. +- You can now access Lists via the top icon of the Timeline, instead of the main menu. + +### Improvements +- Server: Allow GET method for some endpoints @syuilo +- Server: Auto NSFW detection @syuilo +- Server: Add rate limit to i/notifications @tamaina +- Client: Improve control panel @syuilo +- Client: Show warning in control panel when there is an unresolved abuse report @syuilo +- Client: Statusbars @syuilo +- Client: Add instance-cloud widget @syuilo +- Client: Add rss-ticker widget @syuilo +- Client: Removing entries from a clip @futchitwo +- Client: Poll highlights in explore page @syuilo +- Client: Improve deck UI @syuilo +- Client: Word mute also checks content warnings @Johann150 +- Client: Page reload from menu @syuilo +- Client: Improve emoji picker performance @syuilo +- Client: For notes with specified visibility, show recipients when hovering over visibility symbol. @Johann150 +- Client: Make widgets available again on a tablet @syuilo +- Add possibility to leave moderation notes on users @syuilo +- Make possible to delete an account by admin @syuilo +- Improve player detection in URL preview @mei23 +- Add Badge Image to Push Notification #8012 @tamaina +- Server: Improve performance +- Server: Supports IPv6 on Redis transport. @mei23 + IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`. +- Server: Add possibility to log IP addresses of users @syuilo +- Add additional drive capacity change support @CyberRex0 + +### Bugfixes +- Server: Fix GenerateVideoThumbnail failed @mei23 +- Server: Ensure temp directory cleanup @Johann150 +- favicons of federated instances not showing @syuilo +- Admin: The checkbox for blocking an instance works again @Johann150 +- Client: Prevent access to user pages when not logged in @pixeldesu @Johann150 +- Client: Disable some hotkeys (e.g. for creating a post) for not logged in users @pixeldesu +- Client: Ask users that are not logged in to log in when trying to vote in a poll @Johann150 +- Instance mutes also apply in antennas etc. @Johann150 + +## 12.111.1 +Released at: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina @@ -13,7 +180,8 @@ Information updates may not be translated yet. For the latest information see [G - Client: fix problem with widget information not being saved in Deck mode @syuilo - Client: edit screen appears when trying to open gallery posts @futchitwo -## 12.111.0๏ผˆ2022/06/11๏ผ‰ +## 12.111.0 +Released at: 2022/06/11 ### Note - Node.js 16.15.0 or later is required @@ -69,7 +237,8 @@ Information updates may not be translated yet. For the latest information see [G - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn -## 12.110.0 (2022/04/11) +## 12.110.0 +Released at: 2022/04/11 ### Improvements - Improve webhook @syuilo @@ -79,18 +248,21 @@ Information updates may not be translated yet. For the latest information see [G - API: parameter validation of users/show was wrong - Federation: fixed problem with direct posts to remote instances not reaching @syuilo -## 12.109.2 (2022/04/03) +## 12.109.2 +Released at: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: fix issue where meta[name="theme-color"] content was undefined when switching or loading themes @tamaina -## 12.109.1 (2022/04/02) +## 12.109.1 +Released at: 2022/04/02 ### Bugfixes - API: Fixed problem with Renote -## 12.109.0 (2022/04/02) +## 12.109.0 +Released at: 2022/04/02 ### Improvements - Webhooks @syuilo @@ -111,7 +283,8 @@ Information updates may not be translated yet. For the latest information see [G - Use `fileIds` instead, it has the same behaviour. - Client: fixed problem with URLs not displaying if decodeURIComponent fails due to abnormal URI encoding @tamaina -## 12.108.1 (2022-03-12) +## 12.108.1 +Released at: 2022-03-12 ### Bugfixes - Fixed relay not working @xianonn @@ -119,7 +292,8 @@ Information updates may not be translated yet. For the latest information see [G - Fixed a problem that OGP cannot be obtained correctly from outside @syuilo - Instance can't get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v -## 12.108.0 (2022-03-09) +## 12.108.0 +Released at: 2022-03-09 ### Note - Node v16.14.0 or later is required from this version @@ -148,7 +322,8 @@ Information updates may not be translated yet. For the latest information see [G - Client: iPhone X or later(?) Fixed: Fixed page content not being fully displayed on iPhone X or later(?) @tamaina - Client: Fix image caption on mobile @nullobsi -## 12.107.0 (2022/02/12) +## 12.107.0 +Released at: 2022/02/12 ### Improvements - Client: add theme @syuilo @@ -159,7 +334,8 @@ Information updates may not be translated yet. For the latest information see [G - Client: take screen safe area into account of the device @syuilo - Client: Fixed issue with sidebar post button not showing in some environments @syuilo -## 12.106.3 (2022/02/11) +## 12.106.3 +Released at: 2022/02/11 ### Improvements - Client: adjust margins on smart phones @syuilo @@ -167,19 +343,22 @@ Information updates may not be translated yet. For the latest information see [G ### Bugfixes - Client: fixed issue with note details not showing @syuilo -## 12.106.2 (2022/02/11) +## 12.106.2 +Released at: 2022/02/11 ### Bugfixes - Client: Fixed an issue where deleted notes did not automatically disappear from the timeline @syuilo - Client: Fixed an issue where the number of reactions may be incorrect @syuilo - Fixed problem with migration not working in some environments @syuilo -## 12.106.1 (2022/02/11) +## 12.106.1 +Released at: 2022/02/11 ### Bugfixes - Client: fixed problem with word mute not saving @syuilo -## 12.106.0 (2022/02/11) +## 12.106.0 +Released at: 2022/02/11 ### Improvements - Improve federation chart @syuilo @@ -191,7 +370,8 @@ Information updates may not be translated yet. For the latest information see [G ### Bugfixes - validate regular expressions in word mutes @Johann150 -## 12.105.0 (2022/02/09) +## 12.105.0 +Released at: 2022/02/09 ### Improvements - Allow to set the theme color of the instance @syuilo @@ -199,7 +379,8 @@ Information updates may not be translated yet. For the latest information see [G #### Bugfixes - Fixed migration failure in some environments @syuilo -## 12.104.0 (2022/02/09) +## 12.104.0 +Released at: 2022/02/09 ### Note Please run `npm run clean` before building. @@ -233,12 +414,14 @@ If the migration does not finish, you can delete all **records** in the table st - Add instance favicon where it's missing @solfisher - Fixed problems with periodic resync of charts not working @syuilo -## 12.103.1 (2022/02/02) +## 12.103.1 +Released at: 2022/02/02 ### Bugfixes - Client: Fixed an issue with tooltip display position being incorrect. -## 12.103.0 (2022/02/02) +## 12.103.0 +Released at: 2022/02/02 ### Improvements - Client: Allow instance information to be reacquired from the coalition instance page. @@ -255,12 +438,14 @@ If the migration does not finish, you can delete all **records** in the table st - Client: ensure that specified users does not get duplicates - Add `img-src` and `media-src` directives to `Content-Security-Policy` for files and media proxy -## 12.102.1 (2022/01/27) +## 12.102.1 +Released at: 2022/01/27 ### Bugfixes - Fixed problem with chat not displaying -## 12.102.0 (2022/01/27) +## 12.102.0 +Released at: 2022/01/27 ### Note After the update, some custom emoji may not be displayed. In this case, batch exporting the emoji from the emoji management page and then batch importing them again from the control panel will fix the problem. @@ -287,13 +472,15 @@ After the update, some custom emoji may not be displayed. In this case, batch ex ### Bugfixes - Fixed handling of upload errors -## 12.101.1 (2021/12/29) +## 12.101.1 +Released at: 2021/12/29 ### Bugfixes - Fixed SVG emoji not displaying - Fixed a case where the extension of exported emoji is false. -## 12.101.0 (2021/12/29) +## 12.101.0 +Released at: 2021/12/29 ### Improvements - Client: Improved accuracy of note previews @@ -305,20 +492,23 @@ After the update, some custom emoji may not be displayed. In this case, batch ex - Client: Fixed some components being hidden behind the scenes - Fix html blockquote conversion -## 12.100.2 (2021/12/18) +## 12.100.2 +Released at: 2021/12/18 ### Bugfixes - Client: Fixed issue where Deck column increases/decreases were not properly reflected until page was reloaded. - Client: Fixed some components being hidden behind the scenes - Client: Fixed heavy load on custom emoji list page -## 12.100.1 (2021/12/17) +## 12.100.1 +Released at: 2021/12/17 ### Bugfixes - Client: Design coordination - Client: Improved display of various menus and reaction picker on mobile -## 12.100.0 (2021/12/17) +## 12.100.0 +Released at: 2021/12/17 ### Improvements - Client: Improved display of various menus and reaction picker on mobile @@ -326,16 +516,20 @@ After the update, some custom emoji may not be displayed. In this case, batch ex ### Bugfixes - Client: Fixed some components hiding in the background -## 12.99.3 (2021/12/14) +## 12.99.3 +Released at: 2021/12/14 ### Bugfixes - Client: Fixed problem with autocomplete being hidden behind dialogs -## 12.99.2 (2021/12/14) +## 12.99.2 +Released at: 2021/12/14 -## 12.99.1 (2021/12/14) +## 12.99.1 +Released at: 2021/12/14 -## 12.99.0 (2021/12/14) +## 12.99.0 +Released at: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings @@ -350,7 +544,8 @@ After the update, some custom emoji may not be displayed. In this case, batch ex - Client: Fixed an issue where clip settings could not be edited. - Client: Fixed a problem with menus etc. being hidden behind windows -## 12.98.0 (12/03/2021) +## 12.98.0 +Released at: 12/03/2021 ### Improvements - API: /antennas/notes API now allows filtering by date From a2728102db848c8274f94c5fdd7e484908436ff9 Mon Sep 17 00:00:00 2001 From: Tassoman Date: Thu, 24 Nov 2022 05:55:55 +0100 Subject: [PATCH 077/296] First italian translation (#114) * fixing npm audit * new language: italian * updated blog link * repository menu :it: * menu links :it: * menu di navigazione di primo livello, completo :it: * :it: sezione partecipa * :it: documentazione, inizio * :it: documentazione WIP * :it: misskey doc * :it: FAQ centralizzate * :it: documentazione, faq glossario rilasci troubleshoot * api, streaming api, admin :it: * :it: api docs * :it: admin part 1 * :it: tips * :it: troubleshotings * :it: installazione * :it: features --- package-lock.json | 12 +- src/.vuepress/config.ts | 105 ++++++++++ src/it/README.md | 86 ++++++++ src/it/appendix/assets.md | 53 +++++ src/it/docs/admin/cdn.md | 17 ++ src/it/docs/admin/default-reaction.md | 5 + src/it/docs/admin/emoji.md | 107 ++++++++++ src/it/docs/admin/nginx.md | 86 ++++++++ src/it/docs/admin/push-docker-hub.md | 19 ++ src/it/docs/admin/troubleshooting.md | 44 ++++ src/it/docs/api/common.json5 | 40 ++++ src/it/docs/api/index.md | 115 ++++++++++ .../api/streaming/channel/global-timeline.md | 25 +++ .../api/streaming/channel/home-timeline.md | 25 +++ .../api/streaming/channel/hybrid-timeline.md | 25 +++ src/it/docs/api/streaming/channel/index.md | 3 + .../api/streaming/channel/local-timeline.md | 25 +++ src/it/docs/api/streaming/channel/main.md | 113 ++++++++++ src/it/docs/api/streaming/index.md | 196 ++++++++++++++++++ .../docs/api/streaming/note-capture-events.md | 51 +++++ src/it/docs/faq.md | 89 ++++++++ src/it/docs/features/custom-emoji.md | 11 + src/it/docs/features/drive.md | 25 +++ src/it/docs/features/index.md | 3 + src/it/docs/features/mfm.md | 76 +++++++ src/it/docs/features/mute-and-block.md | 58 ++++++ src/it/docs/features/note.md | 100 +++++++++ src/it/docs/features/online-status.md | 38 ++++ src/it/docs/features/plugin.md | 4 + src/it/docs/features/reaction.md | 29 +++ src/it/docs/features/share-form.md | 58 ++++++ src/it/docs/features/thread-mute.md | 15 ++ src/it/docs/features/word-mute.md | 25 +++ src/it/docs/glossary.md | 117 +++++++++++ src/it/docs/install.md | 21 ++ src/it/docs/misskey-hub.md | 17 ++ src/it/docs/misskey.md | 90 ++++++++ src/it/docs/releases.md | 21 ++ src/it/docs/tips/disable-timelines.md | 18 ++ src/it/docs/troubleshooting.md | 72 +++++++ src/it/home.md | 61 ++++++ src/it/instances.md | 18 ++ src/it/plugins.md | 15 ++ 43 files changed, 2127 insertions(+), 6 deletions(-) create mode 100644 src/it/README.md create mode 100644 src/it/appendix/assets.md create mode 100644 src/it/docs/admin/cdn.md create mode 100644 src/it/docs/admin/default-reaction.md create mode 100644 src/it/docs/admin/emoji.md create mode 100644 src/it/docs/admin/nginx.md create mode 100644 src/it/docs/admin/push-docker-hub.md create mode 100644 src/it/docs/admin/troubleshooting.md create mode 100644 src/it/docs/api/common.json5 create mode 100644 src/it/docs/api/index.md create mode 100644 src/it/docs/api/streaming/channel/global-timeline.md create mode 100644 src/it/docs/api/streaming/channel/home-timeline.md create mode 100644 src/it/docs/api/streaming/channel/hybrid-timeline.md create mode 100644 src/it/docs/api/streaming/channel/index.md create mode 100644 src/it/docs/api/streaming/channel/local-timeline.md create mode 100644 src/it/docs/api/streaming/channel/main.md create mode 100644 src/it/docs/api/streaming/index.md create mode 100644 src/it/docs/api/streaming/note-capture-events.md create mode 100644 src/it/docs/faq.md create mode 100644 src/it/docs/features/custom-emoji.md create mode 100644 src/it/docs/features/drive.md create mode 100644 src/it/docs/features/index.md create mode 100644 src/it/docs/features/mfm.md create mode 100644 src/it/docs/features/mute-and-block.md create mode 100644 src/it/docs/features/note.md create mode 100644 src/it/docs/features/online-status.md create mode 100644 src/it/docs/features/plugin.md create mode 100644 src/it/docs/features/reaction.md create mode 100644 src/it/docs/features/share-form.md create mode 100644 src/it/docs/features/thread-mute.md create mode 100644 src/it/docs/features/word-mute.md create mode 100644 src/it/docs/glossary.md create mode 100644 src/it/docs/install.md create mode 100644 src/it/docs/misskey-hub.md create mode 100644 src/it/docs/misskey.md create mode 100644 src/it/docs/releases.md create mode 100644 src/it/docs/tips/disable-timelines.md create mode 100644 src/it/docs/troubleshooting.md create mode 100644 src/it/home.md create mode 100644 src/it/instances.md create mode 100644 src/it/plugins.md diff --git a/package-lock.json b/package-lock.json index 72e44630e4..f65815ed20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2292,9 +2292,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4708,9 +4708,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index bfb899e1a8..2fc5a8eebe 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -40,6 +40,10 @@ export default defineUserConfig({ lang: 'en-US', description: 'Official website of Misskey project', }, + '/it/': { + lang: 'it-IT', + description: 'Sito ufficiale del progetto Misskey', + } }, theme: localTheme({ @@ -265,6 +269,107 @@ export default defineUserConfig({ ], },], }, + '/it/': { + selectLanguageText: 'Lingua', + selectLanguageName: 'Italiano', + selectLanguageAriaLabel: 'Scegli la lingua del sito', + contributorsText: 'Co-autori', + lastUpdatedText: 'Ultimo aggiornamento', + editLinkText: 'Modifica questa pagina', + relatedPagesText: 'Pagine correlate', + readThisArticle: 'Leggi questo articolo', + // 404 page messages + notFound: [ + `Purtroppo qui non c'รจ niente`, + `Perchรฉ manca questa pagina?`, + `Pagina non trovata`, + `Sembra che il link sia rotto...`, + `Mah? Qui non c'รจ nulla` + ], + backToHome: 'Torna alla pagina iniziale', + // a11y + openInNewWindow: 'si apre in una nuova finestra', + toggleColorMode: 'cambia i colori', + toggleSidebar: 'menu laterale di navigazione', + navbar: [{ + text: 'Blog Giapponese', + link: '/blog', + }, { + text: 'Partecipa', + children: [ + '/it/instances', + '/it/plugins', + '/it/appendix/assets' + ] + }, { + text: 'Documentazione', + children: [ + '/it/docs/misskey', + '/it/docs/releases', + '/it/docs/misskey-hub', + '/it/docs/faq', + '/it/docs/glossary', + '/it/docs/troubleshooting', + { + text: 'Per gli sviluppatori', + children: [ + '/it/docs/api', + '/it/docs/api/streaming', + '/it/docs/api/endpoints.html', + ] + }, + { + text: 'Per gli amministratori', + children: [ + '/it/docs/install', + '/it/docs/admin/emoji', + '/it/docs/admin/cdn', + '/it/docs/admin/nginx', + '/it/docs/admin/push-docker-hub', + '/it/docs/admin/troubleshooting', + '/it/docs/tips/disable-timelines', + '/it/docs/admin/default-reaction', + ] + } + ] + }, { + text: 'Collegamenti', + children: [{ + text: 'Discord ufficiale', + link: 'https://discord.gg/Wp8gVStHW3', + },{ + text: 'Donazioni (Patreon)', + link: 'https://www.patreon.com/syuilo', + },{ + text: 'Traduzioni (Crowdin)', + link: 'https://crowdin.com/project/misskey', + },{ + text: '่—.moe (la mascotte: Ai)', + link: 'https://xn--931a.moe', + },{ + text: 'Profili', + children: [{ + text: '@repo@misskey.io', + link: 'https://misskey.io/@repo', + }] + },{ + text: 'Il codice sorgente', + children: [{ + text: 'misskey (la piattaforma)', + link: 'https://github.com/misskey-dev/misskey', + }, { + text: 'misskey.js (la SDK in NodeJS)', + link: 'https://github.com/misskey-dev/misskey.js', + }, { + text: 'mfm.js (il parser MFM)', + link: 'https://github.com/misskey-dev/mfm.js', + }, { + text: 'misskey-hub (il sito)', + link: 'https://github.com/misskey-dev/misskey-hub', + }] + }] // Fine: menu links + }] // Fine: navbar italiana + }, }, themePlugins: { activeHeaderLinks: false, diff --git a/src/it/README.md b/src/it/README.md new file mode 100644 index 0000000000..2abb492c86 --- /dev/null +++ b/src/it/README.md @@ -0,0 +1,86 @@ +--- +layout: Landing + +description: "Misskey รจ una piattaforma open source di social media, decentralizzata e per sempre free!" +gettingStarted: "Iniziamo!" +learnMore: "Scopri di piรน" +keyFeatures: + open: + title: "Open" + description: " + Misskey รจ un software open source utilizzabile da chiunque, a cui tutti possono contribuire." + federated: + title: "Federato" + description: "Misskey รจ una piattaforma decentralizzata e federata, connette le comunitร  tramite diverse istanze." + multifunction: + title: "Potente" + description: "Misskey รจ facile da capire per chi arriva e offre potenti funzionalitร  agli utenti piรน avanzati." + customizable: + title: "Personalizzabile" + description: "Puoi modificare temi, riquadri, schermate e molto altro. L'interfaccia grafica si adatta alle tue esigenze!" +sections: + federatedSoftware: + title: "Misskey รจ una piattaforma decentralizzata." + description: "Misskey is just a platform for server owners to make their own instances of Misskey, and they can all talk to each other! There's large instances for the masses, smaller ones for groups, fandoms, and subcultures, and even instances just for individuals and their friends. Want to have even more control? You can make your own instance on your server with relative ease, cutting ties from any large company who wants to spy on you and sell your data. Misskey is about community and sharing, not corporations and big tech. Have friends not on Misskey? No problem! Because Misskey is on the Fediverse (ActivityPub), you can interact with people on other platforms like Mastodon, PixelFed, PeerTube, and more!" + features: + title: "Funzionalitร " + description: "Misskey ha una ampia gamma di funzionalitร  uniche!" + list: + note: + title: "Le note" + description: 'Su Misskey quel che pubblicano i profili sono le NOTE. Riempi le conversazioni con: citazioni, emoji personalizzabili, animazioni dei testi, contenuti sensibili, immagini multiple, video, GIF, audio e altro!' + reaction: + title: "Reazioni" + description: "Puoi reagire con qualsiasi emoji! Oltre alla stellina e il pollicione, esprimi come ti senti cliccando un solo bottone." + theme: + title: "Temi" + description: "Why be limited by just a Light or Dark theme when you can change all the colors? Use Misskey's intuitive theming functions to make Misskey just how you like it." + charts: + title: "Grafici" + description: "For those who need to see everything, Misskey has powerful charts for both users and admins to see what exactly is going on in your instance in real time." + federation: + title: "Federazione" + description: "Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!" + drive: + title: "Drive" + description: "Hate not being able to find something you uploaded? With Drive, you get managed and powerful cloud storage right in your social media!" + thread: + title: "Argomenti" + description: "Have a lot on your mind? Make a thread! Each post can have up to 3,000 characters by default, and you can keep the conversation going for hours." + widgets: + title: "Riquadri" + description: "Have everything at your fingertips with over a dozen customizable widgets!" + gettingStarted: + title: "Entra subito in Misskey!" + find: + title: "Trova una istanza!" + list: "Elenco istanze" + create: + title: "Prepara la tua istanza" + guide: "Installazione" + docs: + title: "Scopri di piรน" + docs: "Documentazione" + donation: + title: "Donazioni" + description: "Because Misskey is a non-profit, we rely on your donations to fund our development. If you like Misskey, please consider donating so that we can continue to make Misskey awesome for years to come!" + sponsors: + title: "Sponsor" +--- + + diff --git a/src/it/appendix/assets.md b/src/it/appendix/assets.md new file mode 100644 index 0000000000..c5160a4ea4 --- /dev/null +++ b/src/it/appendix/assets.md @@ -0,0 +1,53 @@ +--- +description: "collezione di risorse grafiche su Misskey, loghi, icone disegni e altro..." +--- + +# Risorse grafiche + +Questa collezione contiene Loghi Misskey, icone e altri asset. + +::: tip +Il materiale distribuito in questa pagina รจ soggetto alla licenza [CC BY-NC-SA](http://creativecommons.org/licenses/by-nc-sa/4.0/deed.it) Creative Commons, Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale (CC BY-NC-SA 4.0) ! ๐ŸŽ‰ + +
CC BY-NC-SA +::: + +::: tip +I file sorgente vengono gestiti in questo repository : [misskey-dev/assets](https://github.com/misskey-dev/assets). +::: + +## Logo + + + + + +## Icona + + + + + + diff --git a/src/it/docs/admin/cdn.md b/src/it/docs/admin/cdn.md new file mode 100644 index 0000000000..78124b6eb3 --- /dev/null +++ b/src/it/docs/admin/cdn.md @@ -0,0 +1,17 @@ +# Impostare una CDN + +Quando pubblichi la tua istanza Misskey, ti raccomandiamo che avvenga dietro ad una CDN, come ad esempio [Cloudflare](https://www.cloudflare.com/). + +Usare Misskey dietro alla CDN, ti permette di avere i contenuti statici cachati, in maniera che le richieste non arrivino al tuo server. L'indirizzo IP del server non viene esposto, diminuendo il rischio di un attacco DDOS. + +## Copia cache + +L'interfaccia web di Misskey รจ completamente statica e non necessita del server per funzionare. Questa รจ la parte migliore per cui funziona la **copia cache**. + +Perรฒ non tutta Misskey puรฒ essere "cachata", le API non devono esserlo. Dunque, devi configurare la seguente eccezione nella tua CDN: + +- Metti in cache tutte le richieste, tranne: `/api/*`. + +::: tip +Non รจ necessario svuotare la cache quando aggiorni Misskey. +:::: diff --git a/src/it/docs/admin/default-reaction.md b/src/it/docs/admin/default-reaction.md new file mode 100644 index 0000000000..5a9e27f129 --- /dev/null +++ b/src/it/docs/admin/default-reaction.md @@ -0,0 +1,5 @@ +# Cambiare la reazione predefinita + +Puoi cambiare la reazione predefinita che viene utilizzata quando si riceve un Like nello standard di ActivityPub. + +Per ottenere โญ _stelline_ anzichรฉ ๐Ÿ‘ _pollicioni_, modifica nel database, il valore booleano di `meta.useStarForReactionFallback`. diff --git a/src/it/docs/admin/emoji.md b/src/it/docs/admin/emoji.md new file mode 100644 index 0000000000..0d73467afb --- /dev/null +++ b/src/it/docs/admin/emoji.md @@ -0,0 +1,107 @@ +# Gestione delle emoji personalizzati + +Possono essere gestiti solamente da amministratori o moderatori, tramite il **Pannello di controllo**, nel menu **Emoji Personalizzati**. + +La pagina di mostra l'elenco delle emoji attualmente installate. All'inizio l'elenco sarร  vuoto ma puoi aggiungerne in vari modi. + +## Copiare le Emoji + +Puoi copiarle da altre istanze, scegli il pannello **Remoto** nel menu **Emoji Personalizzati**. +Puoi cercarli per nome della emoji o della istanza di provenienza. + +Quando hai trovato quella che ti piace, clicca per aprire il menu di importazione. + +Considera che quella emoji potrebbe essere soggetta al diritto d'autore e marchi brevettati, gli amministratori sono legalmente responsabili per qualsiasi violazione. + +## Importazione individuale + +Se hai una immagine che vuoi convertire in una emoji personalizzata, puoi importarla. Funziona come allegare una immagine ad una nota. +Carichi un nuovo file, scegli dal tuo Drive o indichi la URL dove si trova l'immagine. + +::: danger +Quando importi la emoji dal tuo Drive, il file rimarrร  lรฌ dove si trova. +Misskey non lo copia, se fosse eliminato la emoji risulterebbe rotta. +::: + +## Importazione massiccia + +Le emoji possono essere importate in modo massiccio da pacchetti in formato ZIP, organizzate in modo speciale. + +Questa funzionalitร  si trova nel menu a pallini (...) in alto a destra nella pagina **Emoji Personalizzati**. + +::: warning +Una importazione massiccia potrebbe sovrascrivere quelle esistenti oppure danneggiare la tua istanza. +Assicurati di importare emoji solamente da fonti affidabili. L'ideale sarebbe che fossero importate solo quelle esportate da te. +::: + +### Formato del pacchetto emoji + +Alla radice c'รจ il file `meta.json` che contiene informazioni sulle emoji contenute nel pacchetto. +Segue un esempio di un ipotetico pacchetto, in cui `Meta` รจ la struttura del file completo. + +```typescript +class Meta { + metaVersion: number; + host: string; + /** + * Rappresentazione del giorno e orario, come restituito da ECMAScript `Date.prototype.toString`. + */ + exportedAt: string; + emojis: Emoji[]; +} + +class Emoji { + downloaded: boolean; + fileName: string; + emoji: { + id: string; + updatedAt: string; + name: string; + host: null; + category: string; + originalUrl: string; + publicUrl: string; + uri: null; + type: string; + aliases: string[]; + }; +} +``` + +Gli attributi di `Meta` in questo momento non vengono utilizzati o controllati in fase di importazione, tranne che per l'attributo `emojis`. + +Per ogni `Emoji`: + +- `downloaded`: dovrebbe essere sempre _True_, se il valore รจ mancante o diverso, non verrร  importata +- `fileName`: nome dell'immagine all'interno del pacchetto +- `emoji`: metadati associati alla emoji come stanno nel database. Attualmente, alcuni non vengono nemmeno verificati. Ad esempio: + - `name`: nome della emoji `sorrisone` se occorre scrivere `:sorrisone:` per attivarla. Attenzione: Se esiste giร  una con lo stesso nome, questa verrร  sovrascritta! + - `category`: categoria di emoji + - `aliases`: lista di parole sinonimi del nome. Nella interfaccia web sono i: "tags". + +## Modificare ed eliminare + +Le proprietร  di una emoji si modificano cliccandola nella lista di quelle _Locali_ +Comparirร  una finestra di dialogo in cui modificare i parametri oppure eliminare la emoji. + +::: danger +Quando elimini una emoji personalizzata, le vecchie note che la contenevano inizieranno a mostrare invece il testo (campo `name`). E non potranno essere piรน rappresentate correttamente. +::: + +Le emoji remote non si possono modificare, nรฉ eliminare. + +Ogni emoji puรฒ avere solo un nome, una categoria ma piรน tag. +La categoria si usa per raggrupparle nella finestrella di selezione. +I tag possono essere usati come alternativa ai nomi, poichรฉ sono ricercabili. + +Quando hai finito con le modifiche, ricordati di salvare cliccando il baffetto di spunta (โœ”๏ธ) nell'angolo in alto a destra. + +### Modifiche massiccie + +Le emoji si possono modificare in modo massiccio attivando la selezione multipla **"Select Mode"** + +In questo modo, cliccando le emoji non si aprirร  la finestra di dialogo, ma verranno evidenziate, indicando quali siano selezionate per la modifica. + +Le modifiche che si possono svolgere vengono mostrate come bottoni. Ogni bottone avvia la modifica massiccia di quel parametro, per tutte le emoji evidenziate. + +Per terminare le modifiche, disattivare il campo _Select Mode_ diff --git a/src/it/docs/admin/nginx.md b/src/it/docs/admin/nginx.md new file mode 100644 index 0000000000..4af765695f --- /dev/null +++ b/src/it/docs/admin/nginx.md @@ -0,0 +1,86 @@ +# Configurazione di Nginx + +1. Crea il file `/etc/nginx/conf.d/misskey.conf` oppure `/etc/nginx/sites-available/misskey.conf` copiaci dentro il contenuto dell'esempio. (il nome del file puรฒ cambiare) +2. Modifica come segue: + 1. Sostituisci `example.tld` col nome del tuo dominio.\ + `ssl_certificate` e `ssl_certificate_key` dovrebbero essere i percorsi ai file ottenuti con Let's Encrypt. + 2. Se usi una [CDN come Cloudflare](./cdn.md), elimina 4 linee partendo da: "If it's behind another reverse proxy or CDN, remove the following." +3. Se hai creato il file `/etc/nginx/sites-available/misskey.conf`, crea anche il symlink `/etc/nginx/sites-enabled/misskey.conf` usando il seguente comando:\ + `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` +4. Esegui `sudo nginx -t` per verificare che la configurazione sia ok. +5. Esegui `sudo systemctl restart nginx` per ricaricare Nginx. + +# Esempio di configurazione Nginx + +```nginx +# For WebSocket +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; + +server { + listen 80; + listen [::]:80; + server_name example.tld; + + # For SSL domain validation + root /var/www/html; + location /.well-known/acme-challenge/ { allow all; } + location /.well-known/pki-validation/ { allow all; } + location / { return 301 https://$server_name$request_uri; } +} + +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name example.tld; + + ssl_session_timeout 1d; + ssl_session_cache shared:ssl_session_cache:10m; + ssl_session_tickets off; + + # To use Let's Encrypt certificate + ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; + + # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) + #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; + #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; + + # SSL protocol settings + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; + ssl_prefer_server_ciphers off; + ssl_stapling on; + ssl_stapling_verify on; + + # Change to your upload limit + client_max_body_size 80m; + + # Proxy to Node + location / { + proxy_pass http://127.0.0.1:3000; + proxy_set_header Host $host; + proxy_http_version 1.1; + proxy_redirect off; + + # If it's behind another reverse proxy or CDN, remove the following. + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + + # For WebSocket + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + # Cache settings + proxy_cache cache1; + proxy_cache_lock on; + proxy_cache_use_stale updating; + add_header X-Cache $upstream_cache_status; + } +} +``` diff --git a/src/it/docs/admin/push-docker-hub.md b/src/it/docs/admin/push-docker-hub.md new file mode 100644 index 0000000000..ccaaeff9e4 --- /dev/null +++ b/src/it/docs/admin/push-docker-hub.md @@ -0,0 +1,19 @@ +# Come pubblicare su Docker Hub usando le GitHub Actions + +La [descrizione del Workflow per pubblicare su Docker Hub usando le GitHub Actions](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) si trova nel repository. + +Il repository originale verrร  pubblicato su Docker Hub con i tag `latest` e `nome-della-release`, potrebbe esserci il tag `nome-del-branch` ma non รจ soggetto a pubblicazione automatica. + +Il Workflow fallirร  se avviato da un fork. Di seguito indichiamo come pubblicare un fork sul proprio Docker Hub. + +## Come configurare il Workflow + +1. Crea un repository su Docker Hub +2. Sostituisci le [image](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) del Workflow con il repository creato +3. Crea i [secret](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) ti occorre creare la coppia `DOCKER_USERNAME` e `DOCKER_PASSWORD`, che saranno le tue credenziali Docker Hub + +## Come pubblicare + +Con la configurazione indicata in precedenza, il repository verrร  _pushato_ su Docker Hub, ad ogni nuova release. Nello specifico, avrร  i tags `latest` e `nome-della-release`. + +Puoi anche pubblicare manualmente da GitHub. Seleziona il _branch_ in `Actions => Publish Docker Image => Run Workflow`. In questo caso perรฒ il tag creato sarร  `nome-del-branch` diff --git a/src/it/docs/admin/troubleshooting.md b/src/it/docs/admin/troubleshooting.md new file mode 100644 index 0000000000..4aa85d69c1 --- /dev/null +++ b/src/it/docs/admin/troubleshooting.md @@ -0,0 +1,44 @@ +--- +description: "Leggi questa pagina quando ci sono degli errori" +--- + +# Soluzione agli errori di installazione + +::: tip +Per prima cosa, leggi attentamente la [guida di installazione](../install/manual.html). +::: + +## Script automatico per Ubuntu + +Per chi non volesse seguire i passi dell'installazione su Ubuntu, con _systemd_ c'รจ a disposizione uno [script automatizzato di installazione](https://github.com/joinmisskey/bash-install/blob/main/README.en.md) + +## Installazione manuale + +Leggi la [guida di installazione](../install/manual.html) + +## La build fallisce + +In generale, per creare Misskey sono necessari almeno 2GB di memoria. Assicurati di averne abbastanza sul server, oppure puoi crearlo sul tuo PC e distribuirlo successivamente sul server. + +## Qualcosa va storto + +- Leggi attentamente la [guida di installazione](../install/manual.html). +- Verifica che la versione di NodJS sia la piรน recente. +- Errori o WARN possono apparire durante l'installazione o la compilazione, ma di solito non sono veri problemi. Per il momento, esegui `npm start` e controlla l'operazione. +- Verifica l'installazione di `node-gyp` + - Installa con `apt install build-essential` + - Su Windows, fare riferimento a [questo articolo](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7) (in giapponese) +- Se non dovesse funzionare, riprova dall'inizio seguendo i passaggi nella [guida di installazione](../install/manual.html). + +## Fallimento dell'aggiornamento + +- Assicurati che abbiano funzionato sia `yarn install` che `npm run migrate` durante l'aggiornamento di Misskey. Se non funzionano, prova con `npm run clean-all && yarn install` e `npm run build && npm run migrate && npm start`. +- Se non sembra funzionare, riprova dall'inizio seguendo i passaggi nella [guida di installazione](../install/manual.html). + +## Configurazione ambiente + +Leggi attentamente la [guida di installazione](../install/manual.html). +Configura le impostazioni in `.config/default.yml`. +Copia [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml) e modifica seguendo le indicazioni che trovi nei commenti. + +(Nel formato YAML, qualsiasi linea che inizia con cancelletto (#) viene trattata come un commento.) diff --git a/src/it/docs/api/common.json5 b/src/it/docs/api/common.json5 new file mode 100644 index 0000000000..4bcf58ad2c --- /dev/null +++ b/src/it/docs/api/common.json5 @@ -0,0 +1,40 @@ +{ + refs: {}, + errors: { + '1384574d-a912-4b81-8601-c7b1c4085df1': { + id: '1384574d-a912-4b81-8601-c7b1c4085df1', + code: 'CREDENTIAL_REQUIRED', + description: 'Credential-required endpoint requested without credentials.', + }, + 'd5826d14-3982-4d2e-8011-b9e9f02499ef': { + id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', + code: 'RATE_LIMIT_EXCEEDED', + description: 'Temporarily unavailable due to rate limit restrictions.', + }, + '56f35758-7dd5-468b-8439-5d6fb8ec9b8e': { + id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', + code: 'ACCESS_DENIED', + description: 'You do not have access privileges.', + }, + '1370e5b7-d4eb-4566-bb1d-7748ee6a1838': { + id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', + code: 'PERMISSION_DENIED', + description: 'The given credential does not have the required permissions.', + }, + 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': { + id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', + code: 'YOUR_ACCOUNT_SUSPENDED', + description: 'Unavailable due to your account has been suspended.', + }, + '3d81ceae-475f-4600-b2a8-2bc116157532': { + id: '3d81ceae-475f-4600-b2a8-2bc116157532', + code: 'INVALID_PARAM', + description: 'The request contains incorrect parameters.', + }, + '5d37dbcb-891e-41ca-a3d6-e690c97775ac': { + id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', + code: 'INTERNAL_ERROR', + description: 'Internal error occurred. Please contact the administrator if the error persists.', + }, + }, +} diff --git a/src/it/docs/api/index.md b/src/it/docs/api/index.md new file mode 100644 index 0000000000..4728623aba --- /dev/null +++ b/src/it/docs/api/index.md @@ -0,0 +1,115 @@ +--- +description: ' +Misskey espone una API che puoi usare per sviluppare client mobile, servizi web connessi a Misskey, bot, altre applicazioni.' +--- + +# Le API di Misskey + +Misskey espone una API che puoi usare per sviluppare client mobile, servizi web connessi a Misskey, bot e altre applicazioni. + +Abbiamo anche una **API di streaming** per ccreare applicazioni con caratteristiche push, in realtime. + +::: tip +Usando la SDK ufficiale di Misskey, o librerie di terze parti, puoi fruire della API in modo piรน conveniente. Per esempio semplificando alcuni dei passi descritti in questa pagina. +::: + +Tanto per cominciare, ti occorre ottenere il **token di accesso** associato all'account che intendi usare per fruire delle API. + +Questa pagina ti spiega passo passo come ottenerlo e le basi per fruire delle API. + +## Ottenere un token di accesso + +Le API, in generale, richiedono l'accesso autenticato da un token. Si tratta di un set di credenziali associate ad un profilo, che lo identificano e controllano quali operazioni sia autorizzato a svolgere quello specifico token. + +::: tip +Tra il profilo e i token c'รจ la relazione uno-a-molti, significa che per ogni profilo si possono creare piรน token (anche con diversi livelli di privilegi) +::: + +Ci sono due modi per ottenere il token: + +- [Richiederlo per se stessi](#richiedere-un-token-di-accesso-manualmente) +- [Richiederlo per un altro profilo che userร  l'applicazione](#richiedere-l-emissione-di-un-token-di-accesso) + +### Richiedere un token di accesso manualmente + +Per ottenere un token per il proprio profilo, รจ sufficiente aprire il proprio profilo in Misskey e, nelle impostazioni, scegliere il menu API. Da lรฌ, seguire le indicazioni. + +::: danger +Fai attenzione! Non condividere il token con nessuno, deve rimanere segreto, altrimenti qualcuno potrebbe ottenere l'accesso del profilo. +::: + +### Richiedere l'emissione di un token di accesso + +Per richiedere il token di accesso per un altro profile, occorre inizializzare la richiesta come indicato. + +#### Passo 1 + +Genera un UUID (identificativo unico dell'utente). Da ora in poi lo chiameremo _ID Sessione_. + +::: danger +L'**ID Sessione** dovrebbe essere generato ogni volta e mai riutilizzato. +::: + +#### Passo 2 + +Nel browser della persona utilizzatrice dovrebbe comparire il modulo di autenticazione. Il modulo di autenticazione puรฒ essere aperto usando una URL simile a questa: + +```:no-line-numbers +https://{host}/miauth/{session} +``` + +- `{host}` รจ il nome dell'istanza (di solito lo ha digitato la persona stessa) +- `{session}` รจ il valore **ID Sessione** + +Si possono anche aggiungere alcune opzioni, come parametri GET nella URL: + +| Nome | Descrizione | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `name` | Nome dell'applicazione | +| `icon` | Indirizzo URL dell'icona (immagine) | +| `callback` | Indirizzo URL a cui reindirizzare dopo l'autenticazione (con **ID Sessione** aggiunto come parametro GET denominato `session`) | +| `permission` | I permessi richiesti dall'applicazione. Permessi multipli vanno suddivisi con la virgola `,` | + +::: tip Esempio concreto + +```:no-line-numbers +https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive +``` + +::: + +#### Passo 3 + +Dopo che la persona ha autorizzato l'accesso alla tua applicazione, una richiesta HTTP, di tipo `POST` alla seguente risorsa restituirร  il **token di accesso** come risposta. + +```:no-line-numbers +https://{host}/api/miauth/{session}/check +``` + +- `{host}` รจ il nome dell'istanza della persona utilizzatrice (di solito lo ha digitato egli stessa) +- `{session}` รจ il valore **ID Sessione** + +Le proprietร  incluse nella risposta sono le seguenti: + +| Parametro | Descrizione | +| --------- | ------------------------ | +| `token` | token di accesso | +| `user` | informazioni sul profilo | + +## Fruire delle API + +Una volta che hai ottenuto il **token di accesso** puoi usare le API inviando richieste HTTP alle varie risorse. + +**Tutte le API HTTP ascoltano richieste POST ed entrambe le richieste/risposte sono in formato JSON.** + +::: warning +Le API di Misskey non sono RESTful. +::: + +Il **token di accesso** deve essere incluso nel corpo nella richiesta, in un parametro chiamato `i`. Per avere maggiori informazioni sulle API, vedere il catalogo. + +In aggiunta alle API HTTP, Misskey mette a disposizione anche le [Streaming API](./streaming/). + +::: tip +La tua istanza Misskey mette a disposizione il **Catalogo delle API** e la documentazione, al seguente indirizzo: `/api-doc` +::: diff --git a/src/it/docs/api/streaming/channel/global-timeline.md b/src/it/docs/api/streaming/channel/global-timeline.md new file mode 100644 index 0000000000..d34e3b864c --- /dev/null +++ b/src/it/docs/api/streaming/channel/global-timeline.md @@ -0,0 +1,25 @@ +--- +description: "Canale in cui รจ convogliato il flusso di Note della Timeline Federata" +--- + +# `globalTimeline` + +Canale in cui รจ convogliato il flusso di Note della Timeline Federata + +## Parametri + +nessuno + +## Eventi + +### `note` + + + +Avviene quando una nuova Nota si aggiunge alla Timeline Federata + +## Operazioni + +nessuna diff --git a/src/it/docs/api/streaming/channel/home-timeline.md b/src/it/docs/api/streaming/channel/home-timeline.md new file mode 100644 index 0000000000..e7ad65c95d --- /dev/null +++ b/src/it/docs/api/streaming/channel/home-timeline.md @@ -0,0 +1,25 @@ +--- +description: "Canale in cui รจ convogliato il flusso di Note della Timeline Home" +--- + +# `homeTimeline` + +Canale in cui รจ convogliato il flusso di Note della Timeline Home + +## Parametri + +nessuno + +## Eventi + +### `note` + + + +Avviene quando una nuova Nota si aggiunge alla Timeline Home + +## Operazioni + +nessuna diff --git a/src/it/docs/api/streaming/channel/hybrid-timeline.md b/src/it/docs/api/streaming/channel/hybrid-timeline.md new file mode 100644 index 0000000000..dca72ca4b5 --- /dev/null +++ b/src/it/docs/api/streaming/channel/hybrid-timeline.md @@ -0,0 +1,25 @@ +--- +description: "Canale in cui รจ convogliato il flusso di Note della Timeline Sociale" +--- + +# `hybridTimeline` + +Canale in cui รจ convogliato il flusso di Note della Timeline Sociale + +## Parametri + +nessuno + +## Eventi + +### `note` + + + +Avviene quando una nuova Nota si aggiunge alla Timeline Sociale + +## Operazioni + +nessuna diff --git a/src/it/docs/api/streaming/channel/index.md b/src/it/docs/api/streaming/channel/index.md new file mode 100644 index 0000000000..8ab8155419 --- /dev/null +++ b/src/it/docs/api/streaming/channel/index.md @@ -0,0 +1,3 @@ +# Elenco dei canali + + diff --git a/src/it/docs/api/streaming/channel/local-timeline.md b/src/it/docs/api/streaming/channel/local-timeline.md new file mode 100644 index 0000000000..9f7b5db134 --- /dev/null +++ b/src/it/docs/api/streaming/channel/local-timeline.md @@ -0,0 +1,25 @@ +--- +description: "Canale in cui รจ convogliato il flusso di Note della timeline locale" +--- + +# `localTimeline` + +Canale in cui รจ convogliato il flusso di Note della Timeline Locale + +## Parametri + +nessuno + +## Eventi + +### `note` + + + +Avviene quando una nuova Nota si aggiunge alla Timeline Locale + +## Operazioni + +nessuna diff --git a/src/it/docs/api/streaming/channel/main.md b/src/it/docs/api/streaming/channel/main.md new file mode 100644 index 0000000000..6890f3ea68 --- /dev/null +++ b/src/it/docs/api/streaming/channel/main.md @@ -0,0 +1,113 @@ +--- +description: "Questo canale fornisce informazioni di base" +--- + +# `main` + +Questo canale fornisce informazioni di base + +## Parametri + +nessuno + +## Eventi + +### `notification` + + + +Avviene quando ricevi una notifica + +### `mention` + + + +Avviene quando il profilo viene nominato + +### `reply` + + + +Avviene quando si riceve una risposta + +### `renote` + + + +Avviene quando รจ _"Rinotata"_ una delle tue Note + +### `follow` + + + +Avviene quando segui un altro profilo + +### `followed` + + + +Avviene quando un altro profilo ti segue + +### `unfollow` + + + +Avviene quando un altro profilo smette di seguirti + +### `messagingMessage` + + + +Avviene alla ricezione di un messaggio di chat + +### `readAllNotifications` + +Avviene quando sono state lette tutte le notifiche + +### `unreadNotification` + +Avviene quando c'รจ una nuova notifica + +### `unreadMention` + +Avviene quando c'รจ una nuova menzione + +### `readAllUnreadMentions` + +Avviene quando sono state lette tutte le menzioni + +### `unreadSpecifiedNote` + +Avviene quando c'รจ una nuova Nota diretta + +### `readAllUnreadSpecifiedNotes` + +Avviene quando sono state lette tutte le Note dirette + +### `unreadMessagingMessage` + +Avviene quando c'รจ un nuovo messaggio nella chat + +### `readAllMessagingMessages` + +Avviene quando sono stati letti tutti i messaggi in chat + +## Operazioni + +nessuna diff --git a/src/it/docs/api/streaming/index.md b/src/it/docs/api/streaming/index.md new file mode 100644 index 0000000000..4c1aaf0e36 --- /dev/null +++ b/src/it/docs/api/streaming/index.md @@ -0,0 +1,196 @@ +--- +description: "La Streaming API mette a disposizione informazioni in real-time (es: nuovi post nella timeline, reazioni, followers ecc...) oltre ad altre attivitร ." +--- + +# Streaming API + +::: tip +Prima di continuare, dovresti aver giร  letto [Le API di Misskey](../index.md). +::: + +La Streaming API mette a disposizione informazioni in real-time (es: nuovi post nella timeline, reazioni, followers ecc...) oltre ad altre attivitร . + +## Conttettersi al flusso. + +Per usare la Streaming API, occorre connettersi al server tramite **websocket**. + +La URL di tipo websoket รจ simile a questa: + +```:no-line-numbers +wss://{host}/streaming?i={token} +``` + +- `{host}` รˆ il dominio dell'istanza a cui connettersi +- `{token}` รˆ il token di accesso ottenuto in precedenza + +::: tip +Puoi anche connetterti senza il token di accesso, ma in questo caso otterrai informazioni limitate e svolgere attivitร  limitate. +::: + +Dopo aver aperto la connessione al flusso, potrai iscriverti ai post come descritto di seguito, ma in questo momento ancora no. Se intendi ricevere i post dalla tua timeline devi entrare in un **canale** del flusso, come descritto di seguito. + +**Tutti i dati dovrebbero essere codificati come JSON** + +## Canale + +La Streaming API di Misskey ha il concetto dei canali. Con questo stratagemma si possono separare le informazioni da spedire e ricevere. +Entrando in un canale del flusso potrai ricevere vari tipi di informazione e spedirne di altre. + +::: tip +Puoi entrare in piรน canali contemporaneamente con una unica connessione al flusso. +::: + +Di seguito descriviamo come usare i canali. Per sapere quali siano disponibili, consulta la [Lista dei canali](./channel/index.md). + +### Entrare in un canale + +Per entrare in un canale del flusso, spedisci i seguenti dati in formato JSON: + +```js +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +- `channel` รจ il nome del canale in cui vuoi entrare. I tipi di canale verranno descritti dopo. +- `id` รจ un identificativo arbitrario pe interagire col canale. Necessario per indentificare da quale canale proviene il messaggio, perchรฉ il flusso contiene piรน canali. Potrebbe essere un UUID oppure un numero casuale. +- `params` sono i parametri richiesti per entrare nel canale. Ogni canale necessita dei suoi paremtri specifici. Quando entri in un canale che non necessita di parametri, questo valore puรฒ essere ommesso (opzionale) + +::: tip +L' ID non รจ per canale ma _per ingresso al canale_, poichรฉ potrebbe essere neccessario entrarci piรน volte ma con parametri diversi. +::: + +### Ricevere messaggi dai canali + +Mettiamo che un _canale timeline_ spedisca un messaggio quando arriva una nota. +Ricevendo il messaggio, sarai al corrente, in tempo reale, della presenza di una nuova nota nella tua timeline. + +Quando un canale spedisci un messaggio, ottieni i seguenti dati JSON: + +```js +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +- `id` รจ l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. +- `type` il tipo di messaggio. Dipende dal canale che lo ha spedito. +- `body` contenitore del messaggio. Il contenuto dipende dal canale che lo ha spedito. + +### Spedire un messaggio al canale + +Ad alcuni canali รจ possibile spedire messaggi e svolgere altre operazioni oltre alla ricezione di messaggi. + +Per spedire un messaggio nel canale, spedisci il seguente JSON al flusso: + +```js +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +- `id` รจ l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. +- `type` tipo di messaggio. Ogni canale accetta diversi tipi di messaggi. +- `body` Contenitore del messaggio. Ogni canale accetta diversi contenuti. + +### Uscire da un canale + +Per uscire da un canale, spedisci il seguente JSON al flusso: + +```js +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +- `id` รจ l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. + +## Capturing Notes + +Misskey mette a disposizione uno stratagemma chiamato **cattura nota** che ti mette in condizione di ricevere un flusso di eventi per una nota specifica. + +Ad esempio, mettiamo che vorresti mostrare le reazioni ad una nota in tempo reale. Di solito, รจ il client che inizia le richieste dati, non puรฒ sapere dei cambiamenti lato server, prima di averli richiesti. + +Per aggirare questo ostacolo Misskey mette a disposizione lo stratagemma **cattura nota**, con cui puoi ottenere anche tutti gli eventi correlati e quindi mostrare le reazioni in tempo reale. + +Nel prossimo capitolo leggerai come attuare lo stratagemma. Per sapere quali altri eventi si possono catturare, leggi la [Lista di eventi catturabili](./note-capture-events.md). + +### Catturare una Nota + +Per catturare una nota e i suoi eventi, spedisci il seguente JSON al flusso: + +```js +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +- `id` รจ l'identificativo della Nota che vuoi catturare + +Inviando questo messaggio, chiedi a Misskey di catturare la Nota, gli eventi correlati verranno quindi indirizzati al tuo flusso. + +Mettiamo il caso che una nota ottiene una reazione, vedrai un messaggio simile a questo: + +```js +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +- `body.id` sarร  l'identificativo della nota che ha innescato l'evento +- `body.type` sarร  il tipo di evento che si รจ innescato +- `body.body` sarร  il contenitore dei dettagli dell'evento innescato + +### Interrompere la cattura della Nota + +Se vuoi interrompere la ricezione di eventi di una Nota, ad esempio quando scompare dallo schermo, puoi annullare la richiesta di cattura. + +Spedisci il seguente JSON al flusso: + +```js +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +- `id` รจ l'identificativo della Nota di riferimento + +Una volta spedito questo messaggio, non riceverai piรน alcun evento relativo a quella Nota. diff --git a/src/it/docs/api/streaming/note-capture-events.md b/src/it/docs/api/streaming/note-capture-events.md new file mode 100644 index 0000000000..0905e63b5f --- /dev/null +++ b/src/it/docs/api/streaming/note-capture-events.md @@ -0,0 +1,51 @@ +# Gli eventi di _cattura Nota_ + +## `reacted` + + + +Avviene quando c'รจ una reazione alla Nota specificata + +## `pollVoted` + + + +Avviene quando c'รจ un voto alla nota con sondaggio + +## `deleted` + + + +Avviene quando la Nota specifica viene eliminata diff --git a/src/it/docs/faq.md b/src/it/docs/faq.md new file mode 100644 index 0000000000..d472b03199 --- /dev/null +++ b/src/it/docs/faq.md @@ -0,0 +1,89 @@ +# FAQ domande frequenti + +Questa pagina raccoglie le domande poste di frequente, sia sul progetto Misskey, sia sull'uso che se ne fa di una istanza. + +## Qual'รจ l'obiettivo del progetto? + +Francamente Misskey mira soltanto ad essere una buona piattaforma di comunicazione a tutto tondo. Diversamente da altre, non รจ fondata su idee specifiche, per esempio l'anti-centralizzazione, nรฉ viene sviluppata con quello scopo. Sotto questo aspetto รจ un po' "senza obiettivi", il che permette di cambiare facilmente i piani se necessario. + + + +## Misskey รจ sviluppato da una azienda? + +No. Misskey รจ sviluppato da una singola persona e non viene commercializzato tramite alcuna azienda. I membri del team di sviluppo di solito sono volontari. Dovessero presentarsi alcuni sponsor, lo sviluppo rimane comunque incentrato sulla comunitร  di utilizzatori. + +## Chi gestisce Misskey? + +Essendo un sistema distribuito, ogni istanza, individualmente, รจ governata da uno o piรน amministratori. +Per tanto non c'รจ una singola persona o azienda che controlla Misskey. Significa anche che il team di sviluppo non ha alcun controllo delle istanze individuali. Le questioni specifiche vanno risolte con gli amministratori di questa o quella istanza. Per scoprire chi sono gli amministratori di una istanza, occorre visitare la pagina: [Informazioni sull'istanza](/about). +I creatori di una istanza, sono essi stessi gli amministratori. + +## Quale istanza dovrei scegliere? + +Abbiamo un [elenco di istanze Misskey](../instances.md), sebbene non sia completo. +La risposta รจ: dipende. Dall'istanza, dalla grandezza della community o dal motivo che la anima. +Scegliere una istanza che coincide con i tuoi interessi รจ probabilmente una buona scelta. +Anche se, la quantitร  di persone, la velocitร  del servizio, l'area in cui รจ posizionata o la lingua parlata, potrebbero essere criteri validi per la scelta. +Nessuna istanza รจ quella **ufficiale**, anche tu potresti avere la capacitร  di aprire la tua istanza. +In generale, qualsiasi istanza scegli, avrai modo di connetterti con tutti gli utenti in modo trasparente. + +## Come installo la mia istanza? + +Grazie per l'interesse ad avviare una nuova istanza di Misskey. Fino al 2022 non ci sono servizi di hosting specializzati nella fornitura di Misskey chiavi in mano. Quindi avviare la propria istanza richiede un certo quantitativo di competenza tecnica. La [guida di installazione](./install.md) ti aiuterร  con ulteriori informazioni a riguardo. + +## Quale tecnologia usa Misskey? + +Durante lo sviluppo di Misskey, la tecnologia รจ cambiata enormemente. All'inizio si usava una combinazione di MySQL + PHP + jQuery (denominata LAMP), ma oggi le cose sono cambiate: + +- Applicazione: Node.js +- Base dati: PostgreSQL, Redis +- Interfaccia utente: Vue.js +- Linguaggio di programmazione: TypeScript + +In aggiunta a tutto ciรฒ, c'รจ MFM e AiScript, che sono due tecnologie Open Source originali di Misskey. + +## รˆ una derivazione di Mastodon? + +No. Misskey รจ un progetto completamente diverso da Mastodon o altri progetti simili. Lo sviluppo si protrae da molto piรน tempo. Sebbene sia diventato federato e distribuito soltanto dopo l'apparizione di Mastodon. Entrambi i progetti implementano il protocollo ActivityPub, anche se non c'รจ relazione tra entrambi. + +## Mi serve il logo e l'icona di Misskey, come si scaricano? + +Abbiamo a disposizione diverse [risorse grafiche](../appendix/assets.html). + +## Chi รจ quella ragazza carina con le orecchie da gatto? + +Si tratta della dea guardiana di Misskey, si chiama Ai. + +
โ„น๏ธ Per ulteriori informazioni su Ai sul sito dedicato, in giapponese.
+ +## รˆ disponibile la App per iOS o Android? + +Sebbene non esista alcuna App ufficiale di Misskey, esistono alcune [applicazioni sviluppate da terzi](./apps). Comunque, la funzionalitร  di App terze, inevitabilmente rimane al passo della versione ufficiale via web. Se puoi fare a meno dalla App nativa per il tuo device, noi ti raccomandiamo di usare la versione ufficiale via web. Essa infatti supporta PWA ed รจ possibile fare in modo che si comporti come una App nativa. + +## Posso entrare usando una App Mastodon? + +Siccome Misskey non รจ compatibile con le API Mastodon, tranne poche eccezioni, l'uso dei client Mastodon non รจ possibile. + +## Cosa devo fare per seguire un profilo su un altra istanza? + +Nel menu laterale, scegli **"Cerca"** e digita il nome utente comprensivo dell'indirizzo della istanza. Ad esempio: `@syuilo@misskey.io` + +## Come annullo una "Rinota"? + +Premi il bottone coi tre puntini ("...") in alto a destra, vicino all'orario della tua [Rinota](../features/note#renote) e scegli la voce di menu **"Annulla Rinota"**. + +## Vorrei nascondere l'anteprima della URL quando c'รจ un link + +Puoi evitare di mostrare l'anteprima usando MFM. Sulla tua istanza, puoi avere gli esempi cliccando il logo in alto a sinistra e segliendo questo menu: **"Guida > Bigliettino MFM"** + +## Voglio una emoji particolare + +Le emoji possono essere gestite solamente dagli amministratori della istanza. Chiedi supporto a loro e faranno del loro meglio per aiutarti. + +## Vorrei sviluppare un BOT + +Per sviluppare un profilo di tipo BOT occorre fare uso delle [API Misskey](../docs/api) della tua istanza. + +## Che servizio di traduzione viene utilizzato? + +Le istanze Misskey possono usare il servizio di traduzione [DeepL](https://www.deepl.com/) diff --git a/src/it/docs/features/custom-emoji.md b/src/it/docs/features/custom-emoji.md new file mode 100644 index 0000000000..54738d5560 --- /dev/null +++ b/src/it/docs/features/custom-emoji.md @@ -0,0 +1,11 @@ +# Emoji Personalizzati + +Si tratta di una caratteristica che ti permette di usare come emoji qualsiasi immagine fornita dalla tua istanza. + +Puoi usarli nelle Note, reazioni, chat, nella descrizione del profilo, nel campo nome, ecc... + +Per usare un emoji personalizzato, utilizza il selettore di emoji, se รจ disponinile, altrimenti digita `:` (due punti) per vedere un elenco di suggerimenti. + +Ogni volta che verrร  trovata una parte di testo, ad esempio, identica a `:gattino_rosa:`, verrร  sostituita con l'emoji corrispondente. + +Per scoprire quali emoji personalizzati siano disponibili nella tua istanza, visita la pagina `/emojis`. diff --git a/src/it/docs/features/drive.md b/src/it/docs/features/drive.md new file mode 100644 index 0000000000..79012244fc --- /dev/null +++ b/src/it/docs/features/drive.md @@ -0,0 +1,25 @@ +# Drive + +Il **Drive** รจ una caratteristica che ti permette di gestire i file caricati su Misskey. + +::: tip +Tecnicamente, il drive puรฒ essere visto come uno strumento gestito in modo centralizzato da Misskey ma anche aperto ai vari profili locali +::: + +Puoi caricare qualsiasi file direttamente nella pagina Drive di Misskey. Contiene anche le immagini che hai caricato sul tuo profilo e quelle allegate alle Note. + +I file caricati nel Drive possono essere scaricati sempre. Possono anche essere riutilizzati quando pubblichi nuove Note, usando la funzionalitร  **allega dal Drive** + +Per comoditร  puoi organizzare i file in cartelle, anche solo per raggrupparli. + +::: warning +Quando elimini un file dal Drive, **verranno eliminati anche i contenuti a cui รจ allegato** (Note, pagine, ecc...) +::: + +## Content Warning (NSFW) + +Il **Content Warning** indica un allerta sulla presenza di allegati sensibili o espliciti (NSFW, Not Safe For Work). Si tratta di una caratteristica che puoi selezionare per ogni file contenuto nel Drive. + +I file segnati come NSFW vengono occultati alle persone, affinchรฉ non siano immediatamente visibili. Occorre quindi che, volontariamente, le persone richiedano di vedere di che si tratta. + +L'impostazione รจ attivabile manualmente oppure puรฒ essere impostata a discrezione degli amministratori o moderatori. diff --git a/src/it/docs/features/index.md b/src/it/docs/features/index.md new file mode 100644 index 0000000000..b71d9aee3b --- /dev/null +++ b/src/it/docs/features/index.md @@ -0,0 +1,3 @@ +# Funzionalitร  + + diff --git a/src/it/docs/features/mfm.md b/src/it/docs/features/mfm.md new file mode 100644 index 0000000000..3e83146c75 --- /dev/null +++ b/src/it/docs/features/mfm.md @@ -0,0 +1,76 @@ +--- +description: "MFM รจ uno speciale linguaggio di marcatura del testo che puรฒ essere usato in varie zone di Misskey." +--- + +# MFM, Misskey Flavoured Markdown + +Uno speciale linguaggio di marcatura del testo che puรฒ essere usato in varie zone di Misskey. + +::: tip +Alcune parti sono compatibili con MarkDown +::: + +## Elenco delle zone in cui รจ accettato + +- Testo della Nota +- Testo del Content Warning +- Nome del profilo +- Biografia del profilo + +## Sintassi + +### Menzioni + +Puoi nominare utenti locali o remoti, usando il carattere `@` (at oppure chiocciola) + +```:no-line-numbers +@ai +``` + +```:no-line-numbers +@ai@misskey.io +``` + +### Hashtag + +Puoi taggare le parole chiave usando `#` il cancelletto + +```:no-line-numbers +#misskey +``` + +### Emoji personalizzati + +Puoi utilizzarli includendo il nome tra il simbolo `:` due punti. + +```:no-line-numbers +:misskey: +``` + +### Link + +Puoi indicare link senza mostrare l'url completa. + +```:no-line-numbers +[Sito Example](https://example.com) +``` + +### Grassetto + +Il testo racchiuso da `**` due asterischi, diventerร  grassetto, o bold. + +```:no-line-numbers +**Grassetto** +``` + +--- + +::: tip +Puoi trovare piรน esempi nella pagina **Bigliettino MFM** che trovi presso la tua istanza, all'indirizzo `/mfm-cheat-sheet` +::: + +## Informazioni per sviluppatori + +L'implementazione del parser MFM รจ una libreria disponibile sotto licenza opensource, per facilitare l'integrazione nel tuo client personalizzato. + +- Implementazione JavaScript del parser: [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) diff --git a/src/it/docs/features/mute-and-block.md b/src/it/docs/features/mute-and-block.md new file mode 100644 index 0000000000..9e7c8bd7a4 --- /dev/null +++ b/src/it/docs/features/mute-and-block.md @@ -0,0 +1,58 @@ +# Silenziare e Bloccare + +Se non ti piace un profilo, puoi silenziarlo e farlo scomparire dalla timeline. + +In alternativa, puoi bloccarlo per impedirgli di vedere i tuoi contenuti o interagire in qualsiasi modo. + +Le persone non sapranno che le hai silenziate, ma sapranno di esser state bloccate. Sta a te decidere. + +::: tip +Silenziare e Bloccare, non si escludono. Possono essere usati simultaneamente. +::: + +::: warning +Considera l'eventualitร  di segnalare contenuti fastidiosi da altri profili, se violano il regolamento della tua istanza. +::: + +Puoi vedere l'elenco dei profili Silenziati e Bloccati, nella pagina **Impostazioni ยป Silenziati/Bloccati** + +## Silenziare + +Quando silenzi un profilo, smetterai di vedere i seguenti contenuti: + +- le note da quel profilo (compresi i Rinota e le risposte nelle conversazioni), verranno rimosse dalla timeline e dai risultati di ricerca +- le notifiche da quel profilo +- lo storico dei messaggi nella chat +- e tutto il resto... + +Per silenziare un profilo, visita la pagina del profilo e apri il menu, in fine scegli **Silenzia** + +::: tip +Il profilo Silenziato non riceverร  alcuna notifica e non saprร  mai di essere stato silenziato. +::: + +## Bloccare + +Quando blocchi un profilo, questi non sarร  piรน in grado di vedere i tuoi contenuti e nemmeno di: + +- seguirti +- aggiungerti ad una lista +- risponderti o Rinotare i tuoi contenuti +- inviare una Reazione o votare un sondaggio +- inviarti un messaggio in chat +- e il resto delle iterazioni + +Inoltre... + +- Se quel profilo ti stava seguendo, smetterร  di seguirti quando viene Bloccato +- Se quel profilo ti aveva tra i follower, il tuo profilo verrร  rimosso dai suoi follower. + +Per **Bloccare** un profilo, apri il menu nella pagina e scegli Blocca dal menu. + +::: warning +Il profilo bloccato non riceverร  alcuna notifica ma indirettamente ne sarร  consapevole, poichรฉ non sarร  in grado di svolgere alcuna azione nei tuoi confronti. +::: + +::: warning +L'altra persona non sarร  in grado di vedere i tuoi contenuti tramite quel profilo, ma potrebbe riuscirci cambiando profilo oppure scollegandosi. +::: diff --git a/src/it/docs/features/note.md b/src/it/docs/features/note.md new file mode 100644 index 0000000000..4ae149a1a6 --- /dev/null +++ b/src/it/docs/features/note.md @@ -0,0 +1,100 @@ +# Le Note + +Le Note sono il concetto centrale a cui ruota intorno Misskey. Si riferiscono al contenuto che puรฒ includere testo, immagini, sondaggi e altro che viene pubblicato su Misskey. In questo contesto _ยซNotareยป_ viene utilizzato come verbo, per riferirsi alla creazione di una Nota. + +Componendo una Nota, verrร  aggiunta alla [Timeline](./timeline) e diventerร  visibile ai tuoi follower e agli altri profili nella istanza. + +Su Misskey, รจ possibile anche aggiungere [Reazioni](./reaction) alle Note. +Inoltre, puoi Rispondere o Citare una Nota. + +Inserendo una Nota tra le [Preferite](./favorite), potrai trovarla facilmente in futuro. + +## Comporre una Nota + +Per comporre la Nota premi il bottone con l'icona della matita, si aprirร  il modulo di composizione. Digita il contenuto che desideri pubblicare e premi il bottone **Nota** per pubblicarla. + +Le note possono contenere testi o allegati, come immagini o video. Oppure anche [Sondaggi](./poll). + +Inoltre, sfruttando [MFM](./mfm) nel testo, puoi anche includere [Menzioni](./mention) e [Hashtag](./hashtag). C'รจ anche la funzionalitร  ContentWarning e la scelta per l'ambito di pubblicazione. + +::: tip +Se sei al computer e hai copiato una immagine nel blocco appunti, poi allegarla semplicemente usando **Incolla** all'interno del campo di testo. +::: + +::: tip +Puoi anche premere Ctrl + Invio mentre digiti, per pubblicare immediatamente la Nota. +::: + +## Rinotare + +L'azione di _Citare_ una Nota esistente, di condividere un'altra, o la Nota stessa, risultato di queste azioni, sono chiamate **Rinota** (anche come verbo). + +Il piรน delle volte lo si fa per ricondividere una Nota che avevi scritto in passato. Siccome รจ possibile "Rinotare" piรน volte, fai attenzione poichรฉ potresti infastidire le altre persone. + +::: warning +Se hai impostato l'ambito di visibilitร  a **Solo Followers**, o **Diretto**, allora non รจ possibile _Rinotare_. +::: + +Per annullare un "Rinota", premi `...` vicino all'orario della Nota (angolo in alto a destra) e seleziona: **Annulla Rinota** + +## Content Warning (CW NSFW) + +Avviene quando il contenuto di una Nota รจ nascosto, affinchรฉ debba esserne richiesta esplicitamente la visibilitร . Questo per evitare che allegati espliciti o sensibili siano visti involontariamente. + +Puoi anche utilizzarlo per pubblicare degli **Spoiler** oppure Note che sarebbero troppo lunghe. + +Attiva il bottone "Nascondere media", quello con l'icona di un occhio sbarrato. Comparirร  un nuovo campo in cui indicare un riassunto del contenuto nascosto. + +## Ambito di visibilitร  + +Puoi impostare individualmente per ogni Nota in che ambito sarร  visibile. +Scegli premendo l'icona alla sinistra del bottone "Nota". + +### Pubblico + +La Nota sarร  visibile a tutti i profili del fediverso e non (sul web). +Comparirร  in tutte le Timeline (home, locale, sociale, globale). + +::: warning +Questa opzione non รจ disponibile se il tuo profilo รจ stato Silenziato. +::: + +### Home + +La Nota sarร  visibile a tutti i profili del fediverso e non (sul web), ma comparirร  solamente nella **Timeline Home** dei tuoi follower. + +### Followers + +La Nota sarร  visibile soltanto ai tuoi follower. Comparirร  in tutte le loro Timeline, soltanto a loro. + +### Diretta + +La Nota sarร  visibile soltanto ai profili indicati come destinatari. Comparirร  in tutte le Timeline dei profili indicati. + +### L'opzione "Soltanto locale" + +Se abiliti questa opzione, la Nota non verrร  federata nel fediverso, ma limitata alla tua istanza. + +### Tabella comparativa + + + + + +
PubblicaHomeFollowersDiretta
LTL/STL/GTL dei Followersโœ”โœ”โœ”
LTL/STL/GTL degli altriโœ”
+ +## Fissata in cima + +Una Nota fissata in cima al profilo, ottiene visibilitร  costante, poichรฉ compare prima delle altre. + +Per attivare questa opzione, scegli la voce ** Fissa sul profilo** dal menu Nota. + +::: tip +Puoi fissarne piรน di una. +::: + +## Osserva + +Di una Nota che non รจ tua, puoi ottenere notifiche delle risposte, reazioni, ecc, osservandola. + +Per attivare questa opzione, seleziona "Osserva" dal menu Nota. diff --git a/src/it/docs/features/online-status.md b/src/it/docs/features/online-status.md new file mode 100644 index 0000000000..8d91769b53 --- /dev/null +++ b/src/it/docs/features/online-status.md @@ -0,0 +1,38 @@ +# Status di presenza + +Lo **Status di presenza** di un profilo indica se sta usando Misskey. +Viene indicato tramite un pallino colorato all'angolo dell'immagine profilo. + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ColoreStatusDescrizione
๐ŸŸข VerdePresenzaSta usando Misskey proprio adesso
๐ŸŸก GialloAssenzaPersona assente ma profilo connesso
๐Ÿ”ด RossoDisconnessioneIl profilo non รจ connesso
โšซ GrigioSconosciutoStato di presenza non disponibile (privato)
+ +Il tuo **Stato di presenza** cambia automaticamente, non puรฒ essere impostato manualmente. Anche se puoi impostare che sia privato (grigio). + +::: warning +Attenzione alcune funzionalitร  come suggerirti alle persone, potrebbero essere basate sullo stato di presenza, dunque essere in stato privato (grigio) potrebbe rendere piรน difficile trovarti agli altri. +::: diff --git a/src/it/docs/features/plugin.md b/src/it/docs/features/plugin.md new file mode 100644 index 0000000000..5d47ffe557 --- /dev/null +++ b/src/it/docs/features/plugin.md @@ -0,0 +1,4 @@ +# Plug-ins +Misskey Web has a plugin facility that allows users to extend the functionality of Misskey Web. + +For information on how to create a plugin, see [this document](./advanced/create-plugin.md). diff --git a/src/it/docs/features/reaction.md b/src/it/docs/features/reaction.md new file mode 100644 index 0000000000..7cf2d8817c --- /dev/null +++ b/src/it/docs/features/reaction.md @@ -0,0 +1,29 @@ +# Le reazioni + +Questa funzionalitร  permette di interagire con le Note scritte da altri profili per mezzo delle emoji. +Per reagire, premere il bottone `+` (piรน), visibile sotto ogni nota. Apparirร  lo strumento per selezionare una emoji. +Si puรฒ reagire anche usando [emoji personalizzate](./custom-emoji.md). + +## Personalizzare la selezione delle reazioni + +Puoi scegliere quali emoji dovrebbero apparire nello strumento e gestire l'ordine in cui dovrebbero apparire. La configurazione avviene nel menu **Impostazioni ยป Reazioni** del tuo profilo. + +## Reazioni a istanze remote + +Poichรฉ le Reazioni sono una caratteristica personalizzata di Misskey, il piรน delle volte, alle altre istanze verrร  inviato un semplice ๐Ÿ‘ (Like), a meno che l'istanza remota sia in grado supportarle. + +Nello standard ActivityPub, di solito, viene implementato come โญ (Preferito) + +## Reazioni da istanze remote + +Poichรฉ **Misskey non ha i Like**, quelli provenienti da istanze remote verranno rappresentati come una Reazione ๐Ÿ‘ (Like). + +::: tip +Gli amministratori della tua istanza, potrebbero cambiare una impostazione per rappresentare i Like remoti come Reazione โญ (Preferito). +[Informazioni per amministratori](../admin/default-reaction.md). +::: + +## Elenco di tutte le tue Reazioni + +Puoi vedere lo storico, aprendo il tab **Reazioni** nella propria pagina profilo. +Puoi anche scegliere di renderle visibili pubblicamente nelle _Impostazioni Generali ยป Reazione_ diff --git a/src/it/docs/features/share-form.md b/src/it/docs/features/share-form.md new file mode 100644 index 0000000000..8575c4b3ce --- /dev/null +++ b/src/it/docs/features/share-form.md @@ -0,0 +1,58 @@ +# Modulo di condivisione + +Quando apri la pagina `/share` sulla tua istanza Misskey, apri un modulo per la condivisione via web. Utile, ad esempio, se vuoi che le persone iscritte possano condividere contenuti da un sito esterno. + +Puoi specificare alcune opzioni sui contenuti, tramite la configurazione dei parametri della URL. + +## Parametri della URL + +::: tip +Tutti i parametri sono facoltativi +::: + +| chiave | valore | +| ------- | --------------------------------------------------------------- | +| `title` | Il titolo, verrร  inserito prima del testo, tra parentesi quadre | +| `text` | testo della Nota | +| `url` | URL, inserito al termine della Nota | + +### Informazioni sulla risposta + +Puoi decidere che la Nota venga composta come risposta ad una Nota specifica, indicando uno dei seguenti parametri + +| chiave | valore | +| ---------- | -------------------------------------------------------------- | +| `replyId` | ID della Nota locale a cui vuoi rispondere | +| `replyUri` | URL a cui rispondere (specifica l'indirizzo di un post remoto) | + +### Informazioni sul Rinota + +Puoi decidere che la Nota venga composta come un Rinota di una Nota specifica, indicando uno dei seguenti parametri + +| chiave | valore | +| ----------- | --------------------------------------------------------- | +| `renoteId` | ID della Nota locale che vuoi Rinotare | +| `renoteUri` | URL da Rinotare (specifica l'indirizzo di un post remoto) | + +### Ambito di pubblicazione + +Queste opzioni ti permettono di scegliere in che ambito pubblicare + +| chiave | valore | +| ---------------- | ---------------------------------------------------------- | +| `visibility` | deve essere `public`, `home`, `followers` o `specified` | +| `localOnly` | 0 (Falso) oppure 1 (Vero) | +| `visibleUserIds` | target user IDs | +| `visibleAccts` | target user [acct](../glossary.md#acct)s (comma separated) | + +::: warning +Se `visibility` viene impostato a `specified`, allora occorre inviare anche uno dei parametri `visibleUserIds` o `visibleAccts`. +::: + +### Allegati + +Puoi specificare allegati caricati nel Drive. + +| chiave | valore | +| --------- | --------------------------------------------- | +| `fileIds` | ID dei file da allegare (separati da virgole) | diff --git a/src/it/docs/features/thread-mute.md b/src/it/docs/features/thread-mute.md new file mode 100644 index 0000000000..0413978033 --- /dev/null +++ b/src/it/docs/features/thread-mute.md @@ -0,0 +1,15 @@ +# Silenziare una conversazione + +::: tip +Funzionalitร  disponibile dalla versione 12.95.0 +::: + +**Silenzia la conversazione** permmette di nascondere le risposte ad una specifica Nota (quella che ha originato tutta la discussione). Si puรฒ attivare anche da una delle risposte. + +Silenziando la conversazione, non otterrai piรน le relative notifiche di risposta, nemmeno se qualcuno ti menziona. + +Per attivare l'opzione, apri il menu di una Nota compresa nella discussione che vuoi silenziare e scegli **Silenzia la conversazione**. + +::: warning +Attenzione: Verrร  silenziata tutta la conversazione, a prescindere da quale risposta sia stata selezionata. +::: diff --git a/src/it/docs/features/word-mute.md b/src/it/docs/features/word-mute.md new file mode 100644 index 0000000000..bbd957eb8e --- /dev/null +++ b/src/it/docs/features/word-mute.md @@ -0,0 +1,25 @@ +# Filtri parole + +Filtrando alcune parole si puรฒ evitare che le Note che includono determiante parole evitino di comparire nella Timeline. + +Ci sono due tipi di filtri per le parole: + +- Leggero +- Pesante + +## Leggero + +Col filtro parole Leggero, il filtraggio avviene nell'ambito del client o App che stai usando su quel dispositivo. + +Quando la Nota coincide con le condizioni, verrร  nascosta e al suo posto comparirร  il testo: ยซ(nome profilo) ha detto qualcosaยป. Cliccandola, diventerร  visibile. + +## Pesante + +Col filtro parole Pesante, l'istanza decide quando una Nota in arrivo coincide con le condizioni indicate ed evita di spedirla al client. Come succede con le ยซAntenneยป. + +Verrร  proprio esclusa dalla Timeline. Per riassumere: + +- Scompariranno solo le nuove Note create dopo la configurazione del filtro Pesante +- Se cambiano le condizioni, le Note precedenti non saranno comunque disponibili +- Nelle Timeline non vedrai nemmeno il testo ยซ(nome profilo) ha detto qualcosaยป +- I filtri Pesanti funzionano anche se la App che stai usando non ha la funzionalitร  di filtraggio diff --git a/src/it/docs/glossary.md b/src/it/docs/glossary.md new file mode 100644 index 0000000000..270d96b954 --- /dev/null +++ b/src/it/docs/glossary.md @@ -0,0 +1,117 @@ +# Glossario + +Quel che segue รจ un glossario di termini correlati a Misskey, tradotti in italiano. + +## ActivityPub + +Il protocollo usato per rendere Misskey distribuito. Aderendo a questo protocollo di comunicazione si garantisce all' [istanza](#istanza) di poter comunicare con il [Fediverso](#fediverso) +The protocol (method) used for enabling the distributed nature of Misskey. By adhering to this protocol, communication with other instances that also follow it becomes possible, forming what is known as the Fediverse. + +## AiScript + +[Linguaggio di programmazione](../advanced/aiscript) per estendere le funzioni nell'interfaccia web di Misskey. + +## API + +Interfaccia di programmazione dell'applicazione, serve per interagire con Misskey in modo programmato e automatizzato. [Informazioni sulle API](../docs/api) + +## Bot + +Contrazione di: Robot. Si tratta di un profilo non presidiato, programmato per svolgere attivitร  automatizzate. + +## CW + +Abbreviazione di [Content Warning](../docs/features/note.html#cw). Una funzionalitร  per nascondere i contenuti espliciti o sensibili, affinchรฉ non risultino visibili inavvertitamente ma solo su richiesta. + +## Fediverso + +Network di [istanze](#istanza) composto da varie piattaforme intercomunicanti, incluso Misskey. + +## GTL + +Abbreviazione di [Global TimeLine](../features/timeline) + +## HTL + +Abbreviazione di [Home TimeLine](../features/timeline) + +## Istanza + +Piattaforma aggregatrice di profili, che dialoga con altre istanze nel [Fediverso](#fediverso) mediante il protocollo di comunicazione [ActivityPub](#activitypub) + +## LTL + +Abbreviazione di [Local TimeLine](../features/timeline) + +## MFM + +Abbreviazione di [Markup For Misskey](../features/mfm), si tratta di un linguaggio di marcatura di tipo _MarkDown_ usabile nella interfaccia web di Misskey. + +## NSFW + +Abbreviazione di [Not Safe For Work]. Pubblicando una nota con questa parola in un hashtag: `#nsfw` si permette al fediverso di nascondere i contenuti espliciti e renderli visibili solamente a chi ne fa richiesta. + +## Rinota + +L'azione di citare una nota esistente, condividendola per intero. [Maggiori informazioni](../docs/features/note.html#renote). + +## STL + +Abbreviazione di [Social TimeLine](../features/timeline) + +## Ai(่—) + +Ai(่—) รจ un personaggio di fantasia, la mascotte di Misskey. + +## Profili attivi + +Sono i profili che producono attivitร  recente. + +## Emoji personalizzati + +Emoticon messe a disposizione sull'istanza. Alcuni di essi sono disponibili automaticamente, come sui dispositivi mobili, si chiamano _"Emoji Unicode"_. [Maggiori informazioni](../docs/features/custom-emoji) + +## Pannello di controllo + +Una interfaccia web amministrativa che permette di gestire l'istanza, come le segnalazioni, l'andamento delle federazioni, l'assistenza ai profili. + +## Silenziare + +Caratteristica del profilo. Un [profilo silenziato](../features/silence) non potrร  piรน aggiungere _note pubbliche_ finchรฉ non otterrร  la revoca. + +## Job Queue - Coda di lavoro + +Sistema per la distribuzione delle attivitร  da e verso altre istanze. + +## Sospensione + +Caratteristica reversibile che rende un profilo inutilizzabile. Di solito viene attribuita dagli amministratori di una istanza nei confronti di profili che violano il regolamento. + +## Drive + +Funzionalitร  che permette ai profili di [organizzare i file caricati](../features/drive) +su Misskey. + +## Note + +Contenuto inserito su Misskey, che puรฒ includere: testo, immagini, audio, video, sondaggio. [Maggiori informazioni](../docs/features/note) + +## Misskist + +Nome di fantasia usato per riferirsi alle persone che utilizzano Misskey + +## Moderatore + +Persone autorizzate dagli amministratori a gestire la comunitร  di una istanza. Possono attivare-disattivare i profili, silenziarli, eliminare note inappropriate. + +## Remoto + +Un profilo o una nota, che risiedono su un'altra istanza. L'opposto di _Locale_. + +## Federazione + +L'attivitร  di condividere le informazioni tra istanze + +## Locale + +Un profilo o una nota, che risiedono sulla propria istanza. L'opposto di _Remoto_. diff --git a/src/it/docs/install.md b/src/it/docs/install.md new file mode 100644 index 0000000000..94f8b537ed --- /dev/null +++ b/src/it/docs/install.md @@ -0,0 +1,21 @@ +# Crea la tua istanza Misskey + +Grazie per il tuo interesse nel costruire una istanza Misskey ๐Ÿš€ + +Ci sono vari modi per crearne una, scegli tra quelli elencati e segui la relativa guida. + +## Usando Docker (raccomandato) + +Se vuoi eseguire l'istanza in un container segui la [guida di installazione con Docker](./install/docker.html) + +## Usando uno script bash + +Se vuoi usare uno script automatico, segui la [guida installazione con script bash](./install/bash.html) + +## In modo manuale + +Se vuoi svolgere l'installazione passo passo, segui la [guida installazione manuale](./install/manual.html) + +## Usando YunoHost + +Misskey puรฒ essere installato come App di YunoHost, la documentazione si trova nel [repository della versione Misskey per YunoHost](https://github.com/YunoHost-Apps/misskey_ynh). diff --git a/src/it/docs/misskey-hub.md b/src/it/docs/misskey-hub.md new file mode 100644 index 0000000000..63a535285a --- /dev/null +++ b/src/it/docs/misskey-hub.md @@ -0,0 +1,17 @@ +# Informazioni su Misskey Hub + +Misskey Hub รจ il sito ufficiale di Misskey. Distribuisce la documentazione, notizie tramite il blog, e plugin tramite lo store. + +Ci auguriamo che sia il punto centrale per tutto quel che รจ Misskey. + +Anche il codice sorgente di questo sito รจ [open source](https://github.com/misskey-dev/misskey-hub). + +::: tip +Le pagine statiche di Misskey Hub vengono realizzate dinamicamente tramite [VuePress](https://github.com/vuepress/vuepress-next). +::: + +- [Cronologia aggiornamenti](../updates.md) + +## Contribuire alla redazione del sito + +Accettiamo ulteriore documentazione e traduzioni. diff --git a/src/it/docs/misskey.md b/src/it/docs/misskey.md new file mode 100644 index 0000000000..5e80cab0ae --- /dev/null +++ b/src/it/docs/misskey.md @@ -0,0 +1,90 @@ +# Informazioni su Misskey + +Misskey รจ una piattaforma di microblog distribuita. Lo sviluppo รจ stato iniziato da **@syuilo** nel 2014, in Giappone. + +La caratteristica principale di questa piattaforma federata รจ l'abbondanza di funzionalitร , come ad esempio il Drive per salvare e riusare i media caricati, come immagini, audio e video. Le reazioni, non limitate alla sola stellina o pollicione. Come anche la capacitร  di modificare l'interfaccia a piacere dell'utilizzatore, senza dover scrivere una linea di codice. + +## Storia + +Sebbene Misskey fosse nato come Forum/Chan, la crescita di popolaritร  รจ dovuta all'aggiunta della **timeline**. Questa permette, alle persone che utilizzano la piattaforma, di leggere e scrivere "piccoli" messaggi in ordine cronologico. + +Presto la funzionalitร  _timeline_ divenne la caratteristica principale e, nel 2018, con l'adozione del protocollo **ActivityPub**, Misskey divenne una vera e propria istanza federata decentrata. + +Da quel giorno, sempre migliorando, รจ divenato tra i sistemi piรน apprezzati dalle persone nel fediverso. + +::: tip +GOSSIP! Il nome **"Misskey"** deriva da una canzone intitolata _"Brain Diver"_, composta dalla band _"May'n"_ che @syuilo ascoltava durante i periodi di sviluppo +::: + +Finchรฉ ci saranno sviluppatori capaci di intervenire, Misskey verrร  sempre sviluppato attivamente. + +## Cosa significa _"Distribuito"_ + +Un servizio **Distribuito**, o **Decentralizzato** si riferisce a quella caratteristica che permette di suddividere l'insieme totale della comunitร  in piรน parti, piรน o meno grandi, chiamate istanze. + +Le istanze comunicano in maniera mutuale, si dice che sono **federate** da cui deriva il neologismo **Fediverso**. Il fediverso compone, dunque, la rete di piattaforme che mettono in comunicazione tra loro persone provenienti da istanze diverse. + +Al contrario dei servizi _centralizzati_, gestiti da una sola persona o compagnia, come ad esempio Twitter o Facebook. + +Il vantaggio dei sistemi distribuiti รจ quello di selezionare l'istanza, le cui regole di policy piรน si adattano alle esigenze di libertร  ed espressione delle persone. + +Trattandosi di software Open Source, chiunque รจ in grado di avviare una propria istanza, che, grazie alla capacitร  di federarsi, permetterร  l'accesso alla community indifferentemente dalla provenienza. + +## Per sempre Open Source + +Misskey, da sempre e per sempre, rimarrร  software Open Source, ovvero a sorgente aperto. + +Il software Open Source รจ disponibile a tutti, permette, oltre alla capacitร  di usarlo, la capacitร  di correggerlo, modificarlo e ri-distribuirlo. + +L'interezza del codice sorgente di Misskey รจ protetto dalla licenza [Affero General Public License](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) che garantisce _le quattro libertร _. + +- Libertร  0: eseguire il programma, per qualsiasi scopo +- Libertร  1: studiare come funziona e modificarlo a piacimento +- Libertร  2: ridistribuire copie in modo solidale +- Libertร  3: migliorare il programma e ridistribuire le modifiche affinchรฉ il pubblico possa fruirne + +Il vantaggio del codice studiabile da tutti รจ che tutti possono assicurarsi che il funzionamento non provochi danneggiamento e contribuire a migliorarne la sicurezza. + +Per la natura distribuita di Misskey, la necessitร  che sia Open Source, รจ basilare. Al contrario dei sistemi centralizzati citati poc'anzi. + +::: tip +In linguaggio tecnico, il codice sorgente di Misskey viene gestito tramite **Git** e il codice viene ospitato sul sito [GitHub.](https://github.com/misskey-dev) +::: + +## Unirsi allo sviluppo e supportare il progetto + +Se ti piace Misskey, per favore supporta il progetto. +Si puรฒ fare in vari modi, di seguito speghiamo come. Alcuni di questi non richiedono la capacitร  di saper programmare, cosรฌ tutti possono partecipare a loro modo, senza limitazioni tecniche. + +### Aggiungere funzionalitร  o correggere malfunzionamenti + +Sei in grado di programmare sfruttando le tue capacitร  di sviluppo software? Allora puoi contribuire al progetto modificando il codice sorgente. Le [linee guida per contribuire](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md) ti indicheranno come fare. + +### Partecipare ai dialoghi + +Puoi contribuire condividendo la tua opinione sul funzionamento di Misskey o proponendo nuove funzionalitร , come, non meno importante la segnalazione di malfunzionamenti. +Questo avviene su [GitHub](https://github.com/misskey-dev) oppure nei [Forum](https://forum.misskey.io/). + +### Traduzione dei testi + +Misskey รจ disponibile in vari linguaggi (i18n, abbreviazione di Internationalization). +Sebbene il linguaggio originale sia il giapponese, tanti volontari stanno traducendo Misskey nelle altre lingue, tra cui l'italiano. + +Aiutare col lavoro di traduzione รจ un altro modo per contribuire. L'attivitร  si svolge su un servizio chiamato [Crowdin](https://crowdin.com/project/misskey). + +### Condividere le proprie impressioni + +Oltre alla segnalazione dei malfunzionamenti, puoi condividere impressioni positive, indicando ad esempio, quali funzionalitร  preferisci o quelle che ti divertono di piรน. Sembrerร  una banalitร  ma cose come queste aiutano a motivare gli sviluppatori e contano come supporto morale al progetto. + +### Aumentare il numero di Misskist + +"Misskist" si usa per indicare le persone che usano Misskey. Spargendo la voce col passa parola, parlandone ai propri conoscenti, il numero puรฒ aumentare e contribuisce a migliorare la motivazione degli sviluppatori. + +### Le donazioni + +Sviluppare Misskey non รจ un lavoro, lo sviluppo continuativo รจ determinato dalle donazioni di tutti quanti. Alcune istanze guadagnano mostrando piccoli annunci ma questi arrivano direttamente nelle tasche degli amministratori della istanza, non agli sviluppatori. + +Poichรฉ le donazioni danno continuitร  allo sviluppo del progetto, sono un ulteriore modo di supportare Misskey. Si accettano donazioni tramite [Patreon](https://www.patreon.com/syuilo). +Raggiungendo un certo corrispettivo, puoi ottenere il riconoscimento di avere la tua username in mostra nella pagina intitolata: [Informazioni sulla istanza](/about-misskey). + +In aggiunta a tutto ciรฒ, non รจ detto che gli amministratori di una istanza riescano a guadagnare, poichรฉ mantenerne una funzionante ha dei costi. Supportare gli amministratori non รจ direttamente correlato allo sviluppo della piattaforma Misskey, ma la sopravvivenza dei server รจ quel che mantiene in piedi il progetto. diff --git a/src/it/docs/releases.md b/src/it/docs/releases.md new file mode 100644 index 0000000000..53ed5e84cd --- /dev/null +++ b/src/it/docs/releases.md @@ -0,0 +1,21 @@ +# Note di rilascio + +Elenco delle note su ogni rilascio di Misskey, tradotte in italiano. + +::: tip +Attenzione, i rilasci non tradotti in italiano, sono visibili nella pagina [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) del progetto. Abbiate cura di prenderne visione, per ottenere informazioni aggiornate puntualmente. +::: + +## Rilascio 12.119.0 (2022-09-10) + +### Miglioramenti + +- Client: Aggiunto il badge "stai seguendo", nella preview popup del profilo, @nvisser +- Client: Si puรฒ usare come Riquadro la url Twitter Mobile, @caipira113 +- Client: Riquadro orologio migliorato, @syuilo + +### Soluzioni + +- Risolto un problema che causava il fallimento delle migrazioni +- Server: Risolto il problema con la possibilitร  di contrassegnare le notifiche di altre persone come lette, @syuilo +- Client: Risolto il problema con la schermata di gestione del token di accesso, la schermata di gestione dell'account non puรฒ essere visualizzata, @futchitwo diff --git a/src/it/docs/tips/disable-timelines.md b/src/it/docs/tips/disable-timelines.md new file mode 100644 index 0000000000..974ab29153 --- /dev/null +++ b/src/it/docs/tips/disable-timelines.md @@ -0,0 +1,18 @@ +# Disabilitare le timeline + +In Misskey si possono disabilitare individualmente le Timeline tramite interfaccia web, nel **pannello di controllo** + +Poichรฉ tutte le Note nell'istanza si possono vedere sia sulla _Timeline Locale_ che sulla _Timeline Sociale_, esse sono comode alle nuove persone che arrivano, per trovare altri profili a cui sono interessate, senza dover svolgere ricerche. + +Tuttavia questo diluisce la visibilitร  dei profili che si seguono, aumentando il rischio di esporsi a contenuti irrilevanti. + +In piรน l'effetto รจ piรน simile a quello di una Chatroom in cui si intersecano una moltitudine di dialoghi, risultando difficile entrare in comunicazione con chi sta dialogando da parecchio tempo nella conversazione. + +Poichรฉ il valore di questi vantaggi o svantaggi varia in ogni istanza, la scelta di utilizzare le **Timeline** o meno viene lasciata agli amministratori di ogni singola istanza. Dunque considera se sia meglio attivarle o disattivarle. + +::: warning +Disabilitare le **Timeline** potrebbe portare confusione e rinuncia da parte delle persone utilizzatrici della piattaforma. +Quindi, fai molta attenzione a considerare gli effetti che possono succedere disabilitandone una. Spiega chiaramente le motivazioni in anticipo, affinchรฉ le persone si possano preparare al cambiamento. Ad esempio iniziando a seguire profili con cui dialogano spesso sulla **Timeline Locale** oppure sulla **Timeline Social**. +::: + +Attenzione, perchรฉ amministratori e moderatori, continueranno comunque a vedere le timeline, anche se sono state disattivate. diff --git a/src/it/docs/troubleshooting.md b/src/it/docs/troubleshooting.md new file mode 100644 index 0000000000..4477001232 --- /dev/null +++ b/src/it/docs/troubleshooting.md @@ -0,0 +1,72 @@ +--- +description: "Se ti capita un problema, prima di tutto leggi questa pagina" +--- + +# Risoluzione autonoma dei problemi + +::: tip +Per favore, leggi anche le [FAQ, domande frequenti](./faq.md) +::: + +Se ti capita un problema, prima di tutto leggi questa pagina. +Se non trovi suggerimenti utili o la procedura non risolve il problema, contatta l'amministratore dell'istanza oppure [apri una segnalazione](./report-issue) in inglese o giapponese. + +## Il client non si avvia + +Probabilmente รจ successo perchรฉ la versione del browser o del sistema operativo non รจ aggiornata. Riprova dopo aver aggiornato. + +Capita raramente, se comunque non si avvia, potrebbe essere dovuto alla memorizzazione _cache_. Svuota la cache del browser e riprova. + +## La pagina non puรฒ essere caricata + +Se il client si avvia, ma viene visualizzato un errore che indica di non riuscire a caricare la pagina, verificare la presenza di problemi nella rete. Inoltre, controlla se il server รจ online. + +Capita raramente, ma potrebbe essere dovuto alla memorizzazione _cache_. Svuota la cache del browser e riprova. + +Se hai ancora problemi, contatta l'amministratore dell'istanza poichรฉ sembra essere un problema del server. + +## Il client รจ lento + +Controllare la connessione col provider di servizi Internet, controllare la velocitร  di comunicazione della rete e le impostazioni di rete, quindi verificare se si sono verificati guasti o interventi di manutenzione al server. +Successivamente, controllare le seguenti impostazioni. + +### Impostazioni Generali + +Nel _Menu impostazioni_, apri _Impostazioni client_, alla voce **Generali** e controlla le seguenti impostazioni: + +- Attiva "Ridurre le animazioni dell'interfaccia" +- Disattiva "Usa effetto sfocatura per i modali" +- Attiva "Usa carattere predefinito del sistema" +- Attiva "Usare le emoji native del sistema" + +Si prega di controllare eventualmente anche le seguenti impostazioni, con la consapevolezza che mancheranno alcune funzioni di Misskey: + +- Attiva "Disabilita AIscript nelle pagine" +- Attiva "Disabilita i MFM animati" + +### Impostazioni del browser + +- Attiva l'accelerazione hardware nelle impostazioni del tuo browser +- Controlla le impostazioni dei componenti aggiuntivi e delle estensioni del browser o disattivale + +### Altre impostazioni + +Controlla le impostazioni di sistema sul tuo PC o smartphone, ad esempio che non ci siano altre applicazioni a consumare risorse. + +## La segnalazione lampeggiante di una Antenna non vuole andare via + +La segnalazione lampeggiante indica note non lette. Nel caso in cui non scomparisse, significa che qualche ulteriore nota viene spedita in fondo da nuove note in arrivo. +Se pensi che sia un conteggio errato, puoi **indicare tutto come letto** tramite le impostazioni utente. + +## Il bottone _Rinota_ รจ bloccato + +Le note con livello di privacy _Per i soli follower_ non possono essere rinotate. + +## Non si vedono parti specifiche della interfaccia web + +Potrebbero sorgere provlemi di questo tipo quando usi una estensione AdBlocker, di blocco pubblicitร . +Per un uso ottimale, per favore disattiva il tuo AdBlocker. + +## Alcune parti risultano non tradotte + +Potrebbe essere che effettivamente quella parte non sia stata ancora tradotta, anzichรฉ un malfunzionamento. Aspetta qualche tempo, oppure [partecipa alla traduzione](./misskey). diff --git a/src/it/home.md b/src/it/home.md new file mode 100644 index 0000000000..1d3ae3ca4c --- /dev/null +++ b/src/it/home.md @@ -0,0 +1,61 @@ +--- +home: true +title: Misskey Hub +heroImage: /banner.svg +tagline: Sito ufficiale di Misskey, la piattaforma opensource di microblog interplanetario +footer: Copyright © 2022 syuilo ed altri co-autori +actions: + - text: Getting started + link: ./docs/getting-started + type: primary + - text: What is Misskey? + link: ./docs/misskey + type: secondary +features: + - title: Distributed ๐Ÿช + details: Independent communities are run on multiple servers, and these are interconnected. + - title: Lightweight ๐Ÿš€ + details: Because it uses Node.js, which runs at high speed, it is lightweight even when federated with a large number of servers. + - title: Fun ๐Ÿฎ + details: It has distinctive features such as reactions and a highly customizable UI. +--- + + + + + +
+ +# Sponsors + +
+ RSS3 +
+
+ + diff --git a/src/it/instances.md b/src/it/instances.md new file mode 100644 index 0000000000..f3763a5a4e --- /dev/null +++ b/src/it/instances.md @@ -0,0 +1,18 @@ +# Elenco delle istanze Misskey + +::: tip +Se vuoi fare comparire anche la tua istanza, per favore contattaci su [Discord](https://discord.gg/Wp8gVStHW3) (in Giapponese o inglese) altrimenti invia una pull-request su [GitHub](https://github.com/misskey-dev/misskey-hub). +::: + + + +In alternativa, puoi trovare una istanza anche nella [lista non ufficiale](https://join.misskey.page/en-US/instances). + + diff --git a/src/it/plugins.md b/src/it/plugins.md new file mode 100644 index 0000000000..8a489abed5 --- /dev/null +++ b/src/it/plugins.md @@ -0,0 +1,15 @@ +# Elenco dei plugin + +Una collezione di [plugins](./docs/features/plugin.md) che puoi installare tramite l'interfaccia web di Misskey. + +::: tip +Se vuoi mostrare il tuo plugin qui, leggi [inviare i plugin](#Submitting-Plugins). in fondo alla pagina +::: + +## Plugin + +- TODO + +## Inviare i plugin + +TODO From bb95893d1e93b90d13d3989e86a7990d7eca90ad Mon Sep 17 00:00:00 2001 From: tamaina Date: Thu, 24 Nov 2022 18:15:50 +0900 Subject: [PATCH 078/296] =?UTF-8?q?Ubuntu=E7=89=88Misskey=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E8=A9=B3=E8=AA=AC=20(#112)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create ubuntu-manual.md * Update ubuntu-manual.md * Update ubuntu-manual.md * Update ubuntu-manual.md * Update ubuntu-manual.md * Update ubuntu-manual.md --- src/docs/install/ubuntu-manual.md | 529 ++++++++++++++++++++++++++++++ 1 file changed, 529 insertions(+) create mode 100644 src/docs/install/ubuntu-manual.md diff --git a/src/docs/install/ubuntu-manual.md b/src/docs/install/ubuntu-manual.md new file mode 100644 index 0000000000..9ba429a0b3 --- /dev/null +++ b/src/docs/install/ubuntu-manual.md @@ -0,0 +1,529 @@ +# Ubuntu็‰ˆMisskeyใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ•่ฉณ่ชฌ + +## ใใฎไป–ใฎMisskeyใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ• + +- [ๅŸบๆœฌ็‰ˆ Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html) +- [ใใฎไป–ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ•ไธ€่ฆง](../install.html) + +## ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎใŠ็Ÿฅใ‚‰ใ› + +::: tip +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎ้–‹็™บ็’ฐๅขƒใธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๆƒณๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ +::: + +ใ‚ณใƒ”ใƒšใฐใ‹ใ‚Šใงใคใพใ‚‰ใชใ„๏ผๆ™‚้–“ใŒใ‹ใ‹ใ‚‹๏ผใจใซใ‹ใ้ขๅ€’๏ผ +โ€ฆโ€ฆใ‚ใ‚Œใ€ใ‚ณใƒ”ใƒšใ ใ‘ใงใงใใ‚‹ใชใ‚‰ใ€ๅฎŒๅ…จ่‡ชๅ‹•ๅŒ–ใงใใ‚‹ใฎใงใฏ๏ผŸ + +ใจใ„ใ†ใ‚ใ‘ใงใ€**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใปใผๅ…จ้ƒจใ‚„ใฃใฆใใ‚Œใ‚‹ใ‚„ใคใ‚’ไฝœใฃใฆใฟใพใ—ใŸ๏ผ**\ +[**่ฉณ็ดฐใจไฝฟ็”จๆ–นๆณ•ใฏใ“ใกใ‚‰ใ‹ใ‚‰๏ผ**](./bash.html) + +ใƒ‰ใƒกใ‚คใƒณใฎ่ณผๅ…ฅใจCloudflareใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ€ใ‚ตใƒผใƒใƒผใฎ็ขบไฟใซใคใ„ใฆใฏใ”่‡ช่บซใงใ”ๆบ–ๅ‚™ใใ ใ•ใ„ใ€‚ + +ไธๅ…ทๅˆใŒใ‚ใ‚Œใฐ[@aqz@p1.a9z.devใธใฎใƒกใƒณใ‚ทใƒงใƒณ](https://p1.a9z.dev/@aqz)ใซใฆใŠ็Ÿฅใ‚‰ใ›ใ„ใŸใ ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™ใ€‚ + +## ใ“ใฎ่จ˜ไบ‹ใซใคใ„ใฆ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใง็ดนไป‹ใ•ใ‚Œใฆใ„ใ‚‹้€šใ‚Šใ€systemdใงMisskeyใ‚’ๅ‹•ไฝœใ•ใ›ใฆใ„ใพใ™ใ€‚ + +[docker-compose](https://github.com/misskey-dev/misskey/blob/develop/docs/docker.ja.md)ใชใ‚‰ใ€ๆ‰‹ไฝœๆฅญใงใ‚‚ใ‚‚ใ†ใกใ‚‡ใฃใจ็ฐกๅ˜ใซๅฎŸ่กŒใงใใ‚‹ใฏใšใงใ™ใ€‚ + +Misskeyใ ใ‘ใ‚’Dockerใงๅ‹•ไฝœใ•ใ›ใ‚‹ๆ–นๆณ•ใฏ่งฃ่ชฌใ‚’ๆ–ญๅฟตใ—ใพใ—ใŸใ€‚\ +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏMisskeyใ ใ‘ใ‚’Dockerใงๅ‹•ไฝœใ•ใ›ใ‚‹ใ“ใจใŒใงใใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚ + +## ใฏใ˜ใ‚ใซ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใ‚’ๅŸบใซใ€ไธ€่ˆฌ็š„ใชUbuntuใ‚ตใƒผใƒใƒผใธMisskeyใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ๅ…ฌ้–‹ใ™ใ‚‹ๆ–นๆณ•ใฎไธ€ๆŒ™ๆ‰‹ไธ€ๆŠ•่ถณใ‚’่งฃ่ชฌใ™ใ‚‹ใ€‚ + +Bashใฎใ‚ณใƒžใƒณใƒ‰ๅ…ฅๅŠ›ใ€ใ„ใใคใ‹ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ็ทจ้›†ใ€ใใ—ใฆใƒ–ใƒฉใ‚ฆใ‚ถใฎๆ“ไฝœใ ใ‘ใง่จญๅฎšใŒๅฎŒไบ†ใ™ใ‚‹ใ‚ˆใ†ใซใ—ใฆใ„ใ‚‹ใ€‚ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใซใคใ„ใฆ็ฐกๅ˜ใซ่ชฌๆ˜Žใ—ใฆใ„ใ‚‹ใŒใ€ๆฐ—ใซใ™ใ‚‹ๅฟ…่ฆใฏใชใ„ใ€‚ + +ๅคงใพใ‹ใชๆตใ‚ŒใฏไธŠใฎ**็›ฎๆฌก**ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ๅฑ•้–‹ใ™ใ‚‹ใ“ใจใง็ขบ่ชใงใใ‚‹ใ€‚ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€ๅ…ทไฝ“ๆ€งใ‚’้‡่ฆ–ใ—ใ€็‰นๅฎšใฎ็’ฐๅขƒใซ็‰นๅŒ–ใ—ใŸ่จ˜่ฟฐใ‚’ใ—ใฆใ„ใ‚‹ใ€‚ + +OSใฎ้•ใ„ใ€Misskeyๆœฌไฝ“ใ‚„ไพๅญ˜ใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใƒใƒผใ‚ธใƒงใƒณใ‚ขใƒƒใƒ—ใงๅค‰ใ‚ใฃใฆใ—ใพใฃใŸ้ƒจๅˆ†็ญ‰ใŒใ‚ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใŒใ€ใ”ๅฎน่ตฆใ„ใŸใ ใใŸใๆ€ใ†ใ€‚ + +ใ‚ใ‹ใ‚‰ใชใ„ๅ˜่ชžใซใคใ„ใฆใฏใ€[ใ€Žใ€Œๅˆ†ใ‹ใ‚Šใใ†ใ€ใงใ€Œๅˆ†ใ‹ใ‚‰ใชใ„ใ€ใงใ‚‚ใ€Œๅˆ†ใ‹ใฃใŸใ€ๆฐ—ใซใชใ‚Œใ‚‹IT็”จ่ชž่พžๅ…ธใ€](https://wa3.i-3-i.info/) ใง่ชฟในใฆๅˆ†ใ‹ใฃใŸๆฐ—ใซใชใฃใฆใปใ—ใ„ใ€‚ + +## ็’ฐๅขƒใจๆกไปถ + +* OSใฏ**Ubuntu 22.04.1 LTS**ใ‚’ๅˆฉ็”จใ™ใ‚‹ใ€‚ +* ใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ข่ฆไปถใจใ—ใฆใฏใ€CPUใฏๆœ€่ฟ‘ใฎใ‚‚ใฎใชใ‚‰ๆœ€ๅฐ้™ใงๅ‹•ใใ€‚ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใฏamd64ๅŠใณarm64ใ‚’ๆƒณๅฎšใ—ใฆใ„ใ‚‹ใ€‚ +* ใƒกใƒขใƒชใฏ1.5GB็จ‹ๅบฆใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚๏ผˆViteใฎๅฐŽๅ…ฅ็ญ‰ใซใ‚ˆใ‚Šใ€1.5GB็จ‹ๅบฆใงใ‚‚ใƒ“ใƒซใƒ‰ๅฏ่ƒฝใซใชใฃใŸ๏ผ‰ +* ็‹ฌ่‡ชใฎใƒ‰ใƒกใ‚คใƒณใ‚’่ณผๅ…ฅใ—ใ€CloudFlareใ‚’ไฝฟ็”จใ™ใ‚‹ใ€‚ +* ใƒ‰ใƒกใ‚คใƒณใฏ[Google Domains](https://domains.google/intl/ja_jp/)ใชใฉใงไบˆใ‚็”จๆ„ใ—ใฆใŠใใ“ใจใ€‚ +* ใ“ใ“ใงใฏใƒ‰ใƒกใ‚คใƒณใ‚’example.tldใจใ—ใฆ่งฃ่ชฌใ‚’้€ฒใ‚ใ‚‹ใฎใงใ€่‡ชๅˆ†ใŒ่ฒทใฃใŸใƒ‰ใƒกใ‚คใƒณใซ้ฉๅฎœ็ฝฎใๆ›ใˆใฆ่ชญใ‚€ใ“ใจใ€‚้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏlocalhostใจ่ชญใฟๆ›ฟใˆใพใ™๏ผˆ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ้ …ใงๅˆฅ้€”่ชฌๆ˜Ž๏ผ‰ + +## nanoใฎไฝฟใ„ๆ–น + +ไปŠๅ›žใฏใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒ‡ใ‚ฃใ‚ฟใƒผใซnanoใ‚’ไฝฟใ†ใ€‚ๆฌกใฎใ‚ˆใ†ใซ่ตทๅ‹•ใ™ใ‚‹ใ€‚ + + nano /path/to/file + +ไธ€่ˆฌ็š„ใช็Ÿขๅฐใƒœใ‚ฟใƒณใ‚„Home/Endใชใฉใ‚’ๅˆฉ็”จใ—ใฆใ‚ซใƒผใ‚ฝใƒซใ‚’็งปๅ‹•ใงใใ‚‹ใ€‚ + +็ต‚ไบ†ใฏCtrl+Xใงใ€ๅค‰ๆ›ดใ‚’ไฟๅญ˜ใ™ใ‚‹ใ‹่žใ‹ใ‚ŒใŸๅ ดๅˆY(Yes)ใ‚’ๅ…ฅๅŠ›ใ—Enterใ™ใ‚‹ใจไฟๅญ˜ใงใใ‚‹ใ€‚ + +ไธ‹้ƒจใซใ‚ณใƒžใƒณใƒ‰ไธ€่ฆงใŒ่กจ็คบใ•ใ‚Œใ‚‹ใฎใงใ€^ใ‚’Ctrlใ€M-ใ‚’Altใจ่ชญใฟๆ›ฟใˆใฆๅ‚่€ƒใซใ—ใ‚ˆใ†ใ€‚ + +## ใƒฆใƒผใ‚ถใƒผใฎไฝœๆˆ + +MisskeyใฏrootใงๅฎŸ่กŒใ—ใชใ„ๆ–นใŒใ‚ˆใ„ใŸใ‚ใ€ๅฐ‚็”จใฎใƒฆใƒผใ‚ถใƒผใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo adduser --disabled-password --disabled-login misskey + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏใƒฆใƒผใ‚ถใƒผใ‚’ๅˆ†ใ‘ใ‚‹ๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ +::: + +## ๅŸบๆœฌ็š„ใชใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใจ่จญๅฎš + +ๅŸบๆœฌ็š„ใชใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’่กŒใ†ใ€‚ + +### Node.js + +Node.jsใฏใ€ใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰JavaScript็’ฐๅขƒใงใ‚ใ‚Šใ€MisskeyใฎๅŸบๆœฌ็š„ใชๅฎŸ่กŒ็’ฐๅขƒใงใ‚ใ‚‹ใ€‚ + + sudo apt install -y curl + + curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - + + sudo apt install -y nodejs + + # Node.jsใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใฎใงใ€ใƒใƒผใ‚ธใƒงใƒณใ‚’็ขบ่ชใ™ใ‚‹ใ€‚ + node -v + +v18.x.xใชใฉใจ่กจ็คบใ•ใ‚Œใ‚ŒใฐOKใ€‚v8.x.xใฎใ‚ˆใ†ใซไฝŽใ„ใƒใƒผใ‚ธใƒงใƒณใŒ่กจ็คบใ•ใ‚ŒใŸๅ ดๅˆใฏใ€ๆญฃใ—ใใ‚คใƒณใ‚นใƒˆใƒผใƒซใŒ่กŒใˆใฆใ„ใชใ„ใŸใ‚ใ€ใ‚ตใƒผใƒใƒผใ‚’ๅ†่ตทๅ‹•ใ—ใฆใ‚‚ใ†ไธ€ๅบฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—็›ดใ™ใชใฉใ—ใฆใฟใ‚ˆใ†ใ€‚ + +### PostgreSQL + +PostgreSQLใฏใ€ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆ้–ขไฟ‚ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚น็ฎก็†ใ‚ทใ‚นใƒ†ใƒ ใงใ‚ใ‚Šใ€Misskeyใฎ็จฎใ€…ใฎใƒ‡ใƒผใ‚ฟใ‚’ไฟๅญ˜ใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆไธๅฏๆฌ ใชใ‚ฝใƒ•ใƒˆใ ใ€‚ + +#### ใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๅฎŸ่กŒใ—ใ€ๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณ๏ผˆv15๏ผ‰ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใ‚ˆใ†ใ€‚ + + sudo apt install -y postgresql-common + + sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; + + # systemctlใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + systemctl status postgresql + +activeใชใ‚‰OKใ€‚ + +#### ใƒฆใƒผใ‚ถใƒผใจใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎไฝœๆˆ + +psqlใ‚’่ตทๅ‹•ใ€‚ + + sudo -u postgres psql + +Misskeyใงไฝฟใ†ใƒฆใƒผใ‚ถใƒผใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚\ +ใƒฆใƒผใ‚ถใƒผๅใ‚’misskeyใ€ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใ‚’hogeใจใ™ใ‚‹ๅ ดๅˆใฏๆฌกใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚\ +๏ผˆLinuxใฎใƒฆใƒผใ‚ถใƒผใจPostgreSQLใฎใƒฆใƒผใ‚ถใƒผใฏๅˆฅ็‰ฉใชใฎใงใ€ๆททๅŒใ—ใชใ„ใ‚ˆใ†ๆณจๆ„ใ™ใ‚‹ใ“ใจใ€‚๏ผ‰ + + CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'hoge'; + +ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ไฝœๆˆใ€‚ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นๅใ‚’mk1ใจใ—ใฆใ„ใ‚‹ใ€‚ + + CREATE DATABASE mk1 OWNER misskey; + ยฅq + +### Redis + +Redisใฏใ€NoSQLใฎใ‚คใƒณใƒกใƒขใƒชใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚ฝใƒ•ใƒˆใงใ‚ใ‚Šใ€ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚„้€ฃๅˆใจใฎ้€šไฟกใ‚’็ฎก็†ใ™ใ‚‹ใชใฉใฎใŸใ‚ใซๅฟ…่ฆใ ใ€‚ +redis.ioใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใซๅพ“ใ„ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ https://redis.io/docs/getting-started/installation/install-redis-on-linux/ + + sudo apt install -y curl ca-certificates gnupg2 lsb-release + + curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg + + echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list + + sudo apt update + + sudo apt install -y redis + +systemctlใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + + systemctl status redis-server + +activeใชใ‚‰OKใ€‚ + +### nginx + +nginxใฏใ€ไธปใจใ—ใฆใƒชใƒใƒผใ‚นใƒ—ใƒญใ‚ญใ‚ทใซ็”จใ„ใ‚‰ใ‚Œใ‚‹Webใ‚ตใƒผใƒใƒผใ‚ฝใƒ•ใƒˆใงใ‚ใ‚‹ใ€‚Misskeyใซใฏๅฟ…้ ˆใงใฏใชใ„ใŒใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅ็ญ‰ใ‚’ใ™ใ‚‹ใจใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใŒๅ‘ไธŠใ—ใŸใ‚Šใ€httpใ‹ใ‚‰httpsใธใฎ่ปข้€ใชใฉใ‚’ใ™ใ‚‹ใŸใ‚ใซใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใฆใŠใ“ใ†ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏnginxใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใฏไธ่ฆใงใ™ +::: + +nginx.orgใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ http://nginx.org/en/linux_packages.html#Ubuntu ใซๅพ“ใฃใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ + + sudo apt install ubuntu-keyring + + curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null + + gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg + +ใ“ใฎใจใๅ‡บๅŠ›ใซ 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 ใจใ‚ใ‚‹ใ‹็ขบ่ชใ™ใ‚‹ใ€‚ + + echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list + + echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx + + sudo apt update + + sudo apt install -y nginx + +systemctlใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + + systemctl status nginx + +activeใชใ‚‰OKใ€‚ใใ†ใงใชใ‘ใ‚Œใฐใ€ๆฌกใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ€‚ + + sudo systemctl start nginx + + sudo systemctl enable nginx + + ใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใ€\*Welcome to nginx!\*ใจ่กจ็คบใ•ใ‚Œใ‚ŒใฐOKใ€‚\ +curlใง็ขบ่ชใ™ใ‚‹ใฎใ‚‚ใ‚ˆใ„ใ ใ‚ใ†ใ€‚ + + curl http://localhost + +### ใใฎไป– + +Git๏ผˆใƒใƒผใ‚ธใƒงใƒณ็ฎก็†ใ‚ฝใƒ•ใƒˆ๏ผ‰ใŠใ‚ˆใณbuild-essential๏ผˆMisskeyใฎใƒ“ใƒซใƒ‰ๆ™‚ใซๅฟ…่ฆ๏ผ‰ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ + + sudo apt update + + sudo apt install -y git build-essential + +## ่ฟฝๅŠ ใฎ่จญๅฎšใจใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ‚ตใƒผใƒใƒผใ‚’ใ‚คใƒณใ‚ฟใƒผใƒใƒƒใƒˆใซๅ…ฌ้–‹ใ™ใ‚‹ๆบ–ๅ‚™ใ‚’ใ™ใ‚‹ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซใ‚„CloudFlareใ€Certbotใฎ่จญๅฎšใฏไธ่ฆใงใ™ +::: + +### ใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซ + +ไปŠๅ›žใฏใ€ใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซใจใ—ใฆufwใ‚’ไฝฟ็”จใ™ใ‚‹ใ€‚ + +ๆฌกใงใฏใ€ๆŽฅ็ถš่จฑๅฏใ‚’ใƒ›ใƒฏใ‚คใƒˆใƒชใ‚นใƒˆๅฝขๅผใจใ—ใ€22็•ชSSHใƒใƒผใƒˆใ‚’ๆŽฅ็ถšๅ›žๆ•ฐๅˆถ้™ใ‚’่จญใ‘ใชใŒใ‚‰้–‹ๆ”พใ€80็•ชHTTPใƒใƒผใƒˆๅŠใณ443็•ชHTTPSใƒใƒผใƒˆใ‚’้–‹ๆ”พใจใ—ใŸใ€‚ + + sudo ufw enable + + sudo ufw default deny + + sudo ufw limit 22 + + sudo ufw allow 80 + + sudo ufw allow 443 + +ufwใฎใ‚นใƒ†ใƒผใ‚ฟใ‚นใ‚’็ขบ่ชใ—ใฆใŠใใ€‚ + + sudo ufw status + +systemctlใงๆฐธ็ถšๅŒ–ใ™ใ‚‹ใ€‚ + + sudo systemctl enable ufw + +::: tip +ufwใฏใ€netfilter(iptables)ใ‚’ไบบ้–“ใŒๆ“ไฝœใ—ใ‚„ใ™ใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ‚ขใƒ—ใƒชใ ใ€‚ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏใ€OCI็’ฐๅขƒใงใฏnetfilterใ‚’็›ดๆŽฅๆ“ไฝœใ™ใ‚‹ใ€‚ +::: + +### CloudFlare + +CloudFlareใฏใ€่‡ชๅˆ†ใฎใƒ‰ใƒกใ‚คใƒณใซๅฏพใ—ใฆDNSใ‚ตใƒผใƒใƒผใƒปใƒชใƒใƒผใ‚นใƒ—ใƒญใ‚ญใ‚ทใƒปCDNใ‚’ใ„ใฃใบใ‚“ใซๆไพ›ใ—ใฆใใ‚Œใ‚‹ใŸใ„ใธใ‚“ไพฟๅˆฉใชใ‚ตใƒผใƒ“ใ‚นใงใ‚ใ‚‹ใ€‚\ +CloudFlareใ‚’็ตŒ็”ฑใ›ใšใซใ‚ตใƒผใƒใƒผใ‚’ๅ…ฌ้–‹ใ™ใ‚‹ใ“ใจใ‚‚ๅฏ่ƒฝใ ใŒใ€ใŸใ„ใธใ‚“ไพฟๅˆฉใชใฎใงๅฐŽๅ…ฅใ™ใ‚‹ใ“ใจใ‚’ใŠๅ‹งใ‚ใ™ใ‚‹ใ€‚ +[**โ†’ CDNใฎ่จญๅฎš**](/docs/admin/cdn.html) + +[CloudFlareใซใ‚ตใ‚คใƒณใ‚ขใƒƒใƒ—](https://dash.cloudflare.com/sign-up) ใ—ใ€่ณผๅ…ฅใ—ใŸใƒ‰ใƒกใ‚คใƒณใ‚’ๆกˆๅ†…ใซๅพ“ใฃใฆ็™ป้Œฒใ™ใ‚‹ใ€‚ + +DNSใฎ็™ป้Œฒ็”ป้ขใงใ‚ตใƒผใƒใƒผใฎIPใ‚ขใƒ‰ใƒฌใ‚นใ‚’ๅ…ฅๅŠ›ใ—ใฆใŠใใจใ‚ˆใ„ใ€‚ + +ใƒ‰ใƒกใ‚คใƒณใ‚’่ณผๅ…ฅใ—ใŸๆ‰€ใซใ‚ˆใฃใฆใฏ้ฉ็”จใซ3ๆ—ฅ็จ‹ๅบฆใ‹ใ‹ใ‚‹ๅ ดๅˆใŒใ‚ใ‚‹ใ€‚ + +### Certbot (Letโ€™s Encrypt) ใฎ่จญๅฎš + +HTTPS๏ฝฅWSS้€šไฟกใซไฝฟ็”จใ™ใ‚‹่จผๆ˜Žๆ›ธใ‚’CloudFlareใ‚’ไฝฟใ†ๆ–นๅผใงLetโ€™s Encryptใ‹ใ‚‰ๅ–ๅพ—ใ™ใ‚‹ใ€‚ + +certbotใจCloudFlareใƒ—ใƒฉใ‚ฐใ‚คใƒณใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ + + sudo apt install -y certbot python3-certbot-dns-cloudflare + +CloudflareใฎAPIใ‚ญใƒผใ‚’ๅ–ๅพ—ใ™ใ‚‹ใ€‚ไปฅไธ‹ใฎๆ‰‹้ †ใงๅ–ๅพ—ใ•ใ‚ŒใŸใ„ใ€‚ + +1. ใซใ‚ขใ‚ฏใ‚ปใ‚น +2. Global API KeyใฎViewใ‚’้ธๆŠž +3. ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใ‚’ๅ…ฅๅŠ›ใ—hCaptchaใ‚’่งฃ้™คใ€Viewใ‚’้ธๆŠž + +CloudFlareใฎๆƒ…ๅ ฑใ‚’่จ˜่ผ‰ใ—ใŸ่จญๅฎšใƒ•ใ‚กใ‚คใƒซ/etc/cloudflare/cloudflare.iniใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + mkdir /etc/cloudflare + nano /etc/cloudflare/cloudflare.ini + +dns_cloudflare_email๏ผˆไธ‹ใฎไพ‹ใงใฏbar@fuga.foo๏ผ‰ใซใฏCloudFlareใง็™ป้Œฒใ—ใฆใ„ใ‚‹ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใ‚’่จญๅฎšใ™ใ‚‹ใ€‚ + + dns_cloudflare_email = bar@fuga.foo + dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx + +ใ“ใ‚Œใ‚’ไฟๅญ˜ใ—ใ€ใƒ‘ใƒผใƒŸใƒƒใ‚ทใƒงใƒณใ‚’600ใซ่จญๅฎšใ€‚ + + sudo chmod 600 /etc/cloudflare/cloudflare.ini + +ๆบ–ๅ‚™ใŒใงใใŸใฎใงใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ€‚**้€”ไธญใฎ2็ฎ‡ๆ‰€ใฎexample.tldใฏ่‡ชๅˆ†ใฎใ‚‚ใฎใซ็ฝฎใๆ›ใˆใ‚‹ใ“ใจ**ใ€‚ + + sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld + +\*Congratulations!\*ใจ่กจ็คบใ•ใ‚ŒใŸใ‚‰OKใ€‚็”Ÿๆˆใ•ใ‚ŒใŸ.pemใƒ•ใ‚กใ‚คใƒซใฎใƒ‘ใ‚นใฏไปŠๅพŒไฝฟใ†ใฎใง่จ˜้Œฒใ—ใฆใŠใใ“ใจใ€‚ + +่‡ชๅ‹•ๆ›ดๆ–ฐใฎ่จญๅฎšใฏใ‚คใƒณใ‚นใƒˆใƒผใƒซใจๅŒๆ™‚ใซ่กŒใ‚ใ‚Œใฆใ„ใ‚‹ใŸใ‚ไธ่ฆใ€‚ + +## Misskeyใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ“ใ‚Œใงๅ‰ๆบ–ๅ‚™ใฏใ‚ใ‚‰ใ‹ใŸ็ต‚ใ‚ใฃใŸใฎใงใ€Misskeyใ‚’ๆบ–ๅ‚™ใ—ใฆใ„ใใ€‚ + +misskeyใƒฆใƒผใ‚ถใƒผใซๅค‰ๆ›ดใ€‚ + + sudo su - misskey + +Gitใงใƒ•ใ‚กใ‚คใƒซ้กžใ‚’ๅฑ•้–‹ใ€‚ + + git clone -b master https://github.com/misskey-dev/misskey.git + + cd misskey + + git checkout master + +ๅฟ…่ฆใชnpmใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ€‚ + + npx yarn install + +## Misskeyใ‚’่จญๅฎšใ™ใ‚‹ + +### default.yml + +่จญๅฎšใƒ•ใ‚กใ‚คใƒซ.config/default.ymlใ‚’ไฝœๆˆใ€‚ + + nano .config/default.yml + +ๆฌกใฎๅ†…ๅฎนใ‚’่ฒผใ‚Šไป˜ใ‘ใ€้ฉๅฎœ็ฝฎใๆ›ใˆใ‚‹ใ€‚่จญๅฎšๅ€คใฎๅค‰ๆ›ดใŒๅฟ…่ฆใช็ฎ‡ๆ‰€ใฏโ—ใงใ€ใ“ใ‚Œใพใงใฎๆตใ‚Œใฎไธญใง่จญๅฎšใ—ใŸๅ€คใ‚’็”จใ„ใ‚‹็ฎ‡ๆ‰€ใฏใ€‡ใง็คบใ—ใŸใ€‚ + +ใ“ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฏYAMLๅฝขๅผใงๆ›ธใ‹ใ‚ŒใฆใŠใ‚Šใ€่กŒ้ ญใฎใ‚นใƒšใƒผใ‚นใฎๆ•ฐใชใฉใ‚’้–“้•ใˆใ‚‹ใจMisskeyใŒๅ‹•ใ‹ใชใ„ใฎใงใ€็‰นใซๆณจๆ„ใ™ใ‚‹ใ“ใจใ€‚ + +่จญๅฎšใงใใ‚‹ๅ€คใจ่จ˜่ฟฐๆ–นๆณ•ใฏ[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)ใซๆ›ธใ‹ใ‚Œใฆใ„ใ‚‹ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€urlใฏ`url: http://localhost:3000`ใจๆŒ‡ๅฎšใ—ใพใ™ใ€‚ +::: + + # โ— Misskeyใ‚’ๅ…ฌ้–‹ใ™ใ‚‹URL + url: https://example.tld/ + + # ใ€€ ใƒใƒผใƒˆใ‚’3000ใจใ™ใ‚‹ใ€‚ + port: 3000 + + # โ— PostgreSQLใฎ่จญๅฎšใ€‚ + db: + host: localhost + port: 5432 + db : mk1 # ใ€‡ PostgreSQLใฎใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นๅ + user: misskey # ใ€‡ PostgreSQLใฎใƒฆใƒผใ‚ถใƒผๅ + pass: hoge # โ— PostgreSQLใฎใƒ‘ใ‚นใƒฏใƒผใƒ‰ + + # ใ€€ Redisใฎ่จญๅฎšใ€‚ + redis: + host: localhost + port: 6379 + + # ใ€€ IDใ‚ฟใ‚คใƒ—ใฎ่จญๅฎšใ€‚ + id: 'aid' + + # ใ€€ syslog + syslog: + host: localhost + port: 514 + +ๆŒ‡ๅฎšใงใใŸใ‚‰ไฟๅญ˜ใ™ใ‚‹ใ€‚ + +### nginxใฎ่จญๅฎš + +nginxใฎ่จญๅฎšใ‚’่กŒใ†ใ€‚ + +ใƒซใƒผใƒˆๆจฉ้™ใง่กŒใ†ใ€‚ + + exit + +/etc/nginx/conf.d/misskey.confใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo nano /etc/nginx/conf.d/misskey.conf + +[Misskey Hub](https://misskey-hub.net/docs/admin/nginx.html)ใฎ่จญๅฎšไพ‹ใ‚’nanoใธใ‚ณใƒ”ใƒผ๏ผ†ใƒšใƒผใ‚นใƒˆใ—ใ€ๆฌกใฎ้ƒจๅˆ†ใ‚’่‡ชๅˆ†ใฎใ‚‚ใฎใซๆ›ธใๆ›ใˆใ‚‹ใ€‚ + +* 18่กŒ็›ฎใจ30่กŒ็›ฎใฎใƒ‰ใƒกใ‚คใƒณๅ +* 34-35่กŒ็›ฎใฎ่จผๆ˜Žๆ›ธใธใฎใƒ‘ใ‚นใ‚’Certbotใงๅ–ๅพ—ใ—ใŸใ‚‚ใฎใซ (ๅŸบๆœฌ็š„ใซexample.tldใ‚’็ฝฎใๆ›ใˆใ‚‹ใ ใ‘ใงOK) +* 56่กŒ็›ฎ (If it's behind another reverse proxy or CDN, remove the following.) ใ‹ใ‚‰4่กŒใ‚’ๅ‰Š้™ค + +ๅค‰ๆ›ดใ‚’ไฟๅญ˜ใ™ใ‚‹ใ€‚ + +่จญๅฎšใƒ•ใ‚กใ‚คใƒซใŒใใกใ‚“ใจๆฉŸ่ƒฝใ™ใ‚‹ใ‹็ขบ่ชใ€‚ + + sudo nginx -t + +OKใชใ‚‰ใฐใ€nginxใƒ‡ใƒผใƒขใƒณใ‚’ๅ†่ตทๅ‹•ใ€‚ + + sudo systemctl restart nginx + +ใ‚นใƒ†ใƒผใ‚ฟใ‚นใ‚’็ขบ่ชใ€‚ + + sudo systemctl status nginx + +activeใงใ‚ใ‚ŒใฐOKใ€‚ + +## Misskeyใฎใƒ“ใƒซใƒ‰ + +misskeyใƒฆใƒผใ‚ถใƒผใซใƒญใ‚ฐใ‚คใƒณใ—็›ดใ™ใ€‚ + + sudo su - misskey + +ใƒ“ใƒซใƒ‰ใ‚’ใ™ใ‚‹ใ€‚yes we canโ€ฆ + + cd misskey + NODE_ENV=production npm run build + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€`NODE_ENV=production`ใฏไธ่ฆใงใ™ใ€‚ไปฅ้™ใฎใ‚ณใƒžใƒณใƒ‰ใงใ‚‚ๅŒๆง˜ใซๅ‰Š้™คใ—ใฆใใ ใ•ใ„ใ€‚ +::: + +### ใ‚ตใƒผใƒใƒผใงใƒ“ใƒซใƒ‰ใงใใชใ„ๅ ดๅˆ + +RAMใฎไธ่ถณใŒ่€ƒใˆใ‚‰ใ‚Œใ‚‹ใ€‚ + +Misskeyใฎใƒ“ใƒซใƒ‰ใ‚„ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณ๏ผˆๅˆๆœŸๅŒ–ใ‚’ๅซใ‚€๏ผ‰ใซใฏใ€RAMใŒ2GBไปฅไธŠๅฟ…่ฆใซใชใฃใฆใ„ใ‚‹ใ€‚\ +RAMใŒ่ถณใ‚Šใชใ„ๅ ดๅˆใ€ไปฅไธ‹ใฎใ‚ˆใ†ใช่งฃๆฑบ็ญ–ใŒ่€ƒใˆใ‚‰ใ‚Œใ‚‹ใ€‚ + +* ใ‚ตใƒผใƒใƒผใซใ‚นใƒฏใƒƒใƒ—ใ‚’่ฟฝๅŠ ใ™ใ‚‹ +* ใƒญใƒผใ‚ซใƒซใงใƒ“ใƒซใƒ‰ใ—ใŸใ‚‚ใฎ๏ผˆbuiltใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช๏ผ‰ใ‚’sftpใง่ปข้€ใ™ใ‚‹ + +## ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎๅˆๆœŸๅŒ– + + npm run init + +## Misskeyใ‚’่ตทๅ‹•ใ™ใ‚‹ + + NODE_ENV=production npx yarn start + +**Now listening on port 3000 on** [**http://example.tld**](http://example.tld) ใจ่กจ็คบใ•ใ‚ŒใŸใ‚‰ใ€่จญๅฎšใ—ใŸURLใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใ€‚ + +Misskeyใฎใ‚ฆใ‚งใƒซใ‚ซใƒ ใƒšใƒผใ‚ธใŒ่กจ็คบใ•ใ‚Œใ‚‹ใฏใšใ ใ€‚ + +ใ‚ขใ‚ซใ‚ฆใƒณใƒˆใฎไฝœๆˆใ€ใƒŽใƒผใƒˆใฎไฝœๆˆใ‚„ใƒ•ใ‚กใ‚คใƒซใฎใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใจใ„ใฃใŸไธ€้€šใ‚Šใฎๆ“ไฝœใŒๆญฃใ—ใ่กŒใˆใ‚‹ใ‹็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +### ใ‚ขใ‚ฏใ‚ปใ‚นใงใใชใ„ๅ ดๅˆ + +#### CloudFlareใฎDNSใ‚’็ขบ่ชใ™ใ‚‹ + +CloudFlareใฎDNS่จญๅฎšใŒๆญฃใ—ใ„IPใ‚ขใƒ‰ใƒฌใ‚นใซใชใฃใฆใ„ใ‚‹ใ‹ใ‚‚ใ†ไธ€ๅบฆ็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +#### ใƒซใƒผใ‚ฟใƒผใฎ่จญๅฎšใ‚’็ขบ่ชใ™ใ‚‹ + +่‡ชๅฎ…ใ‚ตใƒผใƒใƒผใฎๅ ดๅˆใ€ใƒซใƒผใ‚ฟใƒผใŒใ‚ตใƒผใƒใƒผใจๅค–้ƒจใจใฎ80ใƒใƒผใƒˆใƒป443ใƒใƒผใƒˆใฎ้€šไฟกใ‚’่จฑๅฏใ™ใ‚‹่จญๅฎšใซใชใฃใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +ใ‚ฏใƒฉใ‚ฆใƒ‰ใฎๅ ดๅˆใงใ‚‚ใ€ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏ่จญๅฎšใงใƒใƒผใƒˆ้–‹ๆ”พใŒๅฟ…่ฆใชๅ ดๅˆใŒๅคšใ„ใ€‚ + +## Misskeyใฎใƒ‡ใƒผใƒขใƒณใ‚’ไฝœๆˆ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€ใƒ‡ใƒผใƒขใƒณใฎไฝœๆˆใฏไธ่ฆใงใ™ใ€‚ +::: + +ใ„ใฃใŸใ‚“Ctrl+Cใงใƒ—ใƒญใ‚ปใ‚นใ‚’ใ‚ญใƒซใ—ใ€Misskeyใ‚’ใƒ‡ใƒผใƒขใƒณใง่ตทๅ‹•ใ™ใ‚‹่จญๅฎšใ‚’ใ—ใ‚ˆใ†ใ€‚ + +ใƒซใƒผใƒˆๆจฉ้™ใง่กŒใ†ใ€‚ + + exit + +/etc/systemd/system/misskey.serviceใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo nano /etc/systemd/system/misskey.service + +ๆฌกใฎๅ†…ๅฎนใ‚’่ฒผใ‚Šไป˜ใ‘ใ€ไฟๅญ˜ใ™ใ‚‹ใ€‚ + + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + +systemdใ‚’่จญๅฎšใ—ใ€misskeyใƒ‡ใƒผใƒขใƒณใ‚’้–‹ๅง‹ใ€‚ + + sudo systemctl daemon-reload + + sudo systemctl enable misskey + + sudo systemctl start misskey + +systemctlใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚่ตทๅ‹•ใซๅฐ‘ใ—ๆ™‚้–“ใŒใ‹ใ‹ใ‚‹ใŸใ‚ใ€15็ง’็จ‹ๅบฆๅพ…ใฃใฆใ‹ใ‚‰ใฎใปใ†ใŒ่‰ฏใ„ใ€‚ + + sudo systemctl status misskey + +activeใชใ‚‰OKใ€‚ + +**ใ“ใ‚ŒใงMisskeyใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏใปใผๅฎŒไบ†ใ ใ€‚** + +Misskeyใ‚ตใƒผใƒใƒผใซ่‡ชๅˆ†ใฎใ‚ขใ‚ซใ‚ฆใƒณใƒˆใ‚’็™ป้Œฒใƒปใƒญใ‚ฐใ‚คใƒณใ—ใ€่จญๅฎšใ‚’็ถšใ‘ใ‚ˆใ†ใ€‚ + +## Misskeyใฎ่จญๅฎšใ‚’็ถšใ‘ใ‚‹ + +* [**Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใงๆœ€ๅˆใซ่จญๅฎšใ™ใ‚‹ในใใ‚คใƒณใ‚นใ‚ฟใƒณใ‚น่จญๅฎšใจใใฎไป–่จญๅฎšใฎ่ชฌๆ˜Ž**](https://hide.ac/articles/Y504SIabp) +* [**Squidใƒ—ใƒญใ‚ญใ‚ทใ‚’่จญๅฎšใ—ใฆMisskeyใ‚’ๅฎˆใ‚‹**](https://hide.ac/articles/MC7WsPDqw) +* [**Misskeyใฎใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใ‚ˆใ†ใ€OCIใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚นใƒˆใƒฌใƒผใ‚ธ็ทจใ€‘**](https://hide.ac/articles/E2Ea3cauk) + +## Misskeyใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ + +ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใซใคใ„ใฆใ‚‚ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚\ + + +ๆ‰‹ไฝœๆฅญใงใ‚„ใ‚‹ๅ ดๅˆใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚\ +[โ†’ manual.html#Misskeyใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ• (yarnใฏnpx yarnใซ่ชญใฟๆ›ฟใˆใพใ™)](https://misskey-hub.net/docs/install/manual.html#misskey%E3%81%AE%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%E3%83%86%E3%82%99%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95) + +ไฝœๆฅญไธญใฏMisskeyใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ›ใ‚“ใ€‚ + + sudo systemctl stop misskey + + su - misskey + + git pull; + npx yarn install; + npm run clean; + NODE_ENV=production npm run build; + npm run migrate; + + exit + +### Case 1: apt upgradeใ‚’ใ™ใ‚‹ๅ ดๅˆ + + sudo apt update -y + sudo apt full-upgrade -y + sudo reboot + +ๅ†่ตทๅ‹•ๅพŒใฏMisskeyใฏ่‡ชๅ‹•ใง่ตทๅ‹•ใ—ใพใ™ใ€‚ + +### Case 2: ใใฎใพใพ่ตทๅ‹• + + sudo systemctl start misskey From 04328b822f2a9ab8dad9725d575a682fb75d91d4 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 27 Nov 2022 14:17:06 +0900 Subject: [PATCH 079/296] Update faq.md --- src/docs/faq.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/docs/faq.md b/src/docs/faq.md index ad1f165971..527a7ba236 100644 --- a/src/docs/faq.md +++ b/src/docs/faq.md @@ -52,3 +52,7 @@ Misskey APIใ‚’ๅˆฉ็”จใ—ใŸBotใฎ้–‹็™บใŒๅฏ่ƒฝใงใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰]( ### ้•ทใ„็ญ”ใˆ ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใงใชใ‘ใ‚Œใฐใ€ๅฑŠๅ‡บใฏๅฟ…่ฆ็„กใ„ใจ่€ƒใˆใ‚‰ใ‚Œใพใ™ใ€‚ใŸใ ใ—ใ€็›ดๆŽฅ็š„ใชๅพดๅŽใงใชใใฆใ‚‚ใ€ใŸใจใˆใฐใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๅบƒๅ‘Šใ‚’ๆŽฒ่ผ‰ใ—ใ€ใใ‚Œใซใ‚ˆใฃใฆๅŽๅ…ฅใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ŒๅฎŸ่ณช็š„ใซใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ไธŠใ’ใฆใ„ใ‚‹ใ€ใจใฟใชใ•ใ‚Œใ‚‹ใŸใ‚ใ€ๅฑŠๅ‡บใŒๅฟ…่ฆใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚
่ฉณใ—ใใฏ็ทๅ‹™็œใฎ[้›ปๆฐ—้€šไฟกไบ‹ๆฅญๅ‚ๅ…ฅใƒžใƒ‹ใƒฅใ‚ขใƒซ](https://www.soumu.go.jp/main_content/000477428.pdf)ใชใฉใฎ่ณ‡ๆ–™ใ‚’ใ”่ฆงใ„ใŸใ ใใ‹ใ€็ทๅ‹™็œใพใงใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚ + +## ๅ็งฐใซใ€ŒMisskeyใ€ใ‚’ๅซใ‚€ใ‚ตใƒผใƒ“ใ‚นใ‚’ๅ…ฌ้–‹ใ—ใฆใ‚‚่‰ฏใ„ใงใ™ใ‹๏ผŸ +ใ€ŒMisskeyใ€ใฏ2022ๅนด11ๆœˆ็พๅœจๅ•†ๆจ™ๅ‡บ้ก˜ไธญ(2022-054788)ใงใ™ใ€‚ๅ•†ๆจ™็™ป้Œฒใ•ใ‚ŒใŸๅ ดๅˆใงใ‚‚ใ€ๅ็งฐใซใ€ŒMisskeyใ€ใ‚’ๅซใ‚€(ไพ‹: Misskey Tools็ญ‰)ใ‚ตใƒผใƒ“ใ‚นใ‚’ๅ…ฌ้–‹ใ—ใฆใ‚‚ๅ•้กŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ +ใพใŸใ€ใใฎๅ ดๅˆใงใ‚‚ไฝฟ็”จๆ–™ใฎๅพดๅŽใชใฉใ‚’่กŒใ†ไบˆๅฎšใ‚‚ใ‚ใ‚Šใพใ›ใ‚“ใ€‚ From 98adf69fb6d23641ed31aea95e74f34bc5806d64 Mon Sep 17 00:00:00 2001 From: Ryu jongheon Date: Tue, 29 Nov 2022 14:46:39 +0900 Subject: [PATCH 080/296] Update timeline.md (#115) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ใƒ•ใ‚ฉใƒญใƒฏใƒผๅ…ฌ้–‹ใฏLTLใพใŸใฏGTLใซ่กจ็คบใ•ใ‚Œใชใ„ใ“ใจใ‚’ๅๆ˜  --- src/docs/features/timeline.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/docs/features/timeline.md b/src/docs/features/timeline.md index 6e8ad62a0b..82fc8be321 100644 --- a/src/docs/features/timeline.md +++ b/src/docs/features/timeline.md @@ -21,10 +21,10 @@ | ใƒฆใƒผใ‚ถใƒผ | ๅ…ฌ้–‹็ฏ„ๅ›ฒ | ใƒ›ใƒผใƒ  | ใƒญใƒผใ‚ซใƒซ | ใ‚ฝใƒผใ‚ทใƒฃใƒซ | ใ‚ฐใƒญใƒผใƒใƒซ | | ใƒญใƒผใ‚ซใƒซ (ใƒ•ใ‚ฉใƒญใƒผ) | ๅ…ฌ้–‹ | โœ” | โœ” | โœ” | โœ” | | | ใƒ›ใƒผใƒ  | โœ” | | โœ” | | -| | ใƒ•ใ‚ฉใƒญใƒฏใƒผ | โœ” | โœ” | โœ” | โœ” | +| | ใƒ•ใ‚ฉใƒญใƒฏใƒผ | โœ” | | โœ” | | | ใƒชใƒขใƒผใƒˆ (ใƒ•ใ‚ฉใƒญใƒผ) | ๅ…ฌ้–‹ | โœ” | | โœ” | โœ” | | | ใƒ›ใƒผใƒ  | โœ” | | โœ” | | -| | ใƒ•ใ‚ฉใƒญใƒฏใƒผ | โœ” | | โœ” | โœ” | +| | ใƒ•ใ‚ฉใƒญใƒฏใƒผ | โœ” | | โœ” | | | ใƒญใƒผใ‚ซใƒซ (ๆœชใƒ•ใ‚ฉใƒญใƒผ) | ๅ…ฌ้–‹ | | โœ” | โœ” | โœ” | | | ใƒ›ใƒผใƒ  | | | | | | | ใƒ•ใ‚ฉใƒญใƒฏใƒผ | | | | | From 2ee96fe53935f943cab060da04edd1cfe27d0010 Mon Sep 17 00:00:00 2001 From: ragu Date: Fri, 2 Dec 2022 04:40:44 +0900 Subject: [PATCH 081/296] Update instances.json5 (#126) --- src/instances.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index a18a97348b..21b7b76c99 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -45,4 +45,8 @@ host: 'kitsune.moe', name: 'Kitsune.MOE', lang: 'de', +}, { + host: 'misskey.cf', + name: 'misskey.cf', + lang: 'ja', }] From 41edcd80858d5873c5f371fe9481e4d88220e3e6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 3 Dec 2022 18:44:58 +0900 Subject: [PATCH 082/296] Update releases.md --- src/docs/releases.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 5456210cb6..d3e35548b1 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,12 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 12.119.1 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2022/12/03 + +### Bugfixes +- Server: Mitigate AP reference chain DoS vector @skehmatics + ## 12.119.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2022/09/10 From a253a02030c39438cbe55369275eb2e0bcd65588 Mon Sep 17 00:00:00 2001 From: Tassoman Date: Tue, 6 Dec 2022 00:44:43 +0100 Subject: [PATCH 083/296] Ita lang update 12.119.2 (#130) * fixing npm audit * new language: italian * updated blog link * repository menu :it: * menu links :it: * menu di navigazione di primo livello, completo :it: * :it: sezione partecipa * :it: documentazione, inizio * :it: documentazione WIP * :it: misskey doc * :it: FAQ centralizzate * :it: documentazione, faq glossario rilasci troubleshoot * api, streaming api, admin :it: * :it: api docs * :it: admin part 1 * :it: tips * :it: troubleshotings * :it: installazione * :it: features * :it: sezione install * :it: ultimi aggiornamenti * :it: missing timeline --- src/it/docs/faq.md | 4 + src/it/docs/features/timeline.md | 41 +++ src/it/docs/install/docker.md | 79 +++++ src/it/docs/install/manual.md | 159 +++++++++ src/it/docs/install/ubuntu-manual.md | 475 +++++++++++++++++++++++++++ src/it/docs/releases.md | 6 + 6 files changed, 764 insertions(+) create mode 100644 src/it/docs/features/timeline.md create mode 100644 src/it/docs/install/docker.md create mode 100644 src/it/docs/install/manual.md create mode 100644 src/it/docs/install/ubuntu-manual.md diff --git a/src/it/docs/faq.md b/src/it/docs/faq.md index d472b03199..383b529717 100644 --- a/src/it/docs/faq.md +++ b/src/it/docs/faq.md @@ -87,3 +87,7 @@ Per sviluppare un profilo di tipo BOT occorre fare uso delle [API Misskey](../do ## Che servizio di traduzione viene utilizzato? Le istanze Misskey possono usare il servizio di traduzione [DeepL](https://www.deepl.com/) + +## Posso pubblicare un servizio con ยซMisskeyยป nel nome? + +Il marchio ยซMisskeyยป รจ in attesa di registrazione (2022-054788) a partire da novembre 2022. Viene concesso di pubblicare un servizio che riporta la parola ยซMisskeyยป nel nome, non รจ previsto alcun pagamento. diff --git a/src/it/docs/features/timeline.md b/src/it/docs/features/timeline.md new file mode 100644 index 0000000000..e50df4aa00 --- /dev/null +++ b/src/it/docs/features/timeline.md @@ -0,0 +1,41 @@ +# La Timeline + +Si tratta di una pagina che visualizza [le Note](./note) in ordine cronologico. Dalla piรน recente alla piรน antica. + +Abbiamo a disposizione i seguenti tipi con caratteristiche diverse. A seconda della configurazione della tua istanza, alcune di queste potrebbero essere state disabilitate dagli amministratori + +## Home + +Contiene le Note pubblicate dai profili che segui. Abbreviazione: HTL + +## Locale + +Contiene le Note pubblicate dagli altri profili iscritti alla tua stessa istanza (che non stai seguendo). Abbreviazione: LTL + +## Sociale + +Contiene la somma delle due precedenti Timeline, tutti i profili che segui e tutti i profili della istanza locale. Abbreviazione: STL + +## Federata + +Contiene tutte le Note provenienti dalle altre istanze del Fediverso, escluse le Timeline precedenti. Abbreviazione: GTL + +## Tabella comparativa + +Questa tabella riassume la visibilitร  delle Note, in base alle loro caratteristiche. + +| Fonte | | | Timeline | | | +| ------------------ | ---------- | ---- | -------- | ------- | -------- | +| Profilo | Visibilitร  | Home | Locale | Sociale | Federata | +| Locale (che segui) | Pubblico | โœ” | โœ” | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Follower | โœ” | | โœ” | | +| Remoto (che segui) | Pubblico | โœ” | | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Follower | โœ” | | โœ” | | +| Locale (non segui) | Pubblico | | โœ” | โœ” | โœ” | +| | Home | | | | | +| | Follower | | | | | +| Remoto (non segui) | Pubblico | | | | โœ” | +| | Home | | | | | +| | Follower | | | | | diff --git a/src/it/docs/install/docker.md b/src/it/docs/install/docker.md new file mode 100644 index 0000000000..f8b793302d --- /dev/null +++ b/src/it/docs/install/docker.md @@ -0,0 +1,79 @@ +--- +description: "Questa guida spiega come installare Misskey dentro Docker" +--- + +# Costruire Misskey tramite Docker + +Questa guida spiega come installare Misskey dentro Docker + +::: tip +Requisiti iniziali: installare **Docker** e **docker-compose** +::: + +## Ottieni il codice sorgente + +```sh +git clone -b master https://github.com/misskey-dev/misskey.git +cd misskey +git checkout master +``` + +## Variabili d'ambiente + +Copia la configurazione d'esempio, su quella di default. + +```sh +cp .config/example.yml .config/default.yml +cp .config/docker_example.env .config/docker.env +``` + +Modificare sia `default.yml` che `docker.env` come indicato nei file. + +::: warning +Il file `default.yml` imposta PostgreSQL e Redis come container `db` e `redis` +::: + +Modificare `docker-compose.yml` secondo le necessitร  (ad esempio se intendi cambiare porta) + +## Costruzione e inizializzazione + +Costruisci i container necessari e popola il database. + +```shell +sudo docker-compose build +sudo docker-compose run --rm web yarn run init +``` + +## Avvio + +Questo comando avvia i container e li imposta come servizio al riavvio. + +```sh +sudo docker-compose up -d +``` + +## Aggiornare Misskey in Docker + +::: warning +Prima di procedere, leggiti le [Note di rilascio](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) per verificare se ci siano attivitร  aggiuntive da svolgere. +::: + +```sh +git stash +git checkout master +git pull +git submodule update --init +git stash pop +sudo docker-compose build +sudo docker-compose stop && sudo docker-compose up -d +``` + +L'attivitร  potrebbe richiedere del tempo, a seconda della grandezza del database e del contenuto dell'aggiornamento. + +## Eseguire comandi dentro ai Container + +Per eseguire uno script nel container `web` + +```sh +sudo docker-compose run --rm web node packages/backend/built/tools/foo bar +``` diff --git a/src/it/docs/install/manual.md b/src/it/docs/install/manual.md new file mode 100644 index 0000000000..71d2070f4e --- /dev/null +++ b/src/it/docs/install/manual.md @@ -0,0 +1,159 @@ +--- +description: "Questa guida spiega come installare e configurare Misskey" +--- + +# Guida alla costruzione di Misskey + +Questa guida spiega come installare e configurare Misskey + +::: tip +Occorre installare il seguente software + +- **[Node.js](https://nodejs.org/en/)** (16.x o successivo) +- **[PostgreSQL](https://www.postgresql.org/)** (10 o successivo) +- **[Redis](https://redis.io/)** +- **[Yarn](https://yarnpkg.com/)** (serie v1) +- **[FFmpeg](https://www.ffmpeg.org/)** + +::: +Variabili d'ambiente + +```sh +NODE_ENV=production +``` + +::: + +## Creazione utente + +Misskey non va eseguito tramite l'utente amministratore _root_. Occorre creare un utente ad-hoc, esempio per Debian/Ubuntu: + +```sh +adduser --disabled-password --disabled-login misskey +``` + +## Installazione Misskey + +```sh +su - misskey +git clone --recursive -b master https://github.com/misskey-dev/misskey.git +git submodule update --init +cd misskey +git checkout master +yarn install +``` + +## Variabili d'ambiente + +Copia il file `.config/example.yml` in un file chiamato `default.yml` + +```sh +cp .config/example.yml .config/default.yml +``` + +Modifica `default.yml` seguendo le indicazioni nel file. + +## Costruzione e inizializzazione + +Avvia la build e inizializza il DB, potrebbe richiedere un po' di tempo. + +```sh +yarn build +yarn run init +``` + +::: tip +Chi usa Debian/Ubuntu ha bisogno del pacchetto `build-essential` +::: + +::: tip +Se ricevi un messaggio di errore per qualche modulo, usa `node-gyp`: + +```sh +npx node-gyp configure +npx node-gyp build +yarn build +``` + +::: + +## Avviamento + +Al termine avvia Misskey usando: + +```sh +yarn start +``` + +:::: Configurazione di systemd + +Crea il file `/etc/systemd/system/misskey.service` + +Incollaci questa configurazione: + +```ini +[Unit] +Description=Misskey daemon + +[Service] +Type=simple +User=misskey +ExecStart=/usr/bin/npm start +WorkingDirectory=/home/misskey/misskey +Environment="NODE_ENV=production" +TimeoutSec=60 +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=misskey +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +::: warning +Se usi Misskey su CentOS e una porta inferiore a 1024, Devi configurare `ExecStart=/usr/bin/sudo /usr/bin/npm start` +::: + +Ricarica systemd, abilita e avvia il servizio + +```sh +systemctl daemon-reload; +systemctl enable misskey +systemctl start misskey +``` + +::: tip +Per controllare lo stato del servizio: `systemctl status misskey` +::: + +:::: + +## Aggiornamento di Misskey + +::: warning +Leggi sempre le [Note di rilascio](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) per sapere se ci siano attivitร  aggiuntive da svolgere. +::: + +Ottieni il codice sorgente dal branch `master` e le migrazioni del database: + +```sh +git checkout master +git pull +git submodule update --init +yarn install +yarn build +yarn migrate +``` + +A seconda della grandezza del database e dal contenuto degli aggiornamenti, potrebbe impiegarci piรน o meno tempo. + +Riavvia il servizio Misskey al termine dell'aggiornamento. + +::: tip +Se ricevi errori in fase di compilazione, prova i seguenti comandi: + +- `yarn clean` oppure `yarn cleanall` +- `npm rebuild` + +::: diff --git a/src/it/docs/install/ubuntu-manual.md b/src/it/docs/install/ubuntu-manual.md new file mode 100644 index 0000000000..f2b09102b8 --- /dev/null +++ b/src/it/docs/install/ubuntu-manual.md @@ -0,0 +1,475 @@ +# Come installare Misskey su Ubuntu + +## Altri tipi di installazione + +- [Installazione manuale](./manual.html) +- [Tutti i tipi di installazione](../install.html) + +## Script per il terminale bash + +::: tip +Questa installazione non รจ destinata alla installazione di ambienti di sviluppo. +::: + +Smetti di fare copia incolla, รจ fastidioso, noioso, richiede tempo! + +Vuoi svolgere una installazione automatica? C'รจ lo [script per il terminale bash](./bash.html) che fa quasi tutto! + +Ti serve soltanto: un dominio, la configurazione di Cloudflare e la protezione del server. + +## A proposito + +Il tipo di [Installazione manuale](./manual) prevede l'esecuzione di Misskey tramite `systemd` + +Il tipo di installazione tramite [docker-compose](./docker) รจ la piรน facile e ti permette di eseguire Misskey in un ambiente virtuale, senza modificare il sistema che la ospita. + +## Introduzione + +Questa pagina indica come [Installare Misskey](./manual) su sistema operativo GNU/Linux Ubuntu. + +Occorre soltanto eseguire alcuni comandi _bash_, modificare alcuni file di configurazione e usare il browser. + +Le indicazioni sono specifiche per il sistema operativo Ubuntu, alcune parti potrebbero cambiare in futuro, rendendo inutile la guida. Ce ne scusiamo. + +## Ambiente e requisiti + +- Sistema operativo **Ubuntu 22.04.1 LTS**. +- Requisiti hardware, occorre una CPU moderna, di architettura amd64 o arm64. +- Memoria RAM necessaria, circa 1.5GB. +- Dominio web giร  configurato e account Cloudflare attivo. + +::: tip +Se prepari un ambiente di sviluppo, dominio e Cloudflare non servono +::: + +## Come usare l'editor Nano + +L'editor di testo si apre con questo comando. `nano /percorso/al/file`. Il cursore si muove coi tasti freccia, home, end ecc... Per uscire, premi `CTRL+x`, successivamente, decidi se salvare le modifiche, premi `Y` per accettare. + +## Creare un utente + +Crea un utente di sistema, poichรฉ Misskey non dovrebbe girare con privilegi di super utente _root_. + +`sudo adduser --disabled-password --disabled-login misskey` + +::: tip +Se prepari un ambiente di sviluppo, non importa crearlo. +::: + +## Installazione software iniziale + +Occorre del software per svolgere le prossime attivitร , per favore installalo se non รจ giร  presente. + +### Node.js + +Si tratta di un linguaggio di programmazione lato server, basato su JavaScript. Necessario per eseguire Misskey. + +``` +sudo apt install -y curl + +curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - + +sudo apt install -y nodejs + +node -v +``` + +Ti occorre la versione `v18.x.y`. Se appare un'altra versione, come la `v8.x.y` allora l'installazione non รจ andata a buon fine. Potresti usare il [progetto Node Version Manager](https://github.com/nvm-sh/nvm#about). + +### PostgreSQL + +Questo รจ il Data Base Management System. Il gestore della base dati relazionale, ad oggetti. Essenziale per il funzionamento di Misskey. + +#### Installazione DBMS + +Occorre avere l'ultima versione, `v.15` + +``` +sudo apt install -y postgresql-common + +sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; + +systemctl status postgresql +``` + +Se tutto รจ andato bene, leggerai: **OK** + +#### Configurazione DBMS + +Esegui il client che si connette al DBMS. `sudo -u postgres psql` + +Ora devi creare una utenza per Misskey. Se scegli username **misskey** e password **gattino**, dovrai digitare la query: + +`CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'gattino';` + +Poi occorre il database: `CREATE DATABASE mkdb OWNER misskey;` + +Per uscire da `psql` scrivi `\q` + +### Redis + +Si tratta di un database non relazionale (noSQL), gestito nella memoria. Necessario per gestire la connessione tra le federazioni e il database. + +Installa Redis seguendo la [documentazione ufficiale](https://redis.io/docs/getting-started/installation/install-redis-on-linux/). + +``` +sudo apt install -y curl ca-certificates gnupg2 lsb-release + +curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg + +echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list + +sudo apt update + +sudo apt install -y redis + +systemctl status redis-server +``` + +Se tutto รจ andato bene, leggerai : **Ok** + +### Nginx + +Si tratta di un Application Web Server. Anche se non รจ essenziale, svolge comunque un compito importante, come il caching e la crittografia SSL (https). + +::: tip +Se configuri un ambiente di sviluppo, non serve. +::: + +Installa Nginx seguendo la [documentazione ufficiale](http://nginx.org/en/linux_packages.html#Ubuntu]. + +``` +sudo apt install ubuntu-keyring + +curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null + +gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg +``` + +Controlla se ottieni `573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62` come risposta. + +``` +echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list + +echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx + +sudo apt update + +sudo apt install -y nginx + +systemctl status nginx +``` + +Se tutto รจ andato bene, leggerai : **Ok** + +Attiva il servizio e abilita la partenza automatica al riavvio. + +``` +sudo systemctl start nginx + +sudo systemctl enable nginx + +curl http://localhost +``` + +Se leggi **Welcome to ngnix!** allora tutto รจ andato bene. + +### Altri software + +Occorrono due pacchetti aggiuntivi. Servono per la creazione di Misskey. + +``` +sudo apt update + +sudo apt install -y git build-essential +``` + +## Altre configurazioni + +Preparati ad esporre il servizio su internet + +::: tip +se stai preparando un ambiente di sviluppo, queste configurazioni non sono necessarie. +::: + +### Firewall + +Useremo 'ufw' come firewall per bloccare le connessioni non autorizzate. + +Si configura una whitelist e si aprono le porte dei servizi SSH 22, HTTP 80, HTTPS 443. + +``` +sudo ufw enable + +sudo ufw default deny + +sudo ufw limit 22 + +sudo ufw allow 80 + +sudo ufw allow 443 +``` + +Controlla la configurazione con: `sudo ufw status` +Attiva la partenza automatica al riavvio: `sudo systemctl enable ufw` + +::: tip +ufw semplifica l'uso di Netfilter (IPTABLES) +::: + +### CloudFlare + +Si tratta di un servizio utile per gestire DNS, Reverse Proxy e CDN sul tuo dominio. Si puรฒ anche evitare ma รจ consigliato, oltre che comodo. [Configurazione CDN](../admin/cdn) + +[Iscrizione a CloudFlare](https://dash.cloudflare.com/sign-up) segui le indicazioni per configurare il dominio prescelto. + +Digita l'indirizzo IP del server nella schermata DNS. A seconda del servizio, potrebbero essere necessarie fino a 48 ore prima della ricezione delle configurazioni. + +### Configurazione Certbot (Letโ€™s Encrypt) + +Per attivare la protezione SSL su **https**, ti occorre un certificato. + +Installa il plugin che integra Certbot e Cloudflare: `sudo apt install -y certbot python3-certbot-dns-cloudflare` + +Ottieni una APIKey dal sito Cloudflare + +1. [Apri la pagina](https://dash.cloudflare.com/profile/api-tokens) +2. Seleziona: visualizza API Key Globale +3. Inserisci la password e indica che sei una persona umana + +Crea un file di configurazione con le informazioni di Cloudflare. + +``` +mkdir /etc/cloudflare +nano /etc/cloudflare/cloudflare.ini +``` + +Scrivi questi parametri dentro al file di configurazione: + +``` +dns_cloudflare_email = tuo.accountn@registrato.su.cloudflare +dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx +``` + +Salva il file e imposta i privilegi di lettura: `sudo chmod 600 /etc/cloudflare/cloudflare.ini` + +Esegui il seguente comando, modificando `example.tld` con il tuo dominio: `sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld` + +Se leggi **Congratulations!** รจ andato tutto bene. Annota il percorso dei file `.pem`, ti serviranno dopo. + +## Installazione Misskey + +Ora che i preparativi sono finiti, puoi installare Misskey. + +Diventa l'utente `misskey` preparato in precedenza: `sudo su - misskey` + +Ottieni il codice sorgente tramite git: + +``` +git clone -b master https://github.com/misskey-dev/misskey.git` + +cd misskey + +git checkout master +``` + +Installa le librerie necessarie: `npx yarn install` + +## Configurazione di Misskey + +### Il file default.yml + +Crea il file e scrivici i contenuti indicati di seguito: `nano .config/default.yml`. + +I parametri col pallino โ— vanno modificati. I parametri col cerchietto ใ€‡ sono i valori che hai configurato fino ad ora. + +Puoi vedere un [esempio di configurazione](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml) + +::: tip +Se stai configurando un ambiente di sviluppo, indica `url: http://localhost:3000` +::: + +``` +# โ— URL pubblico di Misskey +url: https://example.tld/ + +# Imposta la porta numero 3000 +port: 3000 + +# โ— Configurazione PostgreSQLใ€‚ +db: + host: localhost + port: 5432 + db : mkdb # ใ€‡ Nome del database PostgreSQL + user: misskey # ใ€‡ Nome utente PostgreSQL + pass: gattini # โ— Password di PostgreSQL + +# Configurazione Redis +redis: + host: localhost + port: 6379 + +# Configurazione del tipo di ID +id: 'aid' + +# ใ€€ syslog +syslog: + host: localhost + port: 514 +``` + +Ricordati di salvare le modifiche. + +### Configurazione di Nginx + +Configurare usando i privilegi di super utente _root_. Smetti di essere l'utente misskey: `exit` + +Crea la configurazione: `sudo nano /etc/nginx/conf.d/misskey.conf` + +Copia la [configurazione di Nginx](../admin/nginx) e incollala dentro a Nano. + +Svolgi le seguenti modifiche indicando le tue configurazioni: + +- Righe 18 e 30 URL del dominio +- Righe 34-35 Sostituisci il percorso al file Certificato di Certbot (.pem) +- Se usi la CDN o un altro Reverse Proxy, elimina 4 righe a partire dalla 56 + +Ricordati di salvare le modifiche. + +Controlla il funzionamento: `sudo nginx -t` + +Se ottieni **OK** riavvia il servizio: `sudo systemctl restart nginx` poi verifica il funzionamento: `sudo systemctl status nginx` + +Se ottieni **OK** va tutto bene. + +## Costruire Misskey + +Adesso torna ad essere utente misskey: `sudo su - misskey` + +Avvia la build: + +``` +cd misskey +NODE_ENV=production npm run build +``` + +::: tip +Se stai preparando un ambiente di sviluppo, `NODE_ENV=production` non serve. +::: + +### Se non riesci a costruire la build sul server + +Potresti avere a disposizione meno di 2GB di memoria RAM. Servono per costruire Misskey e svolgere gli aggiornamenti. + +Possibili soluzioni: + +- Aggiungi memoria swap al server +- Trasferisci i file del repository git sul tuo pc e avvia la build da lรฌ. + +## Inizializza il Database + +`npm run init` + +## Avvia Misskey + +`NODE_ENV=production npx yarn start` + +Quando leggi: **Now listening on port 3000 on**, accedi alla URL indicata. + +Dovresti vedere la pagina iniziale di Misskey. Inizia a verificare se funziona. + +### Se non riesci ad accedere + +#### Controlla il DNS di CloudFlare + +Visita il sito Cloudflare e verifica che la configurazione DNS punti verso l'indirizzo IP che hai indicato. + +#### Controlla il router + +Se hai installato Misskey in un server che stร  dietro una sottorete, verifica che le porte 80 e 443 siano raggiungibili dall'esterno. + +## Creazione servizio Misskey + +::: tip +Se stai preparando un ambiente di sviluppo, non รจ necessario +::: + +Termina Misskey premendo `CTRL+c`. poi torna ad essere utente super amministratore: `exit` + +Crea la configurazione del servizio: `sudo nano /etc/systemd/system/misskey.service` + +Incolla il seguente testo e salva: + +``` +[Unit] +Description=Misskey daemon + +[Service] +Type=simple +User=misskey +ExecStart=/usr/bin/npm start +WorkingDirectory=/home/misskey/misskey +Environment="NODE_ENV=production" +TimeoutSec=60 +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=misskey +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +Abilita la configurazione e riavvia il servizio: + +``` +sudo systemctl daemon-reload + +sudo systemctl enable misskey + +sudo systemctl start misskey +``` + +Aspetta circa 15 secondi e verifica il funzionamento: `sudo systemctl status misskey`, se ottieni **Ok** va tutto bene. + +Per finire registra il primo utente, amministratore e accedi per completare la configurazione. + +## Aggiornare Misskey + +C'รจ uno [script automatico per aggiornare](https://github.com/joinmisskey/bash-install/blob/main/update.ubuntu.sh) + +[Aggiornamento manuale](./manual#) + +Misskey deve essere spento per svolgere queste azioni: + +``` +sudo systemctl stop misskey + +su - misskey + +git pull; + +npx yarn install; + +npm run clean; + +NODE_ENV=production npm run build; + +npm run migrate; + +exit +``` + +### Opzione 1: aggiorna anche il sistema + +``` +sudo apt update -y +sudo apt full-upgrade -y +sudo reboot +``` + +In questo caso Misskey tornerร  disponibile dopo il riavvio. + +### Opzione 2: avvia subito Misskey + +`sudo systemctl start misskey` diff --git a/src/it/docs/releases.md b/src/it/docs/releases.md index 53ed5e84cd..1bb3a45a93 100644 --- a/src/it/docs/releases.md +++ b/src/it/docs/releases.md @@ -6,6 +6,12 @@ Elenco delle note su ogni rilascio di Misskey, tradotte in italiano. Attenzione, i rilasci non tradotti in italiano, sono visibili nella pagina [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) del progetto. Abbiate cura di prenderne visione, per ottenere informazioni aggiornate puntualmente. ::: +## Rilascio 12.119.2 (2022-12-03) + +### Soluzioni + +- Server: Mitigazione rischio DoS su ActivityPub @skehmatics + ## Rilascio 12.119.0 (2022-09-10) ### Miglioramenti From a8592325d6dc364c66184b61bf9214cb0da1720b Mon Sep 17 00:00:00 2001 From: Sam Smucny Date: Mon, 5 Dec 2022 20:22:20 -0500 Subject: [PATCH 084/296] Add English Docs for Kubernetes/TrueNAS Install method (#116) * Create Kubernetes.md Add documentation for new installation method * Add link to kubernetes docs --- src/en/docs/install.md | 3 +++ src/en/docs/install/kubernetes.md | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/en/docs/install/kubernetes.md diff --git a/src/en/docs/install.md b/src/en/docs/install.md index 483e362fb7..658f95ec58 100644 --- a/src/en/docs/install.md +++ b/src/en/docs/install.md @@ -13,3 +13,6 @@ There are several ways to create an instance, so please choose one below and rea ## Using Yunohost Misskey can be installed as an App on YunoHost. For more information see [the repository of the Misskey package for YunoHost](https://github.com/YunoHost-Apps/misskey_ynh). + +## Using Kubernetes/TrueNAS Scale +[See here](./install/kubernetes.html) diff --git a/src/en/docs/install/kubernetes.md b/src/en/docs/install/kubernetes.md new file mode 100644 index 0000000000..6aeca0c0c5 --- /dev/null +++ b/src/en/docs/install/kubernetes.md @@ -0,0 +1,26 @@ +# Create Misskey Instance with Kubernetes/TrueNAS +This guide describes how to install and setup Misskey using Kubernetes and Helm charts. + + +## TrueCharts and TrueNAS Scale +The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/docs/charts/incubator/misskey) site has a list of all the charts availible as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the *incubator* train. + +::: tip Requirements +- TrueNAS Scale +OR +- Kubernetes cluster and Helm +::: + +## TrueNAS Scale +Follow the instructions on the [TrueCharts Guide](https://truecharts.org/docs/manual/guides/Adding-TrueCharts). Add the *incubator* train, and install the Misskey app. The only Misskey configuration option that is required is the isntance URL. The app also uses the Traefik reverse proxy to expose the service to the outside world over HTTPS. TrueCharts integrates with Traefik by default, but other options can be used with manual configuration. + +## Manual Helm +If you are not using TrueNAS Scale, you can install Misskey using Helm directly. The `misskey` object in the values.yaml file has the options that you will want to override as necessary. the `misskey.url` property it the only required change. A reverse proxy is recommended to secure access to the server as the chart does not currently support enabling TLS inside the Misskey container. +``` +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install misskey TrueCharts/misskey +``` + +## Upgrade Misskey +To upgrade Misskey, use the upgrade feature built into TrueNAS Scale or if running kubernetes manually use [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) and [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). It is highly recommended to create a snapshot of your data before upgrading in case there is an issue and you need to rollback. From 9e7c5ae59d97488f311b49ce1518b299824c2a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BE=E3=81=A3=E3=81=A1=E3=82=83=E3=81=A6=E3=81=83?= =?UTF-8?q?=E3=83=BC?= <56515516+mattyacocacora@users.noreply.github.com> Date: Thu, 15 Dec 2022 06:46:00 +0900 Subject: [PATCH 085/296] Update index.md (#131) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit permissionใ‚’่ชคๅญ—ใฃใฆใŸใ‹ใ‚‰ใชใŠใ—ใŸ --- src/docs/api/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/api/index.md b/src/docs/api/index.md index 4d1268b61a..f0900210ad 100644 --- a/src/docs/api/index.md +++ b/src/docs/api/index.md @@ -66,7 +66,7 @@ https://{host}/miauth/{session} ::: tip ไพ‹ ```:no-line-numbers -https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive +https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: From 8762341ad7584a8d895a7efb30d88215c483216a Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 15 Dec 2022 19:32:18 +0900 Subject: [PATCH 086/296] Create ads.md --- src/docs/features/ads.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/docs/features/ads.md diff --git a/src/docs/features/ads.md b/src/docs/features/ads.md new file mode 100644 index 0000000000..00107a789d --- /dev/null +++ b/src/docs/features/ads.md @@ -0,0 +1,11 @@ +# ๅบƒๅ‘Š +Misskeyใงใฏใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซใ‚ˆใ‚‹ๅบƒๅ‘Šใ‚’ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใชใฉใซ่กจ็คบใงใใ‚‹ๆฉŸ่ƒฝใŒใ‚ใ‚Šใพใ™ใ€‚ +ๅบƒๅ‘ŠใฎๅณไธŠใซ่กจ็คบใ•ใ‚Œใ‚‹ใ‚ขใ‚คใ‚ณใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใ“ใจใงใ€ๅฝ“่ฉฒใฎๅบƒๅ‘Šใฎ่กจ็คบ้ ปๅบฆใ‚’ไธ‹ใ’ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ + +::: tip +ๅบƒๅ‘Šใฎ็ทๆ•ฐใŒๅฐ‘ใชใ„ๅ ดๅˆใฏใ€่กจ็คบ้ ปๅบฆใ‚’ไธ‹ใ’ใŸๅพŒใ‚‚้€ฃ็ถšใง่กจ็คบใ•ใ‚Œใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚ +::: + +## ๅบƒๅ‘Šใฎ่จญๅฎš(็ฎก็†่€…) +ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใ‚ณใƒณใƒˆใƒญใƒผใƒซใƒ‘ใƒใƒซใ‹ใ‚‰ๅบƒๅ‘Šใฎ่ฟฝๅŠ ใ€็ทจ้›†ใ€ๅ‰Š้™คใ‚’่กŒใˆใพใ™ใ€‚ +ๅบƒๅ‘Šใซใฏไปปๆ„ใฎ็”ปๅƒใ€้ท็งปๅ…ˆURLใ€ๅฝข็Šถใ€่กจ็คบๅ‰ฒๅˆใ‚’่จญๅฎšใงใใพใ™ใ€‚ From 1f449faed5e61226eb2c31ca64e4137bbdde4c26 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 15 Dec 2022 19:33:11 +0900 Subject: [PATCH 087/296] Update config.ts --- src/.vuepress/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index 2fc5a8eebe..b010cf1f9e 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -88,6 +88,7 @@ export default defineUserConfig({ '/docs/features/charts', '/docs/features/online-status', '/docs/features/share-form', + '/docs/features/ads', '/docs/features/thread-mute', '/docs/features/word-mute', '/docs/features/mute-and-block', From 90c6b5fd5ab06b827a2cc0ae7da386398d508f4e Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 17 Dec 2022 23:53:05 +0900 Subject: [PATCH 088/296] Update ubuntu-manual.md --- src/docs/install/ubuntu-manual.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/docs/install/ubuntu-manual.md b/src/docs/install/ubuntu-manual.md index 9ba429a0b3..fcbb371cd6 100644 --- a/src/docs/install/ubuntu-manual.md +++ b/src/docs/install/ubuntu-manual.md @@ -7,28 +7,27 @@ ## ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎใŠ็Ÿฅใ‚‰ใ› -::: tip -ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎ้–‹็™บ็’ฐๅขƒใธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๆƒณๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ -::: - ใ‚ณใƒ”ใƒšใฐใ‹ใ‚Šใงใคใพใ‚‰ใชใ„๏ผๆ™‚้–“ใŒใ‹ใ‹ใ‚‹๏ผใจใซใ‹ใ้ขๅ€’๏ผ โ€ฆโ€ฆใ‚ใ‚Œใ€ใ‚ณใƒ”ใƒšใ ใ‘ใงใงใใ‚‹ใชใ‚‰ใ€ๅฎŒๅ…จ่‡ชๅ‹•ๅŒ–ใงใใ‚‹ใฎใงใฏ๏ผŸ ใจใ„ใ†ใ‚ใ‘ใงใ€**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใปใผๅ…จ้ƒจใ‚„ใฃใฆใใ‚Œใ‚‹ใ‚„ใคใ‚’ไฝœใฃใฆใฟใพใ—ใŸ๏ผ**\ [**่ฉณ็ดฐใจไฝฟ็”จๆ–นๆณ•ใฏใ“ใกใ‚‰ใ‹ใ‚‰๏ผ**](./bash.html) +::: tip +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎ้–‹็™บ็’ฐๅขƒใธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๆƒณๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ +::: + +::: tip ใƒ‰ใƒกใ‚คใƒณใฎ่ณผๅ…ฅใจCloudflareใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ€ใ‚ตใƒผใƒใƒผใฎ็ขบไฟใซใคใ„ใฆใฏใ”่‡ช่บซใงใ”ๆบ–ๅ‚™ใใ ใ•ใ„ใ€‚ +::: -ไธๅ…ทๅˆใŒใ‚ใ‚Œใฐ[@aqz@p1.a9z.devใธใฎใƒกใƒณใ‚ทใƒงใƒณ](https://p1.a9z.dev/@aqz)ใซใฆใŠ็Ÿฅใ‚‰ใ›ใ„ใŸใ ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™ใ€‚ +ไธๅ…ทๅˆใŒใ‚ใ‚Œใฐ[ @aqz@p1.a9z.dev ใธใฎใƒกใƒณใ‚ทใƒงใƒณ](https://p1.a9z.dev/@aqz)ใซใฆใŠ็Ÿฅใ‚‰ใ›ใ„ใŸใ ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™ใ€‚ ## ใ“ใฎ่จ˜ไบ‹ใซใคใ„ใฆ ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใง็ดนไป‹ใ•ใ‚Œใฆใ„ใ‚‹้€šใ‚Šใ€systemdใงMisskeyใ‚’ๅ‹•ไฝœใ•ใ›ใฆใ„ใพใ™ใ€‚ -[docker-compose](https://github.com/misskey-dev/misskey/blob/develop/docs/docker.ja.md)ใชใ‚‰ใ€ๆ‰‹ไฝœๆฅญใงใ‚‚ใ‚‚ใ†ใกใ‚‡ใฃใจ็ฐกๅ˜ใซๅฎŸ่กŒใงใใ‚‹ใฏใšใงใ™ใ€‚ - -Misskeyใ ใ‘ใ‚’Dockerใงๅ‹•ไฝœใ•ใ›ใ‚‹ๆ–นๆณ•ใฏ่งฃ่ชฌใ‚’ๆ–ญๅฟตใ—ใพใ—ใŸใ€‚\ -ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏMisskeyใ ใ‘ใ‚’Dockerใงๅ‹•ไฝœใ•ใ›ใ‚‹ใ“ใจใŒใงใใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚ +[docker-compose](./docker.html)ใชใ‚‰ใ€ๆ‰‹ไฝœๆฅญใงใ‚‚ใ‚‚ใ†ใกใ‚‡ใฃใจ็ฐกๅ˜ใซๅฎŸ่กŒใงใใ‚‹ใฏใšใงใ™ใ€‚ ## ใฏใ˜ใ‚ใซ From a0c219699575e2fd92e125c01a1708a76127fd6b Mon Sep 17 00:00:00 2001 From: Sam Smucny Date: Wed, 21 Dec 2022 19:09:02 -0500 Subject: [PATCH 089/296] English docs translation for features (#132) * fix typos * Add ads translation * Add charts translation * formatting * Add antenna translation * translate clip * update antenna * update custom-emoji * deck translation * link typo * translate favorite * translate follow * formatting * Formatting and style editing * formatting and wording edits * translate silence * translate timeline * formatting * translate and add to widgets * add lists/antennas to timeline * translate and add to pages * translate webhook * translate theme * update config to include more docs in top nav --- src/.vuepress/config.ts | 25 ++++ src/docs/features/favorite.md | 3 +- src/en/docs/features/ads.md | 13 +++ src/en/docs/features/antenna.md | 8 ++ src/en/docs/features/charts.md | 72 ++++++++++++ src/en/docs/features/clip.md | 10 ++ src/en/docs/features/custom-emoji.md | 3 +- src/en/docs/features/deck.md | 30 +++++ src/en/docs/features/drive.md | 4 +- src/en/docs/features/favorite.md | 7 ++ src/en/docs/features/follow.md | 5 + src/en/docs/features/mfm.md | 11 +- src/en/docs/features/mute-and-block.md | 25 ++-- src/en/docs/features/note.md | 43 ++++--- src/en/docs/features/online-status.md | 5 +- src/en/docs/features/pages.md | 52 +++++++++ src/en/docs/features/plugin.md | 1 + src/en/docs/features/reaction.md | 13 ++- src/en/docs/features/share-form.md | 19 +-- src/en/docs/features/silence.md | 9 ++ src/en/docs/features/theme.md | 80 +++++++++++++ src/en/docs/features/thread-mute.md | 1 + src/en/docs/features/timeline.md | 43 +++++++ src/en/docs/features/webhook.md | 154 +++++++++++++++++++++++++ src/en/docs/features/widgets.md | 98 ++++++++++++++++ src/en/docs/features/word-mute.md | 15 ++- src/en/docs/install/kubernetes.md | 6 +- 27 files changed, 701 insertions(+), 54 deletions(-) create mode 100644 src/en/docs/features/ads.md create mode 100644 src/en/docs/features/antenna.md create mode 100644 src/en/docs/features/charts.md create mode 100644 src/en/docs/features/clip.md create mode 100644 src/en/docs/features/deck.md create mode 100644 src/en/docs/features/favorite.md create mode 100644 src/en/docs/features/follow.md create mode 100644 src/en/docs/features/pages.md create mode 100644 src/en/docs/features/silence.md create mode 100644 src/en/docs/features/theme.md create mode 100644 src/en/docs/features/timeline.md create mode 100644 src/en/docs/features/webhook.md create mode 100644 src/en/docs/features/widgets.md diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index b010cf1f9e..fe9c9c1483 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -82,9 +82,11 @@ export default defineUserConfig({ children: [ '/docs/features/note', '/docs/features/reaction', + '/docs/features/timeline', '/docs/features/mfm', '/docs/features/custom-emoji', '/docs/features/drive', + '/docs/features/deck', '/docs/features/charts', '/docs/features/online-status', '/docs/features/share-form', @@ -93,6 +95,14 @@ export default defineUserConfig({ '/docs/features/word-mute', '/docs/features/mute-and-block', '/docs/features/plugin', + '/docs/features/antenna', + '/docs/features/clip', + '/docs/features/favorite', + '/docs/features/follow', + '/docs/features/pages', + '/docs/features/theme', + '/docs/features/thread-mute', + '/docs/features/widgets', ] }, { @@ -113,6 +123,7 @@ export default defineUserConfig({ '/docs/admin/push-docker-hub', '/docs/admin/troubleshooting', '/docs/tips/disable-timelines', + '/docs/features/silence', ] } ] @@ -192,15 +203,27 @@ export default defineUserConfig({ children: [ '/en/docs/features/note', '/en/docs/features/reaction', + '/en/docs/features/timeline', '/en/docs/features/mfm', '/en/docs/features/custom-emoji', '/en/docs/features/drive', + '/en/docs/features/deck', + '/en/docs/features/charts', '/en/docs/features/online-status', '/en/docs/features/share-form', + '/en/docs/features/ads', '/en/docs/features/thread-mute', '/en/docs/features/word-mute', '/en/docs/features/mute-and-block', '/en/docs/features/plugin', + '/en/docs/features/antenna', + '/en/docs/features/clip', + '/en/docs/features/favorite', + '/en/docs/features/follow', + '/en/docs/features/pages', + '/en/docs/features/theme', + '/en/docs/features/thread-mute', + '/en/docs/features/widgets' ] }, { @@ -209,6 +232,7 @@ export default defineUserConfig({ '/en/docs/api', '/en/docs/api/streaming', '/en/docs/api/endpoints.html', + '/en/docs/features/webhook', ] }, { @@ -222,6 +246,7 @@ export default defineUserConfig({ '/en/docs/admin/troubleshooting', '/en/docs/tips/disable-timelines', '/en/docs/admin/default-reaction', + '/en/docs/features/silence', ] } ] diff --git a/src/docs/features/favorite.md b/src/docs/features/favorite.md index c788fd37e9..2d6c796345 100644 --- a/src/docs/features/favorite.md +++ b/src/docs/features/favorite.md @@ -1,5 +1,6 @@ # ใŠๆฐ—ใซๅ…ฅใ‚Š -[ใƒŽใƒผใƒˆ](./node)ใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Šใจใ—ใฆ็™ป้Œฒใงใใ‚‹ๆฉŸ่ƒฝใงใ™ใ€‚ + +[ใƒŽใƒผใƒˆ](./note)ใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Šใจใ—ใฆ็™ป้Œฒใงใใ‚‹ๆฉŸ่ƒฝใงใ™ใ€‚ ใŠๆฐ—ใซๅ…ฅใ‚Š็™ป้Œฒใ—ใŸใƒŽใƒผใƒˆใฏใ€[ใŠๆฐ—ใซๅ…ฅใ‚Šใƒšใƒผใ‚ธ](./my/favorites)ใงไธ€่ฆงใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ ใŠๆฐ—ใซๅ…ฅใ‚Šใซ็™ป้Œฒใ—ใŸใ“ใจใฏ็›ธๆ‰‹ใซ้€š็Ÿฅใ•ใ‚Œใšใ€ใŠๆฐ—ใซๅ…ฅใ‚Šใฏ่‡ชๅˆ†ใ—ใ‹่ฆ‹ใ‚‹ใ“ใจใŒใงใใพใ›ใ‚“ใ€‚ diff --git a/src/en/docs/features/ads.md b/src/en/docs/features/ads.md new file mode 100644 index 0000000000..2948e6f0f2 --- /dev/null +++ b/src/en/docs/features/ads.md @@ -0,0 +1,13 @@ +# Advertisements + +Misskey can display ads in the instance timeline and other places if enabled by the instance administrator. +You can reduce how often an ad is shown by clicking in the upper right corner of it. + +::: tip +If the total number of ads being shown on the instance is small then an ad may still be shown to you often even after you choose to reduce how often it is displayed. +::: + +## Configuring Ads (Admins) + +You can add, edit, and delete ads from the control panel of your instance. +In there you can set any image, destination URL, shape, and display percentage for the ad. diff --git a/src/en/docs/features/antenna.md b/src/en/docs/features/antenna.md new file mode 100644 index 0000000000..4e34cfbed3 --- /dev/null +++ b/src/en/docs/features/antenna.md @@ -0,0 +1,8 @@ +# Antenna + +Antenna is a feature that allows you to freely set conditions for a custom timeline and automatically collect matching notes. + +Antenna conditions can include conditions to include/exclude certain keywords and tags in different combinations as well as other options. +When a note matching an antenna's conditions is posted, the note will automatically be added to that antenna's timeline. + +To create an antenna, click "Add" in the Manage antennas page. Then fill in the options to customize your antenna. diff --git a/src/en/docs/features/charts.md b/src/en/docs/features/charts.md new file mode 100644 index 0000000000..07a2d84ac8 --- /dev/null +++ b/src/en/docs/features/charts.md @@ -0,0 +1,72 @@ +# Charts + +Misskey can generate and display charts for an instance's various federated data sources. +Charts allow you to get a visual depiction of the usage, federation status, and activity of each user. + +Instance charts can be viewed from the *instance information* page (accessible by clicking the instance logo in the navigation menu). + +Below is a description of each chart and its contents. + +## Federation Chart + +This chart shows information about federated instances. + +### Pub + +The number of instances that this instance is publishing activities to. + +### Sub + +The number of instances that this instance is receiving activities from. + +### Received + +The number of instances that have sent an activity to this instance. + +### Delivered + +The number of instances that this instance has delivered an activity to. + +### Stalled + +The number of instances where an error was encountered when delivering an activity. + +## Active Users Chart + +Chart of user activity on this instance. + +### Read & Write + +The number of users that have read and written. + +### Read + +The number of users that have read. + +### Write + +The number of users that have written. + +### < Week + +The number of users with an account less than one week old. + +### < Month + +The number of users with an account less than one month old. + +### < Year + +The number of users with an account less than one year old. + +### > Week + +The number of users with an account older than one week. + +### > Month + +The number of users with an account older than one month. + +### > Year + +The number of users with an account older than one year. diff --git a/src/en/docs/features/clip.md b/src/en/docs/features/clip.md new file mode 100644 index 0000000000..f79e1fb7b2 --- /dev/null +++ b/src/en/docs/features/clip.md @@ -0,0 +1,10 @@ +# Clip + +Clip is a feature that allows you to create collections of notes. +The notes can be your own or created by others. +You can create multiple clips and manage them by giving a name and description to each. +You can also choose to make your clips public to make them available to other users. + +To create a clip, click "Add" from the clip management page. + +To add notes to a clip, choose the "Clip" option on the note's menu. Then select the clip to add the note to. diff --git a/src/en/docs/features/custom-emoji.md b/src/en/docs/features/custom-emoji.md index 993105dfe7..38d1d2c76e 100644 --- a/src/en/docs/features/custom-emoji.md +++ b/src/en/docs/features/custom-emoji.md @@ -1,7 +1,8 @@ # Custom Emoji + Custom Emojis are a feature that allows you to use any image provided by your instance as an emoji. You can use them in places like notes, reactions, chat, your profile, your name, etc. To use a custom emoji in one of those places, press the emoji picker button (if available) or type `:` to display emoji suggestions. If a string of the form `:foo:` is found in the text, the `foo` part will be interpreted as a custom emoji name and it will be replaced by the corresponding custom emoji when displayed. -You can see which custom emojis are available on your instance by visiting `/emojis` on Misskey Web. +You can see which custom emojis are available on your instance by visiting `/emojis` on your instance's Misskey site. diff --git a/src/en/docs/features/deck.md b/src/en/docs/features/deck.md new file mode 100644 index 0000000000..02fdd9f6fe --- /dev/null +++ b/src/en/docs/features/deck.md @@ -0,0 +1,30 @@ +# Deck UI + +Deck UI is one of the available UIs in Misskey. It is characterized by the ability to build highly customizable and informative UIs by displaying multiple views, called "columns", side by side. +The deck option is only available on sufficiently large screens like a laptop computer. + +## Adding Columns + +You can add a column by right-clicking on the deck background and selecting "Add Column". You can also click the '+' icon on the right side of the screen. + +## Move Columns + +Columns can be repositioned by drag-and-drop or by using the column menu "Move" option (right-click on the column header). + +## Horizontal Division of Columns + +Columns can be arranged vertically as well as horizontally. Open the column's menu and select "Stack with the left column" to move the current column below the column to its left. +To unstack a column, select "Pop column to the right" from the column's menu. + +## Configure Column Layout + +Select "Column settings" in the column menu to edit column layout settings. Here you can change the column name and width. +If the colum is set to flexible then it will expand beyond its set width to fill remaining horizontal space on the screen. + +## Deck Settings + +Deck-related settings can be changed in the settings menu (click the gear icon in the bottom right of the screen. + +## Deck Profiles + +You can create/load a deck profile by clicking on the menu in the top right of the screen. Choose "New profile" to create a new blank deck to customize. Select another profile to switch to it. The trash button deletes the current profile. diff --git a/src/en/docs/features/drive.md b/src/en/docs/features/drive.md index 77ef5d1f84..438b8ac806 100644 --- a/src/en/docs/features/drive.md +++ b/src/en/docs/features/drive.md @@ -1,4 +1,5 @@ # Drive + Drive is a feature that allows you to manage your files on Misskey. ::: tip @@ -9,13 +10,14 @@ You can upload any file directly on the Drive page on Misskey Web, and any image Files uploaded to the drive can be downloaded at any time, or files can be reused by using 'attach files from drive' when creating notes. -You can also create folders on your drive to organise multiple files together. +You can also create folders on your drive to organize multiple files together. ::: warning At the moment, when you delete a file from your drive, **all the content (notes, pages, etc.)** attached to that file will also be deleted. ::: ## Warning (NSFW) + Warning or NSFW (Not safe for work) is a flag that can be set on files in your drive. Files that have been flagged as unsafe to view will not be displayed without user interaction. This flag can be used, for example, to prevent images that are not suitable for viewing in the workplace or in public places from suddenly appearing. diff --git a/src/en/docs/features/favorite.md b/src/en/docs/features/favorite.md new file mode 100644 index 0000000000..5b892dd03f --- /dev/null +++ b/src/en/docs/features/favorite.md @@ -0,0 +1,7 @@ +# Favorites + +This function allows you to mark a [note](./note) as a favorite. +You can view your favorited notes on the [Favorite](./my/favorites) page. +Other users will not be notified that you have added their note to your favorites, and only you can see your favorites. + +To favorite a note, press "Add to favorites" in the note's menu. To un-favorite a note, click "Remove from favorites" in the note's menu. diff --git a/src/en/docs/features/follow.md b/src/en/docs/features/follow.md new file mode 100644 index 0000000000..b693edf6d9 --- /dev/null +++ b/src/en/docs/features/follow.md @@ -0,0 +1,5 @@ +# Follow + +When you follow a user, you will see their posts on your home timeline; however, their replies to other users will not be included. + +To follow a user, click the "Follow" button on the user's profile page. To unfollow a user, click the button again. diff --git a/src/en/docs/features/mfm.md b/src/en/docs/features/mfm.md index d806bd5159..60b90f942a 100644 --- a/src/en/docs/features/mfm.md +++ b/src/en/docs/features/mfm.md @@ -18,7 +18,7 @@ Some of the syntax is compatible with Markdown. ## Syntax ### Mentions ::: tip -For more information about Mentions, see [here](. /mention.md). +For more information about Mentions, see [here](./mention.md). ::: ```:no-line-numbers @@ -29,8 +29,9 @@ For more information about Mentions, see [here](. /mention.md). ``` ### Hashtags + ::: tip -For more information about hashtags, see [here](. /hashtag.md). +For more information about hashtags, see [here](./hashtag). ::: ```:no-line-numbers @@ -38,8 +39,9 @@ For more information about hashtags, see [here](. /hashtag.md). ``` ### Custom Emoji + ::: tip -For more information about custom emoji, see [here](./custom-emoji.md). +For more information about custom emoji, see [here](./custom-emoji). ::: ```:no-line-numbers @@ -47,11 +49,13 @@ For more information about custom emoji, see [here](./custom-emoji.md). ``` ### Links + ```:no-line-numbers [example link](https://example.com) ``` ### Bold + ```:no-line-numbers **Bold** ``` @@ -63,5 +67,6 @@ More available syntax can be found in the **MFM cheat sheet** provided by the Mi ::: ## Information for Developers + The parser implementation of MFM is available as a library, making it easier to embed MFM in your clients. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - parser implementation in JavaScript diff --git a/src/en/docs/features/mute-and-block.md b/src/en/docs/features/mute-and-block.md index 98b3128390..6f8b1a6b1f 100644 --- a/src/en/docs/features/mute-and-block.md +++ b/src/en/docs/features/mute-and-block.md @@ -1,4 +1,5 @@ # Muting and Blocking + If you don't like a user, you can mute them to make them disappear from your timelines. Alternatively, you can block a user to prevent them from seeing your content or engaging with you in any way. People won't know that you have muted them, but they will know that you have blocked them. It is up to you to decide which option you prefer. @@ -8,12 +9,13 @@ Mute and block can be used together. ::: ::: warning -Please consider reporting any unwanted users who violate the Terms of Use to the moderators. +Please consider reporting any users who violate the Terms of Service to the moderators. ::: In Misskey Web, you can see the list of users you have muted or blocked by going to Settings > Mute & Block. ## Muting + If you mute a user, the following content about that user will no longer appear in Misskey: - the user's posts (and replies and Renotes to those posts) in the timeline and post search results @@ -21,7 +23,7 @@ If you mute a user, the following content about that user will no longer appear - message history with the user in Misskey chat - etc. -To mute a user in Misskey Web, open the menu on the user page of the user in question and press the "Mute" button. +To mute a user in Misskey Web, open the menu on the user's profile page and press the "Mute" button. ::: tip They will not be notified that you have muted them, and they will not know that you have muted them. @@ -31,23 +33,24 @@ They will not be notified that you have muted them, and they will not know that If you block a user, they will not be able to see your content and they will not be able to do any the following actions: - follow you -- add to a user list -- reply or renote -- react or vote in a poll -- send a message +- add you to a user list +- reply or renote you +- react or vote in one of your polls +- send a message to you - etc. Also, -- if the user is already following you when you block them, they will unfollow you. -- if the user already has you in their user list when you block them, you will be removed from that list. +- if the user is already following you when you block them, they will unfollow you +- if the user has you in their user lists when you block them, you will be removed from those lists -To block a user on Misskey Web, open the menu on the user page of the user in question and press the "Block" button. +To block a user on Misskey Web, open the menu on the user's profile page and press the "Block" button. ::: warning -You will not be notified that you have been blocked, but you will know indirectly that you have been blocked because you will not be able to take any of the above actions, such as following someone. +You will not be notified that you have been blocked by someone, but you will know indirectly that you have been blocked because you will not be able to take any of the above actions, such as following someone. ::: ::: warning -The other person will not be able to see your content, but they will be able to see it if they switch accounts or log out. This is only a simple, but useful feature. +The other person will not be able to see your content, but they will be able to see it if they switch accounts or log out. Blocking is only a simple, but useful feature. +You can change your privacy settings in Settings > Privacy to make it more difficult for blocked users to view your content by requiring approval for follow requests and setting your default note visibility to "Followers". ::: diff --git a/src/en/docs/features/note.md b/src/en/docs/features/note.md index 89cea382cf..1ef0349d0a 100644 --- a/src/en/docs/features/note.md +++ b/src/en/docs/features/note.md @@ -1,17 +1,19 @@ # Notes -Notes are a central concept within Misskey, and refer to content that may include text, images, surveys and more that has been posted to Misskey. In this context, "to note" is also used as a verb refering to the creation of a note. -By composing a note, it will be added to the [timeline](./timeline) and become visible by your followers and other users from your server. +Notes are a central concept within Misskey, and refer to content that may include text, images, polls and more that has been posted to Misskey. In this context, "to note" is also used as a verb referring to the creation of a note. -On Misskey, it is also possible to add [Reactions](./reaction) to notes.In addition to that, you can reply to or quote notes. +By composing a note, it will be added to the [timeline](./timeline) and sent to your followers and other users from your server. -By adding a note to your [Favorites](./favorite), you can easily look back at it at a later point in time. +On Misskey, it is also possible to add [Reactions](./reaction) to notes. Additionally, you can reply to or quote notes. -## Composing notes -To compose a note, press the button with a pencil icon on the upper part of your screen to open the posting form.Enter the content you want to post in the form, and press the "Note" button to publish it. Notes can contain text as well as files such as images or videos and also [Surveys](./poll).In addition, by using [MFM](./mfm) within your text, you can additionally include [Mentions](./mention) and [Hashtags](./hashtag). There are also other settings such as CW or note visibility (explained later). +By adding a note to your [Favorites](./favorite), you can easily find it at a later point in time. + +## Composing Notes + +To compose a note, press one of the buttons with a pencil icon on your screen to open the posting form (either at the top of your timeline or at the bottom of the navigation menu). Enter the content you want to post in the form, and press the "Note" button to publish it. Notes can contain text, files such as images or videos, and [Polls](./poll). In addition, by using [MFM](./mfm) within your text, you can include [Mentions](./mention) and [Hashtags](./hashtag). There are also other settings such as CW (Content Warning) or note visibility that are explained below. ::: tip -If you are on a computer and have an image saved in your clipboard, you can attach it to your note by using the usual paste shortcut within the text box. +If you are on a computer and have an image saved in your clipboard, you can attach it to your note by using the usual paste keyboard shortcut within the text box. ::: ::: tip @@ -19,21 +21,25 @@ You can also press Ctrl + Enter within the text box to pu ::: ## Renote -The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts are all called Renote (or "renoting" as verb). Most of the time, this is used when you want to share a note you like to your own followers, or when you want a share a note that you posted in the past once more. While it is possible to renote the same note multiple times, please be aware that doing so may be seen as annoying by others. + +The act of quoting an existing note or sharing an existing note. The note created as a result of these acts are all called a Renote/RN (or "renoting" as verb). Most of the time, this is used when you want to share a note you like to your own followers, or when you want a share a note that you posted in the past once more. While it is possible to renote the same note multiple times, please be aware that doing so may be seen as annoying by others. ::: warning -If you've set your note's visibility to Followers-only or Direct, then renoting it will not be possible. +If you've set your note's visibility to Followers-only or Direct, then others will not be able to renote it. ::: To take back a renote, press the "..." next to the renote timestamp and select "Take back Renote". ## CW -An abbreviation of "Content Warning", resulting in the content of a note being hidden unless explicitly requested to be shown by a viewing user.It is mainly used to hide the content of long notes or to prevent posting spoilers publicly. To enable CW for a note, press the "Hide content" button (eye icon) in the post form.By doing so a new text input area will appear, where you can write a summary of the content hidden by the CW. + +An abbreviation of "Content Warning", resulting in the content of a note being hidden unless explicitly requested to be shown by a viewing user. It is mainly used to hide the content of long notes or to prevent posting spoilers publicly. To enable CW for a note, press the "Hide content" button (eye icon) in the post form. By doing so a new text input area will appear, where you can write a summary of the content hidden by the CW. ## Visiblility -It's possible to individually set where your note will be visible (Visibility) for each of your notes.By pressing the icon to the left of the "Note" button in the post form, you can choose from the visibility settings listed below. + +It's possible to individually set where your note will be visible (Visibility) for each of your notes. By pressing the icon to the left of the "Note" button in the post form, you can choose from the visibility settings listed below. ### Public + Your note will be visible to all users and will show up on all timelines (home, local, social, global). ::: warning @@ -41,18 +47,23 @@ This visibility will be unavailable if your account is silen ::: ### Home + Your note will be visible to all users, but will not show up on the local, social or global timeline for non-followers. ### Followers -Your note will only be visible to those that are following you.The note will show up on all timelines of your followers. + +Your note will only be visible to those that are following you. The note will show up on all timelines of your followers. ### Direct -Your note will only be visible to individually specified users.The note will show up on all timelines of the specified users. + +Your note will only be visible to individually specified users. The note will show up on all timelines of the specified users. ### The "Local only" option + If you enable this option, your note won't be federated to remote instances. ### Visibility comparison + @@ -60,11 +71,13 @@ If you enable this option, your note won't be federated to remote instances.
PublicHomeFollowersDirect
LTL/STL/GTL of Followersโœ”โœ”โœ”
## Pin to profile + By pinning a note to your profile it will be constantly displayed on your profile page. To pin a note, open the note menu and press "Pin to profile". ::: tip -It's also possible to pin multiple notes to your profile. +It's possible to pin multiple notes to your profile. ::: ## Watch -You can get notifications for replies, reactions etc. for a note that is not yours by watching it. To watch a note, select "Watch" from the respective note's menu. + +You can get notifications for replies, reactions etc. for a note that is not yours by watching it. To watch a note, select "Watch" from the note's menu. diff --git a/src/en/docs/features/online-status.md b/src/en/docs/features/online-status.md index 80ef14c6ea..f2384d7e41 100644 --- a/src/en/docs/features/online-status.md +++ b/src/en/docs/features/online-status.md @@ -1,4 +1,5 @@ # Online Status + A user's **online status** is an indication of their Misskey usage status. Your online status is displayed as an indicator in the corner of the user icon on your user page and elsewhere. @@ -11,7 +12,7 @@ Your online status is displayed as an indicator in the corner of the user icon o ๐ŸŸข green online - Misskey is used right now. + Misskey is being used right now. ๐ŸŸก yellow @@ -26,7 +27,7 @@ Your online status is displayed as an indicator in the corner of the user icon o โšซ grey unknown - The status is not private or not available for remote users etc. + The status is private or not available for remote users etc. diff --git a/src/en/docs/features/pages.md b/src/en/docs/features/pages.md new file mode 100644 index 0000000000..005f5dfcf0 --- /dev/null +++ b/src/en/docs/features/pages.md @@ -0,0 +1,52 @@ +# Pages + +Misskey Pages are a feature where you can create custom web pages. In them you can include different types of media and formatting. and even run programming scripts. Like with many other areas of Misskey, you can format your content using [MFM](./mfm.md). + +Pages in Misskey are composed of different types of Blocks, and the blocks can be moved around using drag-and-drop. + +## Content Blocks + +Content blocks display different types of content to the user. + +### Section + +A grouping block that can contain other blocks. Each content block has a title that it will display at its top. + +### Text + +Displays text content to the user. The text content can be formatted and can include variables interpolation (See Variables below). + +### Images + +Displays an image that you can select from your drive. + +### Text Area + +Displays text in a text area tag. This block does not support MFM but variable interpolation is allowed. + +### Embedded Note + +TODO + +### Canvas + +TODO + +## Input Blocks + +Input blocks can be used to create interactive pages with form elements. These blocks can be used to interact with the variables and scripts in a page. + +## Special Blocks + +Special blocks provide unique features for your page. This includes a note posting form and page control flow. + +## Variables + +Variables can be used to create dynamic pages. You can embed the value of a variable by writing { variable name } in the text. For example, in Hello { thing } world!, if the value of the variable (thing) was ai, then the text would become Hello ai world!. + +Variables are evaluated from top to bottom, so you cannot refer to a variable defined below you in a given variable. For example, if there are three variables, A, B, C, that are defined in that order, A and B can be referenced inside of C's definition; however, B and C cannot be referenced inside of A's. + +To receive input from the user, place an "Input" block on the page and set the "Variable Name" to the name of the variable in which you want to store the value (the variable will automatically be created by the block). +The variable can the be used to perform actions in response to user input. + +Functions can be used to encapsulate value calculations in a reusable form. To create a function, create a variable of type "Function". A function can have slots (arguments), and the values of the slots are available as variables within the function. There are also functions called higher-order functions that take another function as an argument. Functions can be predefined or instantiated in-line in slots of such higher order functions. diff --git a/src/en/docs/features/plugin.md b/src/en/docs/features/plugin.md index 5d47ffe557..1ecab52cbd 100644 --- a/src/en/docs/features/plugin.md +++ b/src/en/docs/features/plugin.md @@ -1,4 +1,5 @@ # Plug-ins + Misskey Web has a plugin facility that allows users to extend the functionality of Misskey Web. For information on how to create a plugin, see [this document](./advanced/create-plugin.md). diff --git a/src/en/docs/features/reaction.md b/src/en/docs/features/reaction.md index 6b74cb6fda..11c047f2ee 100644 --- a/src/en/docs/features/reaction.md +++ b/src/en/docs/features/reaction.md @@ -1,17 +1,21 @@ # Reaction + This feature allows you to easily convey your reactions to other people's notes by adding emojis. To react in Misskey Web, click the + icon on the note to show the picker and select an emoji. You can also react using [custom emoji](./custom-emoji.md). -## Customising the reaction picker -In Misskey Web you can choose which emojis should appear in the picker, and change the order they should appear in. +## Customising the Reaction Picker + +In Misskey Web you can choose which emojis should appear in the picker and change the order they should appear in. You can set this in the "Reactions" section of the settings. -## Reactions to remote posts -Since Reactions are an original Misskey feature, most of the time the activity will be sent as a "Like" unless the remote instance supports them. +## Reactions to Remote Posts + +Since Reactions are an original Misskey feature, most of the time the activity will be sent to other instances as a "Like" unless the remote instance supports them. Usually, ActivityPub's "Like" is implemented as a favorite. ## Reactions from remote instances + Since Misskey does not have likes, a "Like" from a remote instance will be displayed as a '๐Ÿ‘' reaction. ::: tip @@ -20,5 +24,6 @@ If you are an admin, see [here](../admin/default-reaction.md). ::: ## See a list of all your reactions + In Misskey Web, you can see the list of all the reactions you have made by opening the "Reactions" tab on your profile page. You can also choose to make this list public in the settings. diff --git a/src/en/docs/features/share-form.md b/src/en/docs/features/share-form.md index 0db284ab93..3d30124c8d 100644 --- a/src/en/docs/features/share-form.md +++ b/src/en/docs/features/share-form.md @@ -1,9 +1,10 @@ -# Share form -When you open `/share` in Misskey Web, you can open a sharing submission form. This sharing form is useful if you want users to share the content of your page with Misskey from an external web page. +# Share Form -You can specify a number of options for the URL, including the shared content as a query parameter. +When you open `/share` in Misskey Web, you open a sharing submission form. This sharing form is useful if you want users to share the content of your page with Misskey from an external web page. -## Query parameters +You can specify a number of options in the URL, including the shared content, as a query parameters. + +## Query Parameters ::: tip All parameters are **optional**. @@ -15,7 +16,8 @@ All parameters are **optional**. | `text` | main body | | `url` | URL, inserted after the main body | -### Reply information +### Reply Information + You can make the note being composed a reply to a given note by specifying one of the following. | name | description | @@ -23,15 +25,17 @@ You can make the note being composed a reply to a given note by specifying one o | `replyId` | ID of the note you are replying to | | `replyUri` | URL to reply to (specify the remote note object) | -### Renote information +### Renote Information + You can make the note being composed a renote of a given note by specifying one of the following. | name | description | | ---- | ---- | | `renoteId` | ID of the note to renote | -| `renoteUri` | URL of the note to renote(specify the remote note object) | +| `renoteUri` | URL of the note to renote (specify the remote note object) | ### Publication Scope + The following options allow to select a scope. | name | description | @@ -46,6 +50,7 @@ If `visibility` is set to `specified`, either `visibleUserIds` or `visibleAccts` ::: ### Attachments + You can specify attachments with the following options. | name | description | diff --git a/src/en/docs/features/silence.md b/src/en/docs/features/silence.md new file mode 100644 index 0000000000..b7ddf89ce3 --- /dev/null +++ b/src/en/docs/features/silence.md @@ -0,0 +1,9 @@ +# Silence + +Silence is one of the states that an account can be set to. + +When your account is silenced, you cannot set the visibility of your notes to Public. +Home, Followers, and Direct are still selectable, so even if your account is silenced, followers and direct visitors to your page will still be able to view your posts. +They will just not be able to view them in the GTL (Global Timeline) or LTL (Local Timeline). + +The silence status of an account is set by the instance moderators. diff --git a/src/en/docs/features/theme.md b/src/en/docs/features/theme.md new file mode 100644 index 0000000000..57111f7864 --- /dev/null +++ b/src/en/docs/features/theme.md @@ -0,0 +1,80 @@ +# Theme + +You can change the look and feel of the Missky client by applying a theme. + +## Theme Settings + +Settings > Themes + +## Creating a Theme + +The theme object code is written using JSON5. +The theme has an object type like the one shown below. + +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... Unique theme ID. A UUID is recommended. +* `name` ... Theme name +* `author` ... Theme author +* `desc` ... Theme description (Object) +* `base` ... light or dark theme + * Use `light` for a light theme and `dark` for a dark theme. + * The theme inherits the base theme that is set here. +* `props` ... Theme style definition. Explained in the following sections. + +### Theme Style Definition + +Define the theme style within the `props`. +The keys are the names of CSS variables, and the values specify the contents. +Furthermore, this `props` object inherits from the base theme. +The base theme is [_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5) if the `base` of this theme is `light` and [_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5) if `dark`. +That is, if there is no `props` key named `panel` in this theme, then it is set to the `panel` in the base theme. + +#### Value Syntax + +* Colors expressed with hexadecimal + * example: `#00ff00` +* Colors expressed with `rgb(r, g, b)` format + * example: `rgb(0, 255, 0)` +* Colors that contain alpha/transparency values expressed with `rgb(r, g, b, a)` format + * example: `rgba(0, 255, 0, 0.5)` +* Other key value reference + * `@{key name}` is a reference to the value of another key. Replace `{key name}` with the name of the key you wish to reference. + * example: `@panel` +* Constant (discussed below) reference + * `${constant name}` is a reference to a constant. Replace `{constant name}` with the name of the constant you with to reference. + * example: `$main` +* Functions (discussed below) + * `:{้–ขๆ•ฐๅ}<{ๅผ•ๆ•ฐ}<{่‰ฒ}` + +#### Constants + +Constants are useful when you have values that you do not want to output as CSS variables, but want to use as values for other CSS variables."I don't want to output it as a CSS variable, but I do want to use it as a value for other CSS variables. + +#### Functions + +WIP diff --git a/src/en/docs/features/thread-mute.md b/src/en/docs/features/thread-mute.md index 2e0a0b2e4f..8a2ef09022 100644 --- a/src/en/docs/features/thread-mute.md +++ b/src/en/docs/features/thread-mute.md @@ -1,4 +1,5 @@ # Thread mute + ::: tip This feature is available since version 12.95.0. ::: diff --git a/src/en/docs/features/timeline.md b/src/en/docs/features/timeline.md new file mode 100644 index 0000000000..d730c5359e --- /dev/null +++ b/src/en/docs/features/timeline.md @@ -0,0 +1,43 @@ +# Timeline + +The timeline displays [notes](.note) in reverse chronological order. +There are different types of timelines as shown below, and the notes displayed differ depending on the type. +Note that some types of timelines may be disabled by the instance. + +## Home + +Posts by users you are following will be displayed. Abbreviated as HTL. + +## Local + +All local users' posts that do not have the visibility of "Home" will be shown. Abbreviated as LTL. + +## Social + +Posts of users you are following and all local users's posts that do not have the visibility of "Home" will be shown. Abbreviated as STL. Think of it as STL = HTL + LTL. + +## Global + +All local users' posts that do not have the visibility of "Home" and all remote users' posts that do not have the visibility of "Home" that reach the server. Abbreviated as GTL. + +## Custom Timelines + +Misskey has other features where you can create timelines with more granularity. See [Lists](./list.md) and [Antennas](./antenna.md) for details. + +## Comparison + +| Source | | | Timeline | | | +|-----------------------|------------|--------|---------|------------|------------| +| User | Visibility | Home | Local | Social | Global | +| Local (Followers) | Public | โœ” | โœ” | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Followers | โœ” | | โœ” | | +| Remote (Followers) | Public | โœ” | | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Followers | โœ” | | โœ” | | +| local (Non-followers) | Public | | โœ” | โœ” | โœ” | +| | Home | | | | | +| | Followers | | | | | +| Remote (Non-followers)| Public | | | | โœ” | +| | Home | | | | | +| | Followers | | | | | diff --git a/src/en/docs/features/webhook.md b/src/en/docs/features/webhook.md new file mode 100644 index 0000000000..a124debcf3 --- /dev/null +++ b/src/en/docs/features/webhook.md @@ -0,0 +1,154 @@ +# Webhook + +::: tip +This feature is available as of Misskey version 12.109.0. +::: + +::: warning +This is an experimental feature and may be unstable or subject to change in the future. +::: + +Misskey provides a webhook which allows you to receive various events from Misskey in real time. + +You can manage your webhooks by going to Settings > Webhook. + +Once a webhook is registered, an HTTP request is sent to the specified URL each time the specified event occurs. The request method will be POST and contain JSON in its body. +In addition, the request header will contain the secret that was set during registration with the name `X-Misskey-Hook-Secret`. You can use this secret to verify that the request is legitimate. + +The payload wil contain the following properties. + + + +If the destination server returns a 5XX error or does not respond, the request is resent after a time delay. + +Webhooks can individually have their active status changed from the administration screen to temporarily stop sending requests. + +## Event + +The following is a description and payload for each event type. + +### follow + +Occurs when you follow someone. + + + +### followed + +Occurs when you are followed by someone. + + + +### unfollow + +Occurs when you unfollow someone. + + + +### note + +Occurs when you post a note. + + + +### reply + +Occurs when someone has replied to your note. + + + +### renote + +Occurs when your note is renoted. + + + +### mention + +Occurs when someone has mentioned you. + + diff --git a/src/en/docs/features/widgets.md b/src/en/docs/features/widgets.md new file mode 100644 index 0000000000..b272a100c4 --- /dev/null +++ b/src/en/docs/features/widgets.md @@ -0,0 +1,98 @@ +# Widgets + +A widget is a small display element that can be added to the Misskey UI to display and interact with information. +By default they are displayed on the right side of the screen or accessed from the stack icon in the mobile web app navigation menu. + +To edit widgets, switch to widget edit mode at the bottom of the widget view. In widget edit mode you can add, delete, and reorder widgets. + +After you close out of the widget layout editor, you can also configure settings for each widget's behavior. + +## List of Available Widgets + +### Notifications + +Shows a list of your notifications. You can change the types of notifications shown by opening the notification widget menu. If you disable "User global settings" you can choose to only show certain types of notifications. + +### Timeline + +Display a timeline. You can choose from one of the standard timelines (Home, Local, Social, and Global) or one of your custom user [Lists](./list.md) or [Antennas](./antenna.md). + +### RSS Reader + +Displays a list of items from an RSS feed. You can provide any valid RSS feed URL in the configuration. + +### RSS-Ticker + +Similar to the RSS Reader, but the ticker shows the feed as a scrolling ticker on a single line. There are also more options to customize how the the feed will be refreshed and displayed. + +### Trending + +Displays trending [Hashtags](./hashtag.md) as well as statistics of how many users have mentioned it and a graph of that hashtag's activity. + +### Activity + +Displays a visualization of activity over time. + +### Online Users + +Displays the number of users that are active on this instance. + +### Photos + +Displays a gallery of your recent photos. + +### Slideshow + +Displays a slideshow of photos one of your specified drive folders. To select the drive folder, left-click on the slideshow widget after you have exited the widget layout editor. Then select the checkbox of folders you want included in the slideshow and click the check mark to confirm. + +### Calendar + +Displays the current date as well as a graphic showing the date progression. + +### Clock + +Displays an analog clock. The analog clock has many options to customize its appearance. + +### Digital Clock + +Displays a digital clock. + +### UNIX Clock + +Dixplays the seconds elapsed since the UNIX Epoch (1970-01-01T00:00:00Z). + +### Federation + +List of federated instances and graphs of their recent activity. + +### Instance Cloud + +An interactive animation that shows federated instances. + +### Sticky Notes + +A text area where you can jot down short notes for yourself. You can save your sticky note and it will be available wherever you access Misskey Web. + +### Posting Form + +A widget form of the [Note](./note.md) composition menu. + +### Server Metrics + +A display of the server metrics. The type of metrics displayed can changed by clicking the arrows in the header of the widget. + +### Job Queue + +A display of the server job queue statistics. + +### AiScript Console + +A widget version that you can use to test and execute [AiScript](../advanced/aiscript.md) programs. This is a widget version of the Scratchpad page accessible through the help menu. + +### Button + +An interactive button that when clicked runs your own custom [AiScript](../advanced/aiscript.md) program. + +### Ai + +A digital version of the Misskey mascot, Ai, that will follow you around the site. diff --git a/src/en/docs/features/word-mute.md b/src/en/docs/features/word-mute.md index 32782651b6..da85e44a2a 100644 --- a/src/en/docs/features/word-mute.md +++ b/src/en/docs/features/word-mute.md @@ -1,15 +1,18 @@ -# Word mute -Through setting up word mutes, you can make notes satisfying set conditions not appear on your timeline anymore. +# Word Mute -There are two types of word mutes: soft and hard.Below is an explanation of the setup process and effect of both. +Through setting up word mutes, you can make notes matching certain conditions not appear on your timeline anymore. + +There are two types of word mutes: soft and hard. Below is an explanation of the setup process and effect of both. + +## Soft Word Mute -## Soft word mute With soft mutes, the word mute is processed within the client (app) you are using. When a note meets the set conditions, it will be hidden behind text stating "(username) said something". -You can display the note as it was by clicking on this text. +You can display the hidden note contents by clicking on this text. + +## Hard Word Mute -## Hard word mute With hard mutes, the server judges whether the content of a new incoming note meets the set conditions similar to antennas, and will completely exclude it from your timeline if so. To summarize, a hard word mute has the following features: diff --git a/src/en/docs/install/kubernetes.md b/src/en/docs/install/kubernetes.md index 6aeca0c0c5..5b5a0eaed0 100644 --- a/src/en/docs/install/kubernetes.md +++ b/src/en/docs/install/kubernetes.md @@ -3,7 +3,7 @@ This guide describes how to install and setup Misskey using Kubernetes and Helm ## TrueCharts and TrueNAS Scale -The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/docs/charts/incubator/misskey) site has a list of all the charts availible as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the *incubator* train. +The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/docs/charts/incubator/misskey) site has a list of all the charts available as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the *incubator* train. ::: tip Requirements - TrueNAS Scale @@ -12,10 +12,10 @@ OR ::: ## TrueNAS Scale -Follow the instructions on the [TrueCharts Guide](https://truecharts.org/docs/manual/guides/Adding-TrueCharts). Add the *incubator* train, and install the Misskey app. The only Misskey configuration option that is required is the isntance URL. The app also uses the Traefik reverse proxy to expose the service to the outside world over HTTPS. TrueCharts integrates with Traefik by default, but other options can be used with manual configuration. +Follow the instructions on the [TrueCharts Guide](https://truecharts.org/docs/manual/guides/Adding-TrueCharts). Add the *incubator* train, and install the Misskey app. The only Misskey configuration option that is required is the instance URL. The app also uses the Traefik reverse proxy to expose the service to the outside world over HTTPS. TrueCharts integrates with Traefik by default, but other options can be used with manual configuration. ## Manual Helm -If you are not using TrueNAS Scale, you can install Misskey using Helm directly. The `misskey` object in the values.yaml file has the options that you will want to override as necessary. the `misskey.url` property it the only required change. A reverse proxy is recommended to secure access to the server as the chart does not currently support enabling TLS inside the Misskey container. +If you are not using TrueNAS Scale, you can install Misskey using Helm directly. The `misskey` object in the values.yaml file has the options that you will want to override as necessary. The `misskey.url` property is the only required change. A reverse proxy is recommended to secure access to the server as the chart does not currently support enabling TLS inside the Misskey container. ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update From 21567fc32b87201431b14c2106dd25b2e5ea16c7 Mon Sep 17 00:00:00 2001 From: tamaina Date: Mon, 2 Jan 2023 15:36:07 +0900 Subject: [PATCH 090/296] proxy_force_ranges on; (#133) --- src/docs/admin/nginx.md | 1 + src/en/docs/admin/nginx.md | 1 + 2 files changed, 2 insertions(+) diff --git a/src/docs/admin/nginx.md b/src/docs/admin/nginx.md index 7f97ba7524..1d08531ae1 100644 --- a/src/docs/admin/nginx.md +++ b/src/docs/admin/nginx.md @@ -80,6 +80,7 @@ server { proxy_cache cache1; proxy_cache_lock on; proxy_cache_use_stale updating; + proxy_force_ranges on; add_header X-Cache $upstream_cache_status; } } diff --git a/src/en/docs/admin/nginx.md b/src/en/docs/admin/nginx.md index 9c07358203..881086e464 100644 --- a/src/en/docs/admin/nginx.md +++ b/src/en/docs/admin/nginx.md @@ -80,6 +80,7 @@ server { proxy_cache cache1; proxy_cache_lock on; proxy_cache_use_stale updating; + proxy_force_ranges on; add_header X-Cache $upstream_cache_status; } } From 01e01053d436d9602adfaeb439629f86778452ec Mon Sep 17 00:00:00 2001 From: Tassoman Date: Tue, 3 Jan 2023 04:54:17 +0100 Subject: [PATCH 091/296] updated copyright for 2023 (#136) --- LICENSE | 2 +- src/.vuepress/mitheme/src/client/layouts/Landing.vue | 2 +- src/en/home.md | 2 +- src/home.md | 2 +- src/it/home.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/LICENSE b/LICENSE index 11c1f9ce22..65478319ad 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021-2022 syuilo and other contributors +Copyright (c) 2021 2022 2023 syuilo and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/.vuepress/mitheme/src/client/layouts/Landing.vue b/src/.vuepress/mitheme/src/client/layouts/Landing.vue index 93731173bf..56ca79a541 100644 --- a/src/.vuepress/mitheme/src/client/layouts/Landing.vue +++ b/src/.vuepress/mitheme/src/client/layouts/Landing.vue @@ -186,7 +186,7 @@ diff --git a/src/en/home.md b/src/en/home.md index b1ec0eb93e..77f6aab54d 100644 --- a/src/en/home.md +++ b/src/en/home.md @@ -3,7 +3,7 @@ home: true title: Misskey Hub heroImage: /banner.svg tagline: Official web site of open-source interplanetary micro-blogging platform Misskey -footer: Copyright © 2022 syuilo and other contributors +footer: Copyright © 2023 syuilo and other contributors actions: - text: Getting started link: ./docs/getting-started diff --git a/src/home.md b/src/home.md index 1fa8f9a9e0..315d27e681 100644 --- a/src/home.md +++ b/src/home.md @@ -3,7 +3,7 @@ home: true title: Misskey Hub heroImage: /banner.svg tagline: ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ -footer: Copyright © 2022 syuilo and other contributors +footer: Copyright © 2023 syuilo and other contributors actions: - text: Misskeyใ‚’ๅง‹ใ‚ใ‚‹ link: /docs/getting-started diff --git a/src/it/home.md b/src/it/home.md index 1d3ae3ca4c..1eaa94fa2f 100644 --- a/src/it/home.md +++ b/src/it/home.md @@ -3,7 +3,7 @@ home: true title: Misskey Hub heroImage: /banner.svg tagline: Sito ufficiale di Misskey, la piattaforma opensource di microblog interplanetario -footer: Copyright © 2022 syuilo ed altri co-autori +footer: Copyright © 2023 syuilo ed altri co-autori actions: - text: Getting started link: ./docs/getting-started From b8cbb6879f4ecf25bfcd02c9d73b55dcf107adde Mon Sep 17 00:00:00 2001 From: Seio Inoue Date: Sat, 7 Jan 2023 16:43:42 +0900 Subject: [PATCH 092/296] Add endpoint docs for endpoints/notes,clips (#121) * Add some docs for endpoints/notes,clips * Add Japanese docs for endpoints/clips * Add some Japanese docs for endpoints/notes * Add Japanese docs for endpoints/notes/clips, search, thread-muting/ * Add Japanese docs for endpoints/notes --- src/docs/api/endpoints/clips/add-note.json5 | 12 +++++++----- src/docs/api/endpoints/clips/create.json5 | 7 +++++-- src/docs/api/endpoints/clips/delete.json5 | 7 ++++--- src/docs/api/endpoints/clips/list.json5 | 4 ++-- src/docs/api/endpoints/clips/notes.json5 | 10 +++++++--- src/docs/api/endpoints/clips/remove-note.json5 | 10 ++++++---- src/docs/api/endpoints/clips/show.json5 | 7 ++++--- src/docs/api/endpoints/clips/update.json5 | 10 +++++++--- src/docs/api/endpoints/notes.json5 | 2 ++ src/docs/api/endpoints/notes/children.json5 | 8 ++++++-- src/docs/api/endpoints/notes/clips.json5 | 7 ++++--- .../api/endpoints/notes/conversation.json5 | 9 ++++++--- src/docs/api/endpoints/notes/create.json5 | 2 +- src/docs/api/endpoints/notes/delete.json5 | 9 +++++---- .../api/endpoints/notes/favorites/create.json5 | 1 + .../api/endpoints/notes/favorites/delete.json5 | 1 + src/docs/api/endpoints/notes/featured.json5 | 6 ++++-- .../api/endpoints/notes/global-timeline.json5 | 11 ++++++++--- .../api/endpoints/notes/hybrid-timeline.json5 | 12 ++++++++++-- .../api/endpoints/notes/local-timeline.json5 | 13 ++++++++++--- src/docs/api/endpoints/notes/mentions.json5 | 8 ++++++-- .../endpoints/notes/polls/recommendation.json5 | 6 ++++-- src/docs/api/endpoints/notes/polls/vote.json5 | 18 ++++++++++-------- src/docs/api/endpoints/notes/reactions.json5 | 12 +++++++++--- .../api/endpoints/notes/reactions/delete.json5 | 1 + src/docs/api/endpoints/notes/renotes.json5 | 10 +++++++--- src/docs/api/endpoints/notes/replies.json5 | 8 ++++++-- .../api/endpoints/notes/search-by-tag.json5 | 15 +++++++++++---- src/docs/api/endpoints/notes/search.json5 | 11 +++++++++-- src/docs/api/endpoints/notes/state.json5 | 8 ++++++-- .../endpoints/notes/thread-muting/create.json5 | 7 ++++--- .../endpoints/notes/thread-muting/delete.json5 | 7 ++++--- src/docs/api/endpoints/notes/timeline.json5 | 12 ++++++++++-- src/docs/api/endpoints/notes/unrenote.json5 | 7 ++++--- .../endpoints/notes/user-list-timeline.json5 | 17 +++++++++++++---- .../api/endpoints/notes/watching/create.json5 | 7 ++++--- .../api/endpoints/notes/watching/delete.json5 | 7 ++++--- 37 files changed, 212 insertions(+), 97 deletions(-) diff --git a/src/docs/api/endpoints/clips/add-note.json5 b/src/docs/api/endpoints/clips/add-note.json5 index 4f3da3bbf0..56104c6797 100644 --- a/src/docs/api/endpoints/clips/add-note.json5 +++ b/src/docs/api/endpoints/clips/add-note.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฏใƒชใƒƒใƒ—ใซ่ฟฝๅŠ ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฏใƒชใƒƒใƒ—ใซ่ฟฝๅŠ ใ—ใพใ™ใ€‚', tags: [ 'account', ], @@ -11,10 +11,12 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -27,17 +29,17 @@ 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf': { id: 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b': { id: 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '734806c4-542c-463a-9311-15c512803965': { id: '734806c4-542c-463a-9311-15c512803965', code: 'ALREADY_CLIPPED', - description: '', + description: 'ใ™ใงใซใ‚ฏใƒชใƒƒใƒ—ใซๅซใพใ‚Œใฆใ„ใพใ™ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/clips/create.json5 b/src/docs/api/endpoints/clips/create.json5 index 0bdd5c7016..8903b2df23 100644 --- a/src/docs/api/endpoints/clips/create.json5 +++ b/src/docs/api/endpoints/clips/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฏใƒชใƒƒใƒ—ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚', tags: [ 'clips', ], @@ -12,16 +12,19 @@ type: 'string', minLength: 1, maxLength: 100, + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎๅๅ‰ใ€‚', }, isPublic: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€ไป–ใฎใƒฆใƒผใ‚ถใƒผใ‚„ใƒญใ‚ฐใ‚คใƒณใ—ใฆใ„ใชใ„ใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใซใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ…ฌ้–‹ใ—ใพใ™ใ€‚' }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎ่ชฌๆ˜Žใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/clips/delete.json5 b/src/docs/api/endpoints/clips/delete.json5 index 3e338b69bf..3103cae077 100644 --- a/src/docs/api/endpoints/clips/delete.json5 +++ b/src/docs/api/endpoints/clips/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใŸใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', tags: [ 'clips', ], @@ -11,6 +11,7 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ '70ca08ba-6865-4630-b6fb-8494759aa754': { id: '70ca08ba-6865-4630-b6fb-8494759aa754', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/clips/list.json5 b/src/docs/api/endpoints/clips/list.json5 index 8f96d3019f..4a8a8def41 100644 --- a/src/docs/api/endpoints/clips/list.json5 +++ b/src/docs/api/endpoints/clips/list.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใŸใ‚ฏใƒชใƒƒใƒ—ใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒไฝœๆˆใ—ใŸใ‚ฏใƒชใƒƒใƒ—ใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'clips', ], diff --git a/src/docs/api/endpoints/clips/notes.json5 b/src/docs/api/endpoints/clips/notes.json5 index 64634bf95d..f047cf292d 100644 --- a/src/docs/api/endpoints/clips/notes.json5 +++ b/src/docs/api/endpoints/clips/notes.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฏใƒชใƒƒใƒ—ใซๅซใพใ‚Œใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใซๅซใพใ‚Œใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚้žๅ…ฌ้–‹ใฎใ‚ฏใƒชใƒƒใƒ—ใฏใ€ไฝœๆˆใ—ใŸใƒฆใƒผใ‚ถใƒผใฎใฟใŒ้–ฒ่ฆงใงใใพใ™ใ€‚', tags: [ 'account', ], @@ -11,20 +11,24 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -47,7 +51,7 @@ '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00': { id: '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/clips/remove-note.json5 b/src/docs/api/endpoints/clips/remove-note.json5 index eb260b52ba..20baacfe4d 100644 --- a/src/docs/api/endpoints/clips/remove-note.json5 +++ b/src/docs/api/endpoints/clips/remove-note.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฏใƒชใƒƒใƒ—ใ‹ใ‚‰ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฏใƒชใƒƒใƒ—ใ‹ใ‚‰ๅ‰Š้™คใ—ใพใ™ใ€‚ใƒŽใƒผใƒˆ่‡ช่บซใฏๅ‰Š้™คใ•ใ‚Œใพใ›ใ‚“ใ€‚', tags: [ 'account', ], @@ -11,10 +11,12 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -27,12 +29,12 @@ 'b80525c6-97f7-49d7-a42d-ebccd49cfd52': { id: 'b80525c6-97f7-49d7-a42d-ebccd49cfd52', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'aff017de-190e-434b-893e-33a9ff5049d8': { id: 'aff017de-190e-434b-893e-33a9ff5049d8', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/clips/show.json5 b/src/docs/api/endpoints/clips/show.json5 index e65d66d9a6..4ae90f9128 100644 --- a/src/docs/api/endpoints/clips/show.json5 +++ b/src/docs/api/endpoints/clips/show.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'clips', ], @@ -11,6 +11,7 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, }, required: [ @@ -28,7 +29,7 @@ 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20': { id: 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/clips/update.json5 b/src/docs/api/endpoints/clips/update.json5 index 4e77110108..f0937f8287 100644 --- a/src/docs/api/endpoints/clips/update.json5 +++ b/src/docs/api/endpoints/clips/update.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ฏใƒชใƒƒใƒ—ใฎๆƒ…ๅ ฑใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎๆƒ…ๅ ฑใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚', tags: [ 'clips', ], @@ -11,20 +11,24 @@ clipId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎidใ€‚', }, name: { type: 'string', minLength: 1, maxLength: 100, + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎๅๅ‰ใ€‚', }, isPublic: { type: 'boolean', + description: 'trueใซใ™ใ‚‹ใจใ€ใ‚ฏใƒชใƒƒใƒ—ใŒๅ…จไฝ“ใซๅ…ฌ้–‹ใ•ใ‚Œใพใ™ใ€‚', }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, + description: 'ใ‚ฏใƒชใƒƒใƒ—ใฎ่ชฌๆ˜Žใ€‚', }, }, required: [ @@ -43,7 +47,7 @@ 'b4d92d70-b216-46fa-9a3f-a8c811699257': { id: 'b4d92d70-b216-46fa-9a3f-a8c811699257', code: 'NO_SUCH_CLIP', - description: '', + description: 'ใ‚ฏใƒชใƒƒใƒ—ใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes.json5 b/src/docs/api/endpoints/notes.json5 index 70624347bf..bc012519e4 100644 --- a/src/docs/api/endpoints/notes.json5 +++ b/src/docs/api/endpoints/notes.json5 @@ -40,10 +40,12 @@ sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/notes/children.json5 b/src/docs/api/endpoints/notes/children.json5 index 04ca519d81..1d645d96d1 100644 --- a/src/docs/api/endpoints/notes/children.json5 +++ b/src/docs/api/endpoints/notes/children.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใธใฎใƒชใƒ—ใƒฉใ‚คใ‚„ๅผ•็”จใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใธใฎใƒชใƒ—ใƒฉใ‚คใ‚„ๅผ•็”จใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅผ•็”จใชใ—ใฎRenoteใฏๅ–ๅพ—ใ•ใ‚Œใพใ›ใ‚“ใ€‚', tags: [ 'notes', ], @@ -11,20 +11,24 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚' }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/clips.json5 b/src/docs/api/endpoints/notes/clips.json5 index 03e24ef507..9fc29edfb1 100644 --- a/src/docs/api/endpoints/notes/clips.json5 +++ b/src/docs/api/endpoints/notes/clips.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ๅซใ‚€ใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ๅซใ‚€ใ‚ฏใƒชใƒƒใƒ—ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'clips', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -33,7 +34,7 @@ '47db1a1c-b0af-458d-8fb4-986e4efafe1e': { id: '47db1a1c-b0af-458d-8fb4-986e4efafe1e', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/conversation.json5 b/src/docs/api/endpoints/notes/conversation.json5 index 9474c143a9..d6526fe897 100644 --- a/src/docs/api/endpoints/notes/conversation.json5 +++ b/src/docs/api/endpoints/notes/conversation.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: '้–ข้€ฃใ™ใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: '้–ข้€ฃใ™ใ‚‹ใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,16 +11,19 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: '็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, }, required: [ @@ -43,7 +46,7 @@ 'e1035875-9551-45ec-afa8-1ded1fcb53c8': { id: 'e1035875-9551-45ec-afa8-1ded1fcb53c8', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/create.json5 b/src/docs/api/endpoints/notes/create.json5 index 68c57608ef..8ebec8564c 100644 --- a/src/docs/api/endpoints/notes/create.json5 +++ b/src/docs/api/endpoints/notes/create.json5 @@ -73,7 +73,7 @@ }, mediaIds: { deprecated: true, - description: 'Use `fileIds` instead. If both are specified, this property is discarded.', + description: 'fileIds ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚fileIds ใจ mediaIds ใŒๆŒ‡ๅฎšใ•ใ‚ŒใŸๅ ดๅˆใ€ mediaIds ใฏ็„ก่ฆ–ใ•ใ‚Œใพใ™ใ€‚', type: 'array', uniqueItems: true, minItems: 1, diff --git a/src/docs/api/endpoints/notes/delete.json5 b/src/docs/api/endpoints/notes/delete.json5 index 3cf3e89041..fa8341568d 100644 --- a/src/docs/api/endpoints/notes/delete.json5 +++ b/src/docs/api/endpoints/notes/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ๅ‰Š้™คใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -22,12 +23,12 @@ '490be23f-8c1f-4796-819f-94cb4f9d1630': { id: '490be23f-8c1f-4796-819f-94cb4f9d1630', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9': { id: 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9', code: 'ACCESS_DENIED', - description: '', + description: 'ใƒŽใƒผใƒˆใ‚’ๅ‰Š้™คใ™ใ‚‹ๆจฉ้™ใŒใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใƒŽใƒผใƒˆใฎๅ‰Š้™คใฏใ€ใƒŽใƒผใƒˆใ‚’ไฝœๆˆใ—ใŸใƒฆใƒผใ‚ถใƒผใ‹ใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ็ฎก็†่€…ใ‚ใ‚‹ใ„ใฏใƒขใƒ‡ใƒฌใƒผใ‚ฟใƒผใฎใฟใŒ่กŒใˆใพใ™ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/favorites/create.json5 b/src/docs/api/endpoints/notes/favorites/create.json5 index 00b455b786..455fc35729 100644 --- a/src/docs/api/endpoints/notes/favorites/create.json5 +++ b/src/docs/api/endpoints/notes/favorites/create.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/favorites/delete.json5 b/src/docs/api/endpoints/notes/favorites/delete.json5 index 7dabca3351..90e3503c66 100644 --- a/src/docs/api/endpoints/notes/favorites/delete.json5 +++ b/src/docs/api/endpoints/notes/favorites/delete.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/featured.json5 b/src/docs/api/endpoints/notes/featured.json5 index 957036d5b1..27adee53a0 100644 --- a/src/docs/api/endpoints/notes/featured.json5 +++ b/src/docs/api/endpoints/notes/featured.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒใ‚คใƒฉใ‚คใƒˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒใ‚คใƒฉใ‚คใƒˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚็ตๆžœใฏใƒŽใƒผใƒˆใฎไฝœๆˆๆ™‚ๅˆปใฎ้™้ †ใซใ‚ฝใƒผใƒˆใ•ใ‚Œใพใ™๏ผˆๆœ€ๆ–ฐใฎใ‚‚ใฎใŒๅ…ˆ้ ญ๏ผ‰ใ€‚', tags: [ 'notes', ], @@ -13,10 +13,12 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญ offset ๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/notes/global-timeline.json5 b/src/docs/api/endpoints/notes/global-timeline.json5 index 07848a4843..d039a379d4 100644 --- a/src/docs/api/endpoints/notes/global-timeline.json5 +++ b/src/docs/api/endpoints/notes/global-timeline.json5 @@ -1,6 +1,6 @@ { - summary: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', - description: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใŒๅ—ไฟกใ—ใŸๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชๆŠ•็จฟใŒๅซใพใ‚Œใพใ™ใ€‚', + summary: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (GTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (GTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฐใƒญใƒผใƒใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใŒๅ—ไฟกใ—ใŸๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชๆŠ•็จฟใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,27 +11,32 @@ withFiles: { type: 'boolean', default: false, - description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/notes/hybrid-timeline.json5 b/src/docs/api/endpoints/notes/hybrid-timeline.json5 index ef945be802..3753aadeb8 100644 --- a/src/docs/api/endpoints/notes/hybrid-timeline.json5 +++ b/src/docs/api/endpoints/notes/hybrid-timeline.json5 @@ -1,6 +1,6 @@ { - summary: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', - description: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใจ่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', + summary: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (STL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (STL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใ‚ฝใƒผใ‚ทใƒฃใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใซใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใจ่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -13,32 +13,40 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, includeMyRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒ่กŒใฃใŸRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, includeRenotedMyNotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒๆŠ•็จฟใ—ใŸใƒŽใƒผใƒˆใฎRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, includeLocalRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใฎใƒฆใƒผใ‚ถใƒผใŒ่กŒใฃใŸRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, withFiles: { type: 'boolean', diff --git a/src/docs/api/endpoints/notes/local-timeline.json5 b/src/docs/api/endpoints/notes/local-timeline.json5 index 165506b102..ff821d8514 100644 --- a/src/docs/api/endpoints/notes/local-timeline.json5 +++ b/src/docs/api/endpoints/notes/local-timeline.json5 @@ -1,6 +1,6 @@ { - summary: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', - description: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', + summary: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (LTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (LTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒญใƒผใ‚ซใƒซใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใซใฏใ€ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นๅ†…ใฎๅ…จใฆใฎใƒ‘ใƒ–ใƒชใƒƒใ‚ฏใชใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,37 +11,44 @@ withFiles: { type: 'boolean', default: false, - description: 'ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟๅ–ๅพ—ใ™ใ‚‹ใ‹ๅฆใ‹', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, fileType: { type: 'array', items: { type: 'string', }, + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸ็จฎ้กžใฎใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸๆŠ•็จฟใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, excludeNsfw: { type: 'boolean', default: false, + description: 'trueใซใ™ใ‚‹ใจใ€CWใŒไป˜ไธŽใ•ใ‚ŒใŸใƒŽใƒผใƒˆใจใ€NSFWๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’้™คๅค–ใ—ใพใ™ใ€‚fileTypeใŒๆŒ‡ๅฎšใ•ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใฎใฟๆœ‰ๅŠนใงใ™๏ผˆๆทปไป˜ใƒ•ใ‚กใ‚คใƒซใฎใชใ„CWไป˜ใใฎใƒŽใƒผใƒˆใฏ้™คๅค–ใ•ใ‚Œใพใ›ใ‚“๏ผ‰ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/notes/mentions.json5 b/src/docs/api/endpoints/notes/mentions.json5 index 14ce91cdce..674eade817 100644 --- a/src/docs/api/endpoints/notes/mentions.json5 +++ b/src/docs/api/endpoints/notes/mentions.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใซ่จ€ๅŠใ—ใฆใ„ใ‚‹ใƒŽใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใซ่จ€ๅŠ (mention) ใ—ใฆใ„ใ‚‹ใƒŽใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,20 +11,24 @@ following: { type: 'boolean', default: false, + description: 'trueใฎๅ ดๅˆใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผ่‡ช่บซใ‹ใ€ใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‹ใ‚‰ใฎ่จ€ๅŠใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, visibility: { type: 'string', diff --git a/src/docs/api/endpoints/notes/polls/recommendation.json5 b/src/docs/api/endpoints/notes/polls/recommendation.json5 index 8cbdea88b5..12ada76801 100644 --- a/src/docs/api/endpoints/notes/polls/recommendation.json5 +++ b/src/docs/api/endpoints/notes/polls/recommendation.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚ขใƒณใ‚ฑใƒผใƒˆไป˜ใใฎใŠใ™ใ™ใ‚ใฎใƒŽใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใ‚ขใƒณใ‚ฑใƒผใƒˆไป˜ใใฎใŠใ™ใ™ใ‚ใฎใƒŽใƒผใƒˆใฎไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -13,10 +13,12 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, }, required: [], diff --git a/src/docs/api/endpoints/notes/polls/vote.json5 b/src/docs/api/endpoints/notes/polls/vote.json5 index 7d095adeac..092730a29a 100644 --- a/src/docs/api/endpoints/notes/polls/vote.json5 +++ b/src/docs/api/endpoints/notes/polls/vote.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใฎใ‚ขใƒณใ‚ฑใƒผใƒˆใซๆŠ•็ฅจใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใฎใ‚ขใƒณใ‚ฑใƒผใƒˆใซๆŠ•็ฅจใ—ใพใ™ใ€‚่ค‡ๆ•ฐใฎ้ธๆŠž่‚ขใซๆŠ•็ฅจใ™ใ‚‹ใซใฏใ€choiceใ‚’ๅค‰ๆ›ดใ—ใฆ่ค‡ๆ•ฐๅ›žใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’่กŒใฃใฆใใ ใ•ใ„ใ€‚', tags: [ 'notes', ], @@ -11,9 +11,11 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใ‚ขใƒณใ‚ฑใƒผใƒˆใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎidใ€‚', }, choice: { type: 'integer', + description: 'ๆŠ•็ฅจใ™ใ‚‹้ธๆŠž่‚ขใ€‚' }, }, required: [ @@ -26,32 +28,32 @@ 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396': { id: 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, '5f979967-52d9-4314-a911-1c673727f92f': { id: '5f979967-52d9-4314-a911-1c673727f92f', code: 'NO_POLL', - description: '', + description: 'ใƒŽใƒผใƒˆใซใ‚ขใƒณใ‚ฑใƒผใƒˆใŒๆทปไป˜ใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc': { id: 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc', code: 'INVALID_CHOICE', - description: '', + description: '้ธๆŠž่‚ขใŒไธๆญฃใงใ™ใ€‚', }, '0963fc77-efac-419b-9424-b391608dc6d8': { id: '0963fc77-efac-419b-9424-b391608dc6d8', code: 'ALREADY_VOTED', - description: '', + description: 'ใ™ใงใซๆŠ•็ฅจใ—ใฆใ„ใพใ™ใ€‚', }, '1022a357-b085-4054-9083-8f8de358337e': { id: '1022a357-b085-4054-9083-8f8de358337e', code: 'ALREADY_EXPIRED', - description: '', + description: 'ๆŠ•็ฅจๆœŸ้–“ใ‚’้ŽใŽใฆใ„ใพใ™ใ€‚', }, '85a5377e-b1e9-4617-b0b9-5bea73331e49': { id: '85a5377e-b1e9-4617-b0b9-5bea73331e49', code: 'YOU_HAVE_BEEN_BLOCKED', - description: '', + description: 'ใƒŽใƒผใƒˆใ‚’ๆŠ•็จฟใ—ใŸใƒฆใƒผใ‚ถใƒผใซใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใพใ™ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/reactions.json5 b/src/docs/api/endpoints/notes/reactions.json5 index 2626bcb243..b289f65718 100644 --- a/src/docs/api/endpoints/notes/reactions.json5 +++ b/src/docs/api/endpoints/notes/reactions.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใฎใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใฎใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,28 +11,34 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, type: { type: 'string', nullable: true, + description: 'ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎ็จฎ้กžใ€‚ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฏUnicode็ตตๆ–‡ๅญ—ใ‚‚ใ—ใใฏใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใงใ™ใ€‚ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใฎๅ ดๅˆใฏใ‚ณใƒญใƒณใง็ตตๆ–‡ๅญ—ๅใ‚’ๆ‹ฌใ‚Šใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญ offset ๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚' }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -55,7 +61,7 @@ '263fff3d-d0e1-4af4-bea7-8408059b451a': { id: '263fff3d-d0e1-4af4-bea7-8408059b451a', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/reactions/delete.json5 b/src/docs/api/endpoints/notes/reactions/delete.json5 index b9113a1e12..bb1b4182b7 100644 --- a/src/docs/api/endpoints/notes/reactions/delete.json5 +++ b/src/docs/api/endpoints/notes/reactions/delete.json5 @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/renotes.json5 b/src/docs/api/endpoints/notes/renotes.json5 index 8b5221b194..c1c00e38ed 100644 --- a/src/docs/api/endpoints/notes/renotes.json5 +++ b/src/docs/api/endpoints/notes/renotes.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใซๅฏพใ™ใ‚‹Renoteไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใซๅฏพใ™ใ‚‹Renoteไธ€่ฆงใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,20 +11,24 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -47,7 +51,7 @@ '12908022-2e21-46cd-ba6a-3edaf6093f46': { id: '12908022-2e21-46cd-ba6a-3edaf6093f46', code: 'NO_SUCH_NOTE', - description: '', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใชใ„ใ‹ใ€ใ‚ขใ‚ฏใ‚ปใ‚นใŒ่จฑๅฏใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/replies.json5 b/src/docs/api/endpoints/notes/replies.json5 index 8520d48af8..4db9c564ae 100644 --- a/src/docs/api/endpoints/notes/replies.json5 +++ b/src/docs/api/endpoints/notes/replies.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใธใฎ่ฟ”ไฟกใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใธใฎ่ฟ”ไฟกใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,20 +11,24 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/search-by-tag.json5 b/src/docs/api/endpoints/notes/search-by-tag.json5 index c0424faea0..219f25ecb2 100644 --- a/src/docs/api/endpoints/notes/search-by-tag.json5 +++ b/src/docs/api/endpoints/notes/search-by-tag.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใŒไป˜ใ‘ใ‚‰ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใŒไป˜ใ‘ใ‚‰ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚่ค‡ๆ•ฐใฎใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ‚’็ต„ใฟๅˆใ‚ใ›ใŸๆคœ็ดขๆกไปถใ‚’่จญๅฎšใงใใพใ™ใ€‚', tags: [ 'notes', ], @@ -12,35 +12,41 @@ type: 'boolean', nullable: true, default: null, + description: 'trueใซใ™ใ‚‹ใจ่ฟ”ไฟกใ ใ‘ใ‚’ใ€falseใซใ™ใ‚‹ใจ่ฟ”ไฟกไปฅๅค–ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅ€คใ‚’่จญๅฎšใ—ใชใ‘ใ‚Œใฐ่ฟ”ไฟกใงใ‚ใ‚‹ใ‹ใใ†ใงใชใ„ใ‹ใซ้–ขไฟ‚ใชใใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, renote: { type: 'boolean', nullable: true, default: null, + description: 'trueใซใ™ใ‚‹ใจRenoteใ ใ‘ใ‚’ใ€falseใซใ™ใ‚‹ใจRenoteไปฅๅค–ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅ€คใ‚’่จญๅฎšใ—ใชใ‘ใ‚ŒใฐRenoteใงใ‚ใ‚‹ใ‹ใใ†ใงใชใ„ใ‹ใซ้–ขไฟ‚ใชใใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใฎใฟใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, poll: { type: 'boolean', nullable: true, default: null, + description: 'trueใซใ™ใ‚‹ใจๆŠ•็ฅจใ‚’ๅซใ‚€ใƒŽใƒผใƒˆใ ใ‘ใ‚’ใ€falseใซใ™ใ‚‹ใจๅซใพใชใ„ใƒŽใƒผใƒˆใ ใ‘ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ๅ€คใ‚’่จญๅฎšใ—ใชใ‘ใ‚ŒใฐๆŠ•็ฅจใฎๆœ‰็„กใซใ‹ใ‹ใ‚ใ‚‰ใšใƒŽใƒผใƒˆใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, }, anyOf: [ @@ -49,6 +55,7 @@ tag: { type: 'string', minLength: 1, + description: 'ๆคœ็ดขๅฏพ่ฑกใฎใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใ€‚ใƒใƒƒใ‚ทใƒฅ๏ผˆ#๏ผ‰่‡ช่บซใฏๅซใ‚ใพใ›ใ‚“ใ€‚', }, }, required: [ @@ -59,7 +66,7 @@ properties: { query: { type: 'array', - description: 'The outer arrays are chained with OR, the inner arrays are chained with AND.', + description: 'ๆคœ็ดขใฎๆกไปถๅผใ€‚ไบŒๆฌกๅ…ƒ้…ๅˆ—ใงๆŒ‡ๅฎšใ—ใพใ™ใ€‚ๅค–ๅดใฎ้…ๅˆ—ใฎ่ฆ็ด ใฏORใงใ€ๅ†…ๅดใฎ้…ๅˆ—ใฎ่ฆ็ด ใฏANDใง็ตๅˆใ•ใ‚Œใพใ™ใ€‚ใŸใจใˆใฐใ€[["fediverse"], ["misskey", "ai"]] ใจๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ #fediverse ใฎใฟใ‚’ๅซใ‚€ใƒŽใƒผใƒˆใจใ€ #misskey ใจ #ai ใ‚’ไธกๆ–นๅซใ‚€ใƒŽใƒผใƒˆใŒ่ฟ”ใ•ใ‚Œใพใ™ใŒใ€ #misskey ใ‚’ๅซใฟ #ai ใ‚’ๅซใพใชใ„ใƒŽใƒผใƒˆใฏ่ฟ”ใ•ใ‚Œใพใ›ใ‚“ใ€‚', items: { type: 'array', items: { diff --git a/src/docs/api/endpoints/notes/search.json5 b/src/docs/api/endpoints/notes/search.json5 index a11cd755d6..ffd4d852b7 100644 --- a/src/docs/api/endpoints/notes/search.json5 +++ b/src/docs/api/endpoints/notes/search.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -10,24 +10,29 @@ properties: { query: { type: 'string', + description: 'ๆคœ็ดขใ‚ฏใ‚จใƒชใ€‚ใ‚ฏใ‚จใƒชใŒๆœฌๆ–‡ใซๅซใพใ‚Œใ‚‹ใƒŽใƒผใƒˆใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, offset: { type: 'integer', default: 0, + description: 'ๆคœ็ดข็ตๆžœใฎๅ…ˆ้ ญoffsetๅ€‹ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚', }, host: { type: 'string', @@ -39,12 +44,14 @@ format: 'misskey:id', nullable: true, default: null, + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎใƒฆใƒผใ‚ถใŒไฝœๆˆใ—ใŸใƒŽใƒผใƒˆใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚', }, channelId: { type: 'string', format: 'misskey:id', nullable: true, default: null, + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎใƒใƒฃใƒณใƒใƒซใซๅฑžใ™ใ‚‹ใƒŽใƒผใƒˆใ‚’ๆคœ็ดขใ—ใพใ™ใ€‚userIdใจไฝตใ›ใฆๆŒ‡ๅฎšใ—ใŸๅ ดๅˆใ€channelIdใฏ็„ก่ฆ–ใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ diff --git a/src/docs/api/endpoints/notes/state.json5 b/src/docs/api/endpoints/notes/state.json5 index 9e37f77a29..4e62009453 100644 --- a/src/docs/api/endpoints/notes/state.json5 +++ b/src/docs/api/endpoints/notes/state.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใซๅฏพใ™ใ‚‹ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใซใ‚ˆใ‚‹ใ‚ขใ‚ฏใ‚ทใƒงใƒณ๏ผˆใŠๆฐ—ใซๅ…ฅใ‚Šใƒปใ‚ฆใ‚ฉใƒƒใƒใƒปใ‚นใƒฌใƒƒใƒ‰ใƒŸใƒฅใƒผใƒˆ๏ผ‰ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใซๅฏพใ™ใ‚‹ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใซใ‚ˆใ‚‹ใ‚ขใ‚ฏใ‚ทใƒงใƒณ๏ผˆใŠๆฐ—ใซๅ…ฅใ‚Šใƒปใ‚ฆใ‚ฉใƒƒใƒใƒปใ‚นใƒฌใƒƒใƒ‰ใƒŸใƒฅใƒผใƒˆ๏ผ‰ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -26,16 +27,19 @@ type: 'boolean', optional: false, nullable: false, + description: 'ใƒŽใƒผใƒˆใ‚’ใŠๆฐ—ใซๅ…ฅใ‚Šใซ็™ป้Œฒใ™ใ‚‹ใจtrueใซใชใ‚Šใพใ™ใ€‚' }, isWatching: { type: 'boolean', optional: false, nullable: false, + description: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฆใ‚ฉใƒƒใƒใ™ใ‚‹ใจtrueใซใชใ‚Šใพใ™ใ€‚' }, isMutedThread: { type: 'boolean', optional: false, nullable: false, + description: 'ใƒŽใƒผใƒˆใ‹ใ‚‰ๅง‹ใพใ‚‹ใ€ใพใŸใฏใƒŽใƒผใƒˆใŒๅฑžใ™ใ‚‹ใ‚นใƒฌใƒƒใƒ‰ใ‚’ใƒŸใƒฅใƒผใƒˆใ™ใ‚‹ใจtrueใซใชใ‚Šใพใ™ใ€‚' }, }, required: [ diff --git a/src/docs/api/endpoints/notes/thread-muting/create.json5 b/src/docs/api/endpoints/notes/thread-muting/create.json5 index 6b2f7f11ab..cde133b498 100644 --- a/src/docs/api/endpoints/notes/thread-muting/create.json5 +++ b/src/docs/api/endpoints/notes/thread-muting/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚นใƒฌใƒƒใƒ‰ใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใพใ™ใ€‚', + description: 'ใ‚นใƒฌใƒƒใƒ‰ใ‚’ใƒŸใƒฅใƒผใƒˆใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚ใ“ใฎใƒŽใƒผใƒˆใ‚’ๅซใ‚€ใ‚นใƒฌใƒƒใƒ‰ๅ…จไฝ“ใŒใƒŸใƒฅใƒผใƒˆใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ '5ff67ada-ed3b-2e71-8e87-a1a421e177d2': { id: '5ff67ada-ed3b-2e71-8e87-a1a421e177d2', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/thread-muting/delete.json5 b/src/docs/api/endpoints/notes/thread-muting/delete.json5 index 50e72a1cda..79c1e0fa28 100644 --- a/src/docs/api/endpoints/notes/thread-muting/delete.json5 +++ b/src/docs/api/endpoints/notes/thread-muting/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใ‚นใƒฌใƒƒใƒ‰ใฎใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใ‚นใƒฌใƒƒใƒ‰ใฎใƒŸใƒฅใƒผใƒˆใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚ใ“ใฎใƒŽใƒผใƒˆใ‚’ๅซใ‚€ใ‚นใƒฌใƒƒใƒ‰ๅ…จไฝ“ใฎใƒŸใƒฅใƒผใƒˆใŒ่งฃ้™คใ•ใ‚Œใพใ™ใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ 'bddd57ac-ceb3-b29d-4334-86ea5fae481a': { id: 'bddd57ac-ceb3-b29d-4334-86ea5fae481a', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/timeline.json5 b/src/docs/api/endpoints/notes/timeline.json5 index 235aeb49ac..b666f47450 100644 --- a/src/docs/api/endpoints/notes/timeline.json5 +++ b/src/docs/api/endpoints/notes/timeline.json5 @@ -1,6 +1,6 @@ { - summary: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', - description: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', + summary: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (HTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณ (HTL) ใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚ใƒ›ใƒผใƒ ใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใฏใ€่‡ชๅˆ†ใฎใƒ•ใ‚ฉใƒญใƒผใ—ใฆใ„ใ‚‹ใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใŒๅซใพใ‚Œใพใ™ใ€‚', tags: [ 'notes', ], @@ -13,32 +13,40 @@ minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒŽใƒผใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, includeMyRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒ่กŒใฃใŸRenoteใ‚’ๅซใ‚ใพใ™ใ€‚' }, includeRenotedMyNotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒๆŠ•็จฟใ—ใŸใƒŽใƒผใƒˆใฎRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, includeLocalRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใƒผใ‚ซใƒซใฎใƒฆใƒผใ‚ถใƒผใŒ่กŒใฃใŸRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, withFiles: { type: 'boolean', diff --git a/src/docs/api/endpoints/notes/unrenote.json5 b/src/docs/api/endpoints/notes/unrenote.json5 index efb88c5c2f..221757ffdc 100644 --- a/src/docs/api/endpoints/notes/unrenote.json5 +++ b/src/docs/api/endpoints/notes/unrenote.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใฎRenoteใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ—ใŸใƒŽใƒผใƒˆใฎRenoteใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ 'efd4a259-2442-496b-8dd7-b255aa1a160f': { id: 'efd4a259-2442-496b-8dd7-b255aa1a160f', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/user-list-timeline.json5 b/src/docs/api/endpoints/notes/user-list-timeline.json5 index a8a71c12a4..e1ff71f622 100644 --- a/src/docs/api/endpoints/notes/user-list-timeline.json5 +++ b/src/docs/api/endpoints/notes/user-list-timeline.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ๆŒ‡ๅฎšใ—ใŸใƒฆใƒผใ‚ถใƒผใƒชใ‚นใƒˆใฎใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', + description: 'ๆŒ‡ๅฎšใ—ใŸใƒฆใƒผใ‚ถใƒผใƒชใ‚นใƒˆใฎใ‚ฟใ‚คใƒ ใƒฉใ‚คใƒณใ‚’ๅ–ๅพ—ใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,43 +11,52 @@ listId: { type: 'string', format: 'misskey:id', + description: 'ใƒชใ‚นใƒˆใฎidใ€‚', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, + description: 'ๅ–ๅพ—ใ™ใ‚‹ใƒชใ‚นใƒˆใฎๆœ€ๅคงๆ•ฐใ€‚', }, sinceId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅคงใใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilId: { type: 'string', format: 'misskey:id', + description: 'ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€idใŒใใฎๅ€คใ‚ˆใ‚Šใ‚‚ๅฐใ•ใ„ใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, sinceDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚ŠๅพŒใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, untilDate: { type: 'integer', + description: 'ใ‚จใƒใƒƒใ‚ฏ็ง’ใงๆ—ฅๆ™‚ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใจใ€ใใฎๆ—ฅๆ™‚ใ‚ˆใ‚Šๅ‰ใซไฝœๆˆใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, includeMyRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€ใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใŒ่กŒใฃใŸRenoteใ‚’ๅซใ‚ใพใ™ใ€‚', }, includeRenotedMyNotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€Renoteใ•ใ‚ŒใŸใƒญใ‚ฐใ‚คใƒณไธญใฎใƒฆใƒผใ‚ถใƒผใฎใƒŽใƒผใƒˆใ‚’ๅซใ‚ใพใ™ใ€‚' }, includeLocalRenotes: { type: 'boolean', default: true, + description: 'trueใซใ™ใ‚‹ใจใ€Renoteใ•ใ‚ŒใŸใƒญใƒผใ‚ซใƒซใฎๆŠ•็จฟใ‚’ๅซใ‚ใพใ™ใ€‚', }, withFiles: { type: 'boolean', default: false, - description: 'Only show notes that have attached files.', + description: 'trueใซใ™ใ‚‹ใจใ€ใƒ•ใ‚กใ‚คใƒซใŒๆทปไป˜ใ•ใ‚ŒใŸใƒŽใƒผใƒˆใ ใ‘ใ‚’่ฟ”ใ—ใพใ™ใ€‚', }, }, required: [ @@ -70,7 +79,7 @@ '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff': { id: '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff', code: 'NO_SUCH_LIST', - description: '', + description: 'ใƒชใ‚นใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } diff --git a/src/docs/api/endpoints/notes/watching/create.json5 b/src/docs/api/endpoints/notes/watching/create.json5 index 57c1971b39..10fba6f827 100644 --- a/src/docs/api/endpoints/notes/watching/create.json5 +++ b/src/docs/api/endpoints/notes/watching/create.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฆใ‚ฉใƒƒใƒใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใ‚’ใ‚ฆใ‚ฉใƒƒใƒใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7': { id: 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file diff --git a/src/docs/api/endpoints/notes/watching/delete.json5 b/src/docs/api/endpoints/notes/watching/delete.json5 index 486277fab1..c0d69d1fde 100644 --- a/src/docs/api/endpoints/notes/watching/delete.json5 +++ b/src/docs/api/endpoints/notes/watching/delete.json5 @@ -1,6 +1,6 @@ { - summary: '', - description: '', + summary: 'ใƒŽใƒผใƒˆใฎใ‚ฆใ‚ฉใƒƒใƒใ‚’่งฃ้™คใ—ใพใ™ใ€‚', + description: 'ใƒŽใƒผใƒˆใฎใ‚ฆใ‚ฉใƒƒใƒใ‚’่งฃ้™คใ—ใพใ™ใ€‚', tags: [ 'notes', ], @@ -11,6 +11,7 @@ noteId: { type: 'string', format: 'misskey:id', + description: 'ใƒŽใƒผใƒˆใฎidใ€‚', }, }, required: [ @@ -22,7 +23,7 @@ '09b3695c-f72c-4731-a428-7cff825fc82e': { id: '09b3695c-f72c-4731-a428-7cff825fc82e', code: 'NO_SUCH_NOTE', - description: '', + description: 'ใƒŽใƒผใƒˆใŒๅญ˜ๅœจใ—ใพใ›ใ‚“ใ€‚', }, }, } \ No newline at end of file From 85f955c8e5103a45e1da2c835dad5351ca105fbc Mon Sep 17 00:00:00 2001 From: tamaina Date: Sun, 8 Jan 2023 19:00:23 +0900 Subject: [PATCH 093/296] StandardOutput=syslog => StandardOutput=journal --- src/.vuepress/public/ubuntu.sh | 4 ++-- src/docs/install/manual.md | 4 ++-- src/docs/install/ubuntu-manual.md | 4 ++-- src/en/docs/install/manual.md | 4 ++-- src/it/docs/install/manual.md | 4 ++-- src/it/docs/install/ubuntu-manual.md | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/.vuepress/public/ubuntu.sh b/src/.vuepress/public/ubuntu.sh index 3c900d6771..44e9c012b1 100644 --- a/src/.vuepress/public/ubuntu.sh +++ b/src/.vuepress/public/ubuntu.sh @@ -807,8 +807,8 @@ ExecStart=$(command -v npm) start WorkingDirectory=/home/$misskey_user/$misskey_directory Environment="NODE_ENV=production" TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog +StandardOutput=journal +StandardError=journal SyslogIdentifier="$host" Restart=always diff --git a/src/docs/install/manual.md b/src/docs/install/manual.md index 7678da9bea..970fc5a07b 100644 --- a/src/docs/install/manual.md +++ b/src/docs/install/manual.md @@ -103,8 +103,8 @@ ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog +StandardOutput=journal +StandardError=journal SyslogIdentifier=misskey Restart=always diff --git a/src/docs/install/ubuntu-manual.md b/src/docs/install/ubuntu-manual.md index fcbb371cd6..459fe34500 100644 --- a/src/docs/install/ubuntu-manual.md +++ b/src/docs/install/ubuntu-manual.md @@ -461,8 +461,8 @@ CloudFlareใฎDNS่จญๅฎšใŒๆญฃใ—ใ„IPใ‚ขใƒ‰ใƒฌใ‚นใซใชใฃใฆใ„ใ‚‹ใ‹ใ‚‚ใ†ไธ€ WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 - StandardOutput=syslog - StandardError=syslog + StandardOutput=journal + StandardError=journal SyslogIdentifier=misskey Restart=always diff --git a/src/en/docs/install/manual.md b/src/en/docs/install/manual.md index 00f1a4bbe6..c9a0488d94 100644 --- a/src/en/docs/install/manual.md +++ b/src/en/docs/install/manual.md @@ -119,8 +119,8 @@ Just `NODE_ENV=production npm start`. GLHF! WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 - StandardOutput=syslog - StandardError=syslog + StandardOutput=journal + StandardError=journal SyslogIdentifier=misskey Restart=always diff --git a/src/it/docs/install/manual.md b/src/it/docs/install/manual.md index 71d2070f4e..66a1fcd117 100644 --- a/src/it/docs/install/manual.md +++ b/src/it/docs/install/manual.md @@ -102,8 +102,8 @@ ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog +StandardOutput=journal +StandardError=journal SyslogIdentifier=misskey Restart=always diff --git a/src/it/docs/install/ubuntu-manual.md b/src/it/docs/install/ubuntu-manual.md index f2b09102b8..7335bc8ee7 100644 --- a/src/it/docs/install/ubuntu-manual.md +++ b/src/it/docs/install/ubuntu-manual.md @@ -411,8 +411,8 @@ ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 -StandardOutput=syslog -StandardError=syslog +StandardOutput=journal +StandardError=journal SyslogIdentifier=misskey Restart=always From e742792c8f31e4fc5076843a125bcdd3e3737a7f Mon Sep 17 00:00:00 2001 From: tamaina Date: Sun, 8 Jan 2023 19:04:47 +0900 Subject: [PATCH 094/296] enable redis-server, postgresql --- src/.vuepress/public/ubuntu.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/.vuepress/public/ubuntu.sh b/src/.vuepress/public/ubuntu.sh index 44e9c012b1..1c2a949692 100644 --- a/src/.vuepress/public/ubuntu.sh +++ b/src/.vuepress/public/ubuntu.sh @@ -725,6 +725,7 @@ if [ $method != "systemd" ]; then fi systemctl restart postgresql; + systemctl enable postgresql; fi #endregion fi @@ -754,6 +755,7 @@ if $redis_local; then read -r -p "Press Enter key to continue> " fi systemctl restart redis-server; + systemctl enable redis-server; fi #endregion From f43f33d8ffc009020acc5ee49b9283b7e82a2441 Mon Sep 17 00:00:00 2001 From: gemmaro Date: Fri, 13 Jan 2023 18:32:26 +0900 Subject: [PATCH 095/296] Fix the order of installation commands (#145) --- src/docs/install/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/install/manual.md b/src/docs/install/manual.md index 970fc5a07b..a31efa71ff 100644 --- a/src/docs/install/manual.md +++ b/src/docs/install/manual.md @@ -35,8 +35,8 @@ Misskeyใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ ```sh su - misskey git clone --recursive -b master https://github.com/misskey-dev/misskey.git -git submodule update --init cd misskey +git submodule update --init git checkout master yarn install ``` From 2c953669b5c834bc98b76d78d12d16ca620c97af Mon Sep 17 00:00:00 2001 From: PYU224 <62069733+PYU224@users.noreply.github.com> Date: Fri, 13 Jan 2023 18:32:42 +0900 Subject: [PATCH 096/296] Update instances.json5 (#144) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit KindWorldใ‚’่ฟฝๅŠ  --- src/instances.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/instances.json5 b/src/instances.json5 index 21b7b76c99..5cd222e677 100644 --- a/src/instances.json5 +++ b/src/instances.json5 @@ -49,4 +49,8 @@ host: 'misskey.cf', name: 'misskey.cf', lang: 'ja', +}, { + host: 'misskey.kindworld.one', + name: 'KindWorld', + lang: 'ja', }] From df3b989e7bb621136a25d225a37faf942fb18890 Mon Sep 17 00:00:00 2001 From: Masaya Suzuki <15100604+massongit@users.noreply.github.com> Date: Fri, 13 Jan 2023 18:32:56 +0900 Subject: [PATCH 097/296] =?UTF-8?q?Docker=20Compose=20V2=E5=AF=BE=E5=BF=9C?= =?UTF-8?q?=20(#143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Docker Compose V2ๅฏพๅฟœ * Docker Compose V2ๅฏพๅฟœ --- src/docs/install/docker.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/docs/install/docker.md b/src/docs/install/docker.md index d4a1cab860..52bc05e385 100644 --- a/src/docs/install/docker.md +++ b/src/docs/install/docker.md @@ -42,8 +42,8 @@ cp .config/docker_example.env .config/docker.env ใ“ใ‚Œใซใฏใ—ใฐใ‚‰ใๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใพใ™ใ€‚ ``` shell -sudo docker-compose build -sudo docker-compose run --rm web yarn run init +sudo docker compose build +sudo docker compose run --rm web yarn run init ``` ่ตทๅ‹• @@ -51,7 +51,7 @@ sudo docker-compose run --rm web yarn run init ใŠ็–ฒใ‚Œๆง˜ใงใ—ใŸใ€‚ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใงMisskeyใ‚’่ตทๅ‹•ใงใใพใ™ใ€‚ ```sh -sudo docker-compose up -d +sudo docker compose up -d ``` GLHFโœจ @@ -68,8 +68,8 @@ git checkout master git pull git submodule update --init git stash pop -sudo docker-compose build -sudo docker-compose stop && sudo docker-compose up -d +sudo docker compose build +sudo docker compose stop && sudo docker compose up -d ``` ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๅ†…ๅฎนใ€ใŠใ‚ˆใณใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎ่ฆๆจกใซใ‚ˆใฃใฆใฏๆ™‚้–“ใŒใ‹ใ‹ใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚ @@ -77,5 +77,5 @@ sudo docker-compose stop && sudo docker-compose up -d cliใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ๆ–นๆณ• ---------------------------------------------------------------- ```sh -sudo docker-compose run --rm web node packages/backend/built/tools/foo bar +sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` From 0d05091a3b17fa14cb77c8165c6f6d387351802d Mon Sep 17 00:00:00 2001 From: futchitwo <74236683+futchitwo@users.noreply.github.com> Date: Fri, 13 Jan 2023 18:33:37 +0900 Subject: [PATCH 098/296] Perf: Improved page loading behavior (#142) * Perf: disable prefetch * Perf: use RouterLink --- src/.vuepress/config.ts | 2 ++ src/.vuepress/mitheme/src/client/layouts/Landing.vue | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index fe9c9c1483..90d77c2235 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -447,4 +447,6 @@ export default defineUserConfig({ }, }, }, + + shouldPrefetch: false, }); diff --git a/src/.vuepress/mitheme/src/client/layouts/Landing.vue b/src/.vuepress/mitheme/src/client/layouts/Landing.vue index 56ca79a541..d4fe5748f9 100644 --- a/src/.vuepress/mitheme/src/client/layouts/Landing.vue +++ b/src/.vuepress/mitheme/src/client/layouts/Landing.vue @@ -144,7 +144,7 @@
{{ frontmatter.sections.gettingStarted.find.title }}
-
{{ frontmatter.sections.gettingStarted.find.list }} + {{ frontmatter.sections.gettingStarted.find.list }}
@@ -152,7 +152,7 @@
{{ frontmatter.sections.gettingStarted.create.title }}
- {{ frontmatter.sections.gettingStarted.create.guide }} + {{ frontmatter.sections.gettingStarted.create.guide }}
@@ -160,7 +160,7 @@
{{ frontmatter.sections.gettingStarted.docs.title }}
- {{ frontmatter.sections.gettingStarted.docs.docs }} + {{ frontmatter.sections.gettingStarted.docs.docs }}
From 78f7476b96404bab23636e16152ef0e95636196b Mon Sep 17 00:00:00 2001 From: Tassoman Date: Fri, 13 Jan 2023 10:33:56 +0100 Subject: [PATCH 099/296] Italian laguage, fixes and additions (#135) * fixing npm audit * new language: italian * updated blog link * repository menu :it: * menu links :it: * menu di navigazione di primo livello, completo :it: * :it: sezione partecipa * :it: documentazione, inizio * :it: documentazione WIP * :it: misskey doc * :it: FAQ centralizzate * :it: documentazione, faq glossario rilasci troubleshoot * api, streaming api, admin :it: * :it: api docs * :it: admin part 1 * :it: tips * :it: troubleshotings * :it: installazione * :it: features * :it: sezione install * :it: ultimi aggiornamenti * :it: missing timeline * Full features in italian :it: - homepage fixes --- src/.vuepress/config.ts | 28 ++++++++ src/it/README.md | 19 ++++-- src/it/docs/features/ads.md | 13 ++++ src/it/docs/features/antenna.md | 7 ++ src/it/docs/features/charts.md | 69 +++++++++++++++++++ src/it/docs/features/clip.md | 9 +++ src/it/docs/features/custom-emoji.md | 2 +- src/it/docs/features/deck.md | 25 +++++++ src/it/docs/features/drive.md | 2 +- src/it/docs/features/favorite.md | 9 +++ src/it/docs/features/follow.md | 13 ++++ src/it/docs/features/pages.md | 21 ++++++ src/it/docs/features/theme.md | 82 +++++++++++++++++++++++ src/it/docs/features/widgets.md | 99 ++++++++++++++++++++++++++++ src/it/docs/getting-started.md | 30 +++++++++ src/it/home.md | 18 ++--- src/it/instances.md | 6 +- src/it/plugins.md | 16 ++--- 18 files changed, 438 insertions(+), 30 deletions(-) create mode 100644 src/it/docs/features/ads.md create mode 100644 src/it/docs/features/antenna.md create mode 100644 src/it/docs/features/charts.md create mode 100644 src/it/docs/features/clip.md create mode 100644 src/it/docs/features/deck.md create mode 100644 src/it/docs/features/favorite.md create mode 100644 src/it/docs/features/follow.md create mode 100644 src/it/docs/features/pages.md create mode 100644 src/it/docs/features/theme.md create mode 100644 src/it/docs/features/widgets.md create mode 100644 src/it/docs/getting-started.md diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index 90d77c2235..f892b7586c 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -336,6 +336,34 @@ export default defineUserConfig({ '/it/docs/faq', '/it/docs/glossary', '/it/docs/troubleshooting', + { + text: 'Caratteristiche', + children: [ + '/it/docs/features/note', + '/it/docs/features/reaction', + '/it/docs/features/timeline', + '/it/docs/features/mfm', + '/it/docs/features/custom-emoji', + '/it/docs/features/drive', + '/it/docs/features/deck', + '/it/docs/features/charts', + '/it/docs/features/online-status', + '/it/docs/features/share-form', + '/it/docs/features/ads', + '/it/docs/features/thread-mute', + '/it/docs/features/word-mute', + '/it/docs/features/mute-and-block', + '/it/docs/features/plugin', + '/it/docs/features/antenna', + '/it/docs/features/clip', + '/it/docs/features/favorite', + '/it/docs/features/follow', + '/it/docs/features/pages', + '/it/docs/features/theme', + '/it/docs/features/thread-mute', + '/it/docs/features/widgets', + ] + }, { text: 'Per gli sviluppatori', children: [ diff --git a/src/it/README.md b/src/it/README.md index 2abb492c86..654affc695 100644 --- a/src/it/README.md +++ b/src/it/README.md @@ -34,22 +34,27 @@ sections: description: "Puoi reagire con qualsiasi emoji! Oltre alla stellina e il pollicione, esprimi come ti senti cliccando un solo bottone." theme: title: "Temi" - description: "Why be limited by just a Light or Dark theme when you can change all the colors? Use Misskey's intuitive theming functions to make Misskey just how you like it." + description: " + Perchรฉ limitarsi solo a Giorno/Notte, quando puoi cambiare qualsiasi colore? Tramite le funzioni intuitive di Misskey oggi puoi personalizzare l'interfaccia come desideri." charts: title: "Grafici" - description: "For those who need to see everything, Misskey has powerful charts for both users and admins to see what exactly is going on in your instance in real time." + description: " + Se hai la manรฌa del controllo, Misskey ti mette a disposizione grafici pontentissimi che permettono di monitorare, in tempo reale, come sta andando l'istanza." federation: title: "Federazione" - description: "Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!" + description: " + Non sei ancora su Misskey?! Non c'รจ problema. Le istanze Misskey parlano l'una con l'altra, oltre a Mastodon, Pixelfed, PeerTube, Soapbox e Pleroma. Puoi raggiungere le tue amicizie in tutto il Fediverso!" drive: title: "Drive" - description: "Hate not being able to find something you uploaded? With Drive, you get managed and powerful cloud storage right in your social media!" + description: " + Hai perso qualcosa di utile che avevi caricato in precedenza? Il Drive ti permette di gestire lo spazio disponibile per gli allegati, direttamente sul tuo profilo!" thread: title: "Argomenti" - description: "Have a lot on your mind? Make a thread! Each post can have up to 3,000 characters by default, and you can keep the conversation going for hours." + description: " + Hai molte cose da dire? Organizzalo in un thread. Ogni Nota ti mette a disposizione 3000 caratteri (di solito). Le converazioni possono andare di lungo per ore!" widgets: title: "Riquadri" - description: "Have everything at your fingertips with over a dozen customizable widgets!" + description: "Personalizza la tua interfaccia client con svariati riquadri pesonalizzabili, il calendario, le notifiche, l'orologio, le statistiche..." gettingStarted: title: "Entra subito in Misskey!" find: @@ -63,7 +68,7 @@ sections: docs: "Documentazione" donation: title: "Donazioni" - description: "Because Misskey is a non-profit, we rely on your donations to fund our development. If you like Misskey, please consider donating so that we can continue to make Misskey awesome for years to come!" + description: "Poichรฉ Misskey รจ una organizzazione autogestita, senza incassi, per sopravvivere, si affida alla vostra generositร . Dunque, considera l'opzione di una donazione per progredirne la qualitร  negli anni!" sponsors: title: "Sponsor" --- diff --git a/src/it/docs/features/ads.md b/src/it/docs/features/ads.md new file mode 100644 index 0000000000..b80bd9a8f4 --- /dev/null +++ b/src/it/docs/features/ads.md @@ -0,0 +1,13 @@ +# Gli annunci promozionali + +Misskey ha una funzione che permette agli amministratori di mostrare annunci promozionali nell'istanza locale. + +Selezionando l'icona (i), visibile nell'angolo in alto a destra dell'annuncio, si puรฒ ridurre la frequenza di visualizzazione. + +::: tip +Anche riducendo la frequenza, รจ possibile che gli annunci rimangano comunque visibili. +::: + +## Impostazioni annunci (amministratore) + +Puoi aggiungere, modificare o rimuovere annunci dal pannello di controllo della tua istanza. Puoi impostare qualsiasi immagine, URL di destinazione, forma e rapporto di visualizzazione per l'annuncio. diff --git a/src/it/docs/features/antenna.md b/src/it/docs/features/antenna.md new file mode 100644 index 0000000000..6772a8057b --- /dev/null +++ b/src/it/docs/features/antenna.md @@ -0,0 +1,7 @@ +# Le Antenne + +Consente di impostare alcuni parametri che permettono di raccogliere automaticamente Note che li soddisfano. Senza la necessitร  di seguire profili. + +Quando viene creata un'antenna con particolari condizioni, vengono pubblicate le Note che corrispondono alle condizioni desiderate. + +Le Antenne sono vere e proprie Timeline personalizzate, composte secondo determinate condizioni. diff --git a/src/it/docs/features/charts.md b/src/it/docs/features/charts.md new file mode 100644 index 0000000000..a3cf18956a --- /dev/null +++ b/src/it/docs/features/charts.md @@ -0,0 +1,69 @@ +# I grafici + +Misskey ha la capacitร  di generare grafici che descrivono i dati dell'istanza. Puoi comprendere intuitivamente l'andamento della federazione e lo svolgimento delle attivitร . + +Puoi raggiungerli visitando la pagina con le informazioni sull'istanza. + +## Aggregato + +Il primo riquadro mostra i grafici aggregati sulla federazione dell'istanza. + +### Pub + +Andamento delle istanze che consegnano messaggi sulle attivitร . Si tratta del conteggio univoco di istanze remote che seguono profili sull'istanza locale. + +### Sub + +Numero di istanze che ricevono messaggi sulle attivitร . Si tratta del conteggio univoco di istanze remote che i profili locali stanno seguendo. + +### Received + +Numero di istanze remote che hanno spedito attivitร  a quella locale. + +### Delivered + +Numero di istanze remote che hanno ricevuto attivitร  da quella locale. + +### Stalled + +Numero di istanze remote che soffrono malfunzionamenti durante la consegna delle attivitร . + +## Utenti attivi + +Il grafico che mostra l'andamento dei profili attivi sull'istanza locale. + +### Letture e scritture + +Quantitร  di profili che hanno spedito o ricevuto note. + +### Lettura + +Quantitร  di profili che hanno ricevuto note. + +### Scrittura + +Quantitร  di profili che hanno spedito note. + +### < Week + +Profili piรน recenti di una settimana fa. + +### < Month + +Profili piรน recenti di un mese fa. + +### < Year + +Profili piรน recenti di un anno fa. + +### > Week + +Profili creati da piรน di una settimana. + +### > Month + +Profili creati da piรน di un mese. + +### > Year + +Profili creati da piรน di un anno. diff --git a/src/it/docs/features/clip.md b/src/it/docs/features/clip.md new file mode 100644 index 0000000000..610c8002b0 --- /dev/null +++ b/src/it/docs/features/clip.md @@ -0,0 +1,9 @@ +# Le clip + +Consente di elencare piรน note insieme, a prescindere da chi le abbia pubblicate. + +รˆ possibile creare e gestire piรน clip impostando nomi personalizzati e descrizioni per ognuna di esse. Puoi anche scegliere se l'elenco sia pubblico, cioรจ visibile a tutti, o meno. + +Per creare una clip, fai clic su ยซAggiungiยป, visitando la pagina di gestione delle clip, nel menu ยซAltroยป. + +Per aggiungere una Nota in un elenco Clip, seleziona la voce Clip nel menu della Nota prescelta e scegli il nome della Clip che dovrร  contenerla. diff --git a/src/it/docs/features/custom-emoji.md b/src/it/docs/features/custom-emoji.md index 54738d5560..a47491301b 100644 --- a/src/it/docs/features/custom-emoji.md +++ b/src/it/docs/features/custom-emoji.md @@ -1,4 +1,4 @@ -# Emoji Personalizzati +# Le emoji personalizzate Si tratta di una caratteristica che ti permette di usare come emoji qualsiasi immagine fornita dalla tua istanza. diff --git a/src/it/docs/features/deck.md b/src/it/docs/features/deck.md new file mode 100644 index 0000000000..954d4c7c79 --- /dev/null +++ b/src/it/docs/features/deck.md @@ -0,0 +1,25 @@ +# Il deck + +Questa modalitร  permette di organizzare le informazioni in colonne. Permette di ricevere un flusso notevole in tempo reale. + +## Aggiungi una colonna + +Puoi aggiungere una colonna contenitiva cliccando lo sfondo della pagina col tasto secondario del mouse, nel menu scegli ยซAggiungi colonnaยป. + +Oppure usando il bottone (+) in alto a destra. + +## Sposta la colonna + +Puoi invertire l'ordine delle colonne, semplicemente trascinandole a destra o sinistra, una sull'altra. Oppure col tasto secondario del mouse sull'intestazione della colonna. Nel menu scegli la direzione in cui andare (destra/sinistra). + +## Divisione orizzontale + +Due colonne possono dividersi lo spazio di una unica colonna. Col click secondario, seleziona nel menu: ยซImpila a sinistraยป per spostare la colonna attuale sotto alla precedente. Per annullare la suddivisione, seleziona dal menu: ยซSposta a destraยป. + +## Impostazioni colonna + +Selezionando ยซModificaยป con il click secondario, puoi alterare la larghezza delle colonne. Alcune delle quali permettono anche di personalizzare ulteriori caratteristiche. + +## Impostazioni del Deck + +Puoi controllare le impostazioni della modalitร , visitando la pagina `/settings/deck` sulla tua istanza. diff --git a/src/it/docs/features/drive.md b/src/it/docs/features/drive.md index 79012244fc..00fe63e632 100644 --- a/src/it/docs/features/drive.md +++ b/src/it/docs/features/drive.md @@ -1,4 +1,4 @@ -# Drive +# Il drive Il **Drive** รจ una caratteristica che ti permette di gestire i file caricati su Misskey. diff --git a/src/it/docs/features/favorite.md b/src/it/docs/features/favorite.md new file mode 100644 index 0000000000..ccd678a60c --- /dev/null +++ b/src/it/docs/features/favorite.md @@ -0,0 +1,9 @@ +# I preferiti + +Consentono di ricordarsi di alcune [Note](./note) specifiche. + +Le Note preferite saranno visibili nella pagina `/my/favorites`. + +Nessuno saprร  che hai preferito la Nota, tranne te. + +L'impostazione avviene cliccando il ยซmenu Notaยป, selezionando la relativa voce di menu. diff --git a/src/it/docs/features/follow.md b/src/it/docs/features/follow.md new file mode 100644 index 0000000000..9d3dee4a43 --- /dev/null +++ b/src/it/docs/features/follow.md @@ -0,0 +1,13 @@ +# Il follow + +Seguire un profilo permette di leggere le Note che ha scritto. Tuttavia, non sono incluse le risposte che ha inviato ad altre conversazioni. + +Per seguire un utente, seleziona il bottone ยซSeguiยป, visitando il profilo stesso. + +Clicca di nuovo, per interrompere il follow. + +::: tip + +Se compare la scritta ยซin elaborazione...ยป significa che quel profilo valuterร  se approvare o meno la tua richiesta. Oppure che si sono verificati degli impedimenti causati dalla istanza remota. + +::: diff --git a/src/it/docs/features/pages.md b/src/it/docs/features/pages.md new file mode 100644 index 0000000000..e892588acf --- /dev/null +++ b/src/it/docs/features/pages.md @@ -0,0 +1,21 @@ +# Le pagine + +Sono vere e proprie pagine, tipo un blog, organizzate gerarchicamente sotto al tuo profilo, es: `/@sysop/pages/regolamento` + +## Le variabili + +Puoi anche creare pagine dinamiche utilizzando le variabili. + +Scrivendo **{nome variabile}** nel testo, puoi assegnare il valore di una variabile. Ad esempio, se il testo รจ `Ciao { cosa } mondo!` e il valore della variabile **cosa** รจ _Ai_, allora il testo visualizzato sarร : `Ciao Ai mondo!`. + +Le variabili vengono interpretate calcolandone i valori dall'alto verso il basso. Quindi non รจ possibile che una variabile faccia riferimento a una variabile sottostante. Ad esempio, se definisci tre variabili come `A, B e C`, puoi richiamare il valore di `B` da `C` ma non puoi richiamare il valore di `B` e `C` da dentro `A`, poichรฉ esse non sono state dichiarate prima di essa. + +Per ricevere testo immesso dai visitatori, posiziona un blocco **Input utente** nella pagina e assegna il nome di una variabile in **Nome variabile** indicando la variabile in cui desideri memorizzare l'input (la variabile verrร  creata automaticamente). Puoi usare quella variabile per interagire con il testo immesso dal visitatore. + +## Le Funzioni + +Consentono di svolgere il calcolo dei valori in modo riutilizzabile. + +Per creare una funzione, crea una variabile di tipo **funzione**. + +Una funzione puรฒ avere slot (argomenti) e i valori degli slot possono essere usati come variabili all'interno della funzione. Esistono anche funzioni che accettano altre funzioni come argomenti. diff --git a/src/it/docs/features/theme.md b/src/it/docs/features/theme.md new file mode 100644 index 0000000000..94b35ef552 --- /dev/null +++ b/src/it/docs/features/theme.md @@ -0,0 +1,82 @@ +# I temi + +Servono per cambiare l'aspetto del client Web di Misskey. + +## Impostazioni tema + +Per configurarli occorre visitare la pagina ยซImpostazioniยป alla voce ยซTemaยป. + +## Creare un tema + +Il tema รจ un oggetto JSON5 che assomiglia a questo: + +```js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} +``` + +## Parametri + +- `id`: codice identificativo univoco, possibilmente un UUID +- `name`: nome +- `author`: autore +- `desc`: descrizione (facoltativa) +- `base`: riferimento sul tema di partenza + - `light`: se estendi un tema chiaro; `dark`: se ne estendi uno scuro + - il tuo tema erediterร  le caratteristiche di uno dei due. +- `props`: proprietร  del tema, spiegate di seguito + +### Definizione degli stili + +`props`ไธ‹ใซใฏใƒ†ใƒผใƒžใฎใ‚นใ‚ฟใ‚คใƒซใ‚’ๅฎš็พฉใ—ใพใ™ใ€‚ +ใ‚ญใƒผใŒ CSS ใฎๅค‰ๆ•ฐๅใซใชใ‚Šใ€ใƒใƒชใƒฅใƒผใงไธญ่บซใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚ +ใชใŠใ€ใ“ใฎ`props`ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฏใƒ™ใƒผใ‚นใƒ†ใƒผใƒžใ‹ใ‚‰็ถ™ๆ‰ฟใ•ใ‚Œใพใ™ใ€‚ +ใƒ™ใƒผใ‚นใƒ†ใƒผใƒžใฏใ€ใ“ใฎใƒ†ใƒผใƒžใฎ`base`ใŒ`light`ใชใ‚‰[\_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)ใงใ€`dark`ใชใ‚‰[\_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)ใงใ™ใ€‚ +ใคใพใ‚Šใ€ใ“ใฎใƒ†ใƒผใƒžๅ†…ใฎ`props`ใซ`panel`ใจใ„ใ†ใ‚ญใƒผใŒ็„กใใฆใ‚‚ใ€ใใ“ใซใฏใƒ™ใƒผใ‚นใƒ†ใƒผใƒžใฎ`panel`ใŒใ‚ใ‚‹ใจ่ฆ‹ใชใ•ใ‚Œใพใ™ใ€‚ + +#### Sintassi per i valori + +- Colore esadecimale + - es: `#00ff00` +- Colore `rgb(r, g, b)` + - es: `rgb(0, 255, 0)` +- Colore con trasparenza alpha `rgb(r, g, b, a)` + - es: `rgba(0, 255, 0, 0.5)` +- Riferimenti ad altre variabili + - Scrivendo `@{variabile}` si farร  riferimento al valore di quella variabile. + - es: `@panel` +- Riferimenti alle costanti (vedi sotto) + - Scrivendo `${costante}` si farร  riferimento al valore di quelal costante. + - es: `$main` +- Riferimenti alle funzioni (vedi sotto) + - `:{funzione}<{argomento}<{colore}` + +#### Costanti + +Le costanti sono utili quando si ha un valore che non si desidera restituire come variabile CSS, ma si desidera riutilizzarlo come valore di un'altra variabile CSS. + +Se il nome della chiave inizia con `$`, la chiave non verrร  esportata come variabile CSS. + +#### Funzioni + +TODO diff --git a/src/it/docs/features/widgets.md b/src/it/docs/features/widgets.md new file mode 100644 index 0000000000..724bbb5a05 --- /dev/null +++ b/src/it/docs/features/widgets.md @@ -0,0 +1,99 @@ +# Riquadri + +Sono piccole informazioni che possono essere visualizzate e gestite sull'interfaccia web di Misskey. + +Per modificare i riquadri, occorre attivare la modalitร  di modifica. + +In che modo farlo, dipende dal tipo di interfaccia utente (Predefinita, Deck, classica). + +La modalitร  di modifica dei riquadri consente di aggiungere, rimuovere, elencarli e configurarne le impostazioni. + +## Elenco dei widget disponibili + +### Memo + +Questo riquadro serve come blocco appunti. + +### Notifiche + +Elenca le notifiche in poco spazio. Si possono filtrare quelle necessarie. + +### Timeline + +TODO + +### Calendario + +Indica la data di oggi e quanto manca alla prossima scadenza temporale. + +### Aggregatore RSS + +Raccoglie informazioni da siti esterni + +### RSS Ticker + +Visualizza notizie da siti esterni, ma impegna le risorse del dispositivo. + +### Tendenze + +Indica gli hashtag citati nelle note federate sull'istanza locale + +### Orologio + +Indica l'ora nel fuso orario prescelto, con personalizzazione grafica. + +### Attivitร  + +TODO + +### Foto + +TODO + +### Orologio digitale + +Indica l'ora in cifre + +### UNIX clock + +Indica quanti secondi sono passati dalla EPOCH, in formato Unix. + +### Federazione + +TODO + +### Cloud Istanze + +Rappresentazione grafica delle istanze federate. + +### Finestra di pubblicazione + +Per scrivere note immediatamente + +### Diapositive + +TODO + +### Statistiche server + +Grafico con l'andamento del consumo risorse + +### Utenti online + +Numero di persone collegate + +### Coda di lavoro + +Quantitร  di attivitร  durante la federazione + +### Pulsante + +Bottone cliccabile a cui assegnare una funzione + +### Console Ai Script + +Editor di Script Ai + +### Ai + +La mascotte animata di Misskey diff --git a/src/it/docs/getting-started.md b/src/it/docs/getting-started.md new file mode 100644 index 0000000000..63100212ba --- /dev/null +++ b/src/it/docs/getting-started.md @@ -0,0 +1,30 @@ +# Inizia con Misskey + +Misskey รจ un sito web decentralizzato. Viene chiamato Istanza di Fediverso. + +Per entrare subito nel Fediverso, crea il tuo profilo su una delle [Istanze Misskey](../instances.md). + +::: tip +Qualsiasi Istanza tu scelga, potrai interagire con i profili delle persone registrate su altre istanze. + +::: details +Misskey ha la capacitร  di federarsi e scambiare informazioni tramite protocollo ActivityPub. + +In questo modo puoi comunicare con istanze di tipo Mastodon, Pixelfed, PeerTube, Soapbox o Pleroma. +::: + +## Consigli per scegliere una istanza + +Se non hai le idee chiare, ti spieghiamo alcuni modi comunemente utilizzati per decidere come procedere. Decidi tu. Se qualcosa non esiste ancora, potresti decidere di avviare anche una nuova tua istanza! + +### Geografia + +Alcune istanze accomunano le persone della stessa posizione geografica. + +### Linguaggio + +Altre istanze accomunano le persone che parlano la stessa lingua. + +### Tematica + +Alcune istanze ospitano persone che hanno gli stessi particolari interessi. diff --git a/src/it/home.md b/src/it/home.md index 1eaa94fa2f..4ad20cdd73 100644 --- a/src/it/home.md +++ b/src/it/home.md @@ -5,19 +5,19 @@ heroImage: /banner.svg tagline: Sito ufficiale di Misskey, la piattaforma opensource di microblog interplanetario footer: Copyright © 2023 syuilo ed altri co-autori actions: - - text: Getting started + - text: Inizia con Misskey link: ./docs/getting-started type: primary - - text: What is Misskey? - link: ./docs/misskey + - text: Che cos'รจ Misskey? + link: ./docs/misskey.html type: secondary features: - - title: Distributed ๐Ÿช - details: Independent communities are run on multiple servers, and these are interconnected. - - title: Lightweight ๐Ÿš€ - details: Because it uses Node.js, which runs at high speed, it is lightweight even when federated with a large number of servers. - - title: Fun ๐Ÿฎ - details: It has distinctive features such as reactions and a highly customizable UI. + - title: Distribuita ๐Ÿช + details: Le comunitร  indipendenti si organizzano sui propri server, sebbene siano interconnesse. + - title: Leggera ๐Ÿš€ + details: Grazie al linguaggio di programmazione NodeJS e la capacitร  di sfruttare le risorse in modo efficiente, la piattaforma risulta leggera anche quando c'รจ traffico. + - title: Divertente ๐Ÿฎ + details: Le funzionalitร  uniche, come le reazioni infite e la personalizzazione, permettono di cambiare il divertimento ogni giorno, se lo desideri. --- diff --git a/src/it/instances.md b/src/it/instances.md index f3763a5a4e..8d8541d2e6 100644 --- a/src/it/instances.md +++ b/src/it/instances.md @@ -1,12 +1,14 @@ # Elenco delle istanze Misskey ::: tip -Se vuoi fare comparire anche la tua istanza, per favore contattaci su [Discord](https://discord.gg/Wp8gVStHW3) (in Giapponese o inglese) altrimenti invia una pull-request su [GitHub](https://github.com/misskey-dev/misskey-hub). +Se vuoi fare comparire anche la tua istanza, per favore contattaci su [Discord](https://discord.gg/Wp8gVStHW3) (in Giapponese o Inglese) altrimenti invia una pull-request su [GitHub](https://github.com/misskey-dev/misskey-hub). ::: -In alternativa, puoi trovare una istanza anche nella [lista non ufficiale](https://join.misskey.page/en-US/instances). +## Elenco istanze Italiane + +Nella [lista non ufficiale](https://join.misskey.page/it-IT/instances), trovi tutte quelle italiane. diff --git a/src/ko/docs/admin/cdn.md b/src/ko/docs/admin/cdn.md new file mode 100644 index 0000000000..5cc3df638b --- /dev/null +++ b/src/ko/docs/admin/cdn.md @@ -0,0 +1,21 @@ +# CDN ์„ค์ •ํ•˜๊ธฐ + +Misskey ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณต๊ฐœํ•  ๋•Œ, ์ €ํฌ๋Š” [Cloudflare](https://www.cloudflare.com)์™€ ๊ฐ™์€ CDN ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. + +CDN์„ ํ™œ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค: + +- ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์บ์‹œํ•ด, ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. +- ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๊ฐ€ ๋œ ๋…ธ์ถœ๋˜์–ด, DoS ๊ณต๊ฒฉ๊ณผ ๊ฐ™์€ ๊ณต๊ฒฉ์— ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค. + +## ์บ์‹ฑ + +Misskey Web์€ ์™„์ „ํžˆ ์ •์ ์ด๋ฉฐ ์„œ๋ฒ„ ์—†์ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Misskey Web ํด๋ผ์ด์–ธํŠธ๋Š” ๋ชจ๋‘ CDN์— ์บ์‹ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Misskey API๋Š” ์บ์‹ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. + +๋‹ค์Œ ์„ค์ •์„ CDN์— ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: + +- `/api/*`๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์š”์ฒญ์„ ์บ์‹ฑ + +::: ํŒ +Misskey๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ, ๋ชจ๋“  ์บ์‹œ๋ฅผ ์‚ญ์ œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. +:::: diff --git a/src/ko/docs/admin/default-reaction.md b/src/ko/docs/admin/default-reaction.md new file mode 100644 index 0000000000..5bd1aaa58b --- /dev/null +++ b/src/ko/docs/admin/default-reaction.md @@ -0,0 +1,3 @@ +# ๊ธฐ๋ณธ ๋ฐ˜์‘ ๋ณ€๊ฒฝ + +๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ `meta.useStarForReactionFallback` ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์„œ, ActivityPub์—์„œ "์ข‹์•„์š”"์˜ ๊ธฐ๋ณธ ํ‘œ์‹œ๋ฅผ '๐Ÿ‘'์—์„œ 'โญ'๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/docs/admin/emoji.md b/src/ko/docs/admin/emoji.md new file mode 100644 index 0000000000..dd1fc31c6e --- /dev/null +++ b/src/ko/docs/admin/emoji.md @@ -0,0 +1,116 @@ +# ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ๊ด€๋ฆฌ + +์ปค์Šคํ…€ ์ด๋ชจ์ง€๋Š” ์–ด๋“œ๋ฏผ๊ณผ ๋ชจ๋”๋ ˆ์ดํ„ฐ๊ฐ€ ์ธ์Šคํ„ด์Šค ์„ค์ •์˜ ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ์„œ๋ธŒ๋ฉ”๋‰ด์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ๋กœ์ปฌ์— ์„ค์น˜๋œ ์ด๋ชจ์ง€ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. +์ฒ˜์Œ์—๋Š” ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ์ด๋ชจ์ง€ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. + +::: ํŒ +์ด ๋ฌธ์„œ๋Š” ์•„์ง ๋ฒˆ์—ญ ์ค‘์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋‚ด์šฉ์ด ์˜์–ด๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +::: + +## ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์—์„œ ์ด๋ชจ์ง€ ๋ณต์‚ฌ + +Emoji can be easily copied from another instance. +To do this, switch to the "remote" tab in the custom emoji settings. +You can search emoji by name and/or host they are from. + +When you have found an emoji you want, click it to open a small menu which will allow you to import the emoji. + +Please note that Emoji may be subject to copyright and you are responsible for checking whether you may legally use another emoji. + +## Individual Emoji Import + +If you have an image file that you would like to turn into a custom emoji you can import the image as an emoji. +This works just like attaching files to a note: +You can choose to upload a new file, pick a file from your Misskey drive or upload a file from another URL. + +::: danger +When you import emoji from your drive, the file will remain inside your drive. +Misskey does not make a copy of this file so if you delete it, the emoji will be broken. +::: + +The emoji will be added to the instance and you will then be able to edit or delete it as usual. + +## Bulk Emoji import + +Emojis can be imported in bulk as packed ZIP files with a special format. +This ability can be found in the three dots menu in the top right corner of the custom emoji menu. + +::: warning +Bulk emoji import may overwrite existing emoji or otherwise mess up your instance. +Be sure to only import emoji from trusted sources, ideally only ones you exported yourself. +::: + +### Packed emoji format + +At the top level is a file called `meta.json` which contains information about the emoji contained in the packed file. +A type definition for this file would look like this, where `Meta` is the structure of the whole file. + +```typescript +class Meta { + metaVersion: number; + host: string; + /** + * Date and time representation returned by ECMAScript `Date.prototype.toString`. + */ + exportedAt: string; + emojis: Emoji[]; +} + +class Emoji { + downloaded: boolean; + fileName: string; + emoji: { + id: string; + updatedAt: string; + name: string; + host: null; + category: string; + originalUrl: string; + publicUrl: string; + uri: null; + type: string; + aliases: string[]; + }; +} +``` + +The fields of `Meta` are currently not used or checked when importing emoji, except for the `emojis` field. + +For each `Emoji`: + +- `downloaded`: should always be true. If the field is missing or not truthy, the emoji will not be imported. +- `fileName`: name of the image file inside the packed file. +- `emoji`: data associated with the emoji as it was stored in the database. Currently most of these fields are + not even checked for existence. The following are currently used: + - `name`: name of the emoji for the user, e.g. `blobfox` if a user should type in `:blobfox:` to get the emoji. + If a previous emoji with the same name exists, it **will be overwritten**! + - `category`: category of the emoji + - `aliases`: list of strings that should be added as aliases. The admin UI calls these "tags". + +## Editing and Deleting Emoji + +The properties of an emoji can be edited by clicking it in the list of local emoji. +When you click on a custom emoji, a dialog for editing the properties will open. +This dialog will also allow you to delete an emoji. + +::: danger +When you delete a custom emoji, old notes that contain it will still have the text name of the emoji in it. +The emoji will no longer be rendered correctly. +::: + +Note that remote emoji can not be edited or deleted. + +Each emoji can have a name and a category and several tags. +The category is used for structuring the emoji picker. +Meanwhile the tags can be used as alternate names by which the emoji can be found when searching in the emoji picker. + +When you are done editing, save your changes by clicking the check mark in the top right corner of the dialog. + +### Bulk Editing + +Emoji can be edited in bulk by checking the box below the search field. +With this enabled, clicking on an emoji will select it instead of opening the editing dialog. + +The Editing options will be displayed as buttons below the checkbox. +To return to the normal behaviour just uncheck the box again. diff --git a/src/ko/docs/admin/nginx.md b/src/ko/docs/admin/nginx.md new file mode 100644 index 0000000000..ae6e0514b7 --- /dev/null +++ b/src/ko/docs/admin/nginx.md @@ -0,0 +1,80 @@ +# Nginx configuration example + +```nginx +# Sample nginx configuration for Misskey +# +# 1. Replace example.tld to your domain +# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/ +# or copy to /etc/nginx/conf.d/ + +# For WebSocket +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; + +server { + listen 80; + listen [::]:80; + server_name example.tld; + + # For SSL domain validation + root /var/www/html; + location /.well-known/acme-challenge/ { allow all; } + location /.well-known/pki-validation/ { allow all; } + location / { return 301 https://$server_name$request_uri; } +} + +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name example.tld; + + ssl_session_timeout 1d; + ssl_session_cache shared:ssl_session_cache:10m; + ssl_session_tickets off; + + # To use Let's Encrypt certificate + ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; + + # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) + #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; + #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; + + # SSL protocol settings + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; + ssl_prefer_server_ciphers off; + ssl_stapling on; + ssl_stapling_verify on; + + # Change to your upload limit + client_max_body_size 80m; + + # Proxy to Node + location / { + proxy_pass http://127.0.0.1:3000; + proxy_set_header Host $host; + proxy_http_version 1.1; + proxy_redirect off; + + # If it's behind another reverse proxy or CDN, remove the following. + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + + # For WebSocket + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + # Cache settings + proxy_cache cache1; + proxy_cache_lock on; + proxy_cache_use_stale updating; + add_header X-Cache $upstream_cache_status; + } +} +``` diff --git a/src/ko/docs/admin/push-docker-hub.md b/src/ko/docs/admin/push-docker-hub.md new file mode 100644 index 0000000000..d96c4a1157 --- /dev/null +++ b/src/ko/docs/admin/push-docker-hub.md @@ -0,0 +1,33 @@ +# GitHub Actions๋กœ Docker Hub์— ํ‘ธ์‹œํ•˜๊ธฐ + +::: ๊ฒฝ๊ณ  +์ด ๋ฌธ์„œ๋Š” ์•„์ง ์˜๋ฌธ/๊ตญ๋ฌธ์œผ๋กœ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•„, ์ผ๋ณธ์–ด๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. + +์ถ”ํ›„ ๋ฒˆ์—ญ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š”, ์•„๋ž˜์˜ ์ผ๋ฌธ์„ ๊ธฐ๊ณ„ ๋ฒˆ์—ญํ•˜์—ฌ ์ฝ์–ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. +::: + +[/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) ใซ +GitHub Action ใซใ‚ˆใ‚Š Docker Hub ใธ push ใ™ใ‚‹ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใŒ่จ˜่ฟฐใ•ใ‚Œใฆใ„ใพใ™ใ€‚ + +ใ‚ชใƒชใ‚ธใƒŠใƒซใƒชใƒใ‚ธใƒˆใƒชใงใฏใ€ใƒชใƒชใƒผใ‚นใ•ใ‚ŒใŸใ‚ฟใ‚คใƒŸใƒณใ‚ฐใง `latest`, `<ใƒชใƒชใƒผใ‚นๅ>` ใใ‚Œใžใ‚Œใฎใ‚ฟใ‚ฐใง Docker Hub ใซ push ใ•ใ‚Œใพใ™ใ€‚ +โ€ป Docker Hub ใซ`<ใƒ–ใƒฉใƒณใƒๅ>`ใฎใ‚ˆใ†ใชใ‚ฟใ‚ฐใŒใ‚ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใŒใ€ใ“ใกใ‚‰ใฏ่‡ชๅ‹• push ๅฏพ่ฑกใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ + +Fork ๅ…ˆใงใ“ใฎใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจๅคฑๆ•—ใ—ใพใ™ใ€‚ + +ไปฅไธ‹ใงใฏใ€Fork ๅ…ˆใง่‡ชๅˆ†ใฎ Docker Hub ใƒชใƒใ‚ธใƒˆใƒชใซ push ใ™ใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ๆ–นๆณ•ใ‚’่จ˜่ฟฐใ—ใพใ™ใ€‚ + +## ่‡ชๅˆ†ใฎ Docker Hub ใƒชใƒใ‚ธใƒˆใƒชใซ push ใ™ใ‚‹ใ‚ˆใ†ใซ่จญๅฎšใ™ใ‚‹ๆ–นๆณ• + +1. Docker Hub ใงใƒชใƒใ‚ธใƒˆใƒชใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ +2. ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใƒ•ใ‚กใ‚คใƒซใฎ [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) ใ‚’ไฝœๆˆใ—ใŸใƒชใƒใ‚ธใƒˆใƒชใซ็ฝฎใๆ›ใˆใพใ™ใ€‚ +3. GitHub ใซใฆ [ๆš—ๅทๅŒ–ใ•ใ‚ŒใŸใ‚ทใƒผใ‚ฏใƒฌใƒƒใƒˆ](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) ใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ + ไฝœๆˆใŒๅฟ…่ฆใชใฎใฏ `DOCKER_USERNAME` ใจ `DOCKER_PASSWORD` ใงใ€ใใ‚Œใžใ‚Œ Docker Hub ใฎใƒฆใƒผใ‚ถใƒผใจใƒ‘ใ‚นใƒฏใƒผใƒ‰ใซใชใ‚Šใพใ™ใ€‚ + +## push ใ™ใ‚‹ๆ–นๆณ• + +ไธŠ่จ˜่จญๅฎšใซใ‚ˆใ‚Šใƒชใƒชใƒผใ‚นๆ™‚ใซ่‡ชๅ‹•็š„ใซ Docker Hub ใซ push ใ•ใ‚Œใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚ +ๅ…ทไฝ“็š„ใซใฏใ€GitHub ใฎใƒชใƒชใƒผใ‚นๆฉŸ่ƒฝใงใƒชใƒชใƒผใ‚นใ—ใŸใ‚ฟใ‚คใƒŸใƒณใ‚ฐใง `latest`, `<ใƒชใƒชใƒผใ‚นๅ>` ใใ‚Œใžใ‚Œใฎใ‚ฟใ‚ฐใง Docker Hub ใซ push ใ•ใ‚Œใพใ™ใ€‚ + +ใพใŸใ€GitHub ไธŠใ‹ใ‚‰ๆ‰‹ๅ‹•ใง push ใ™ใ‚‹ใ“ใจใ‚‚ๅ‡บๆฅใพใ™ใ€‚ +ใใ‚Œใ‚’่กŒใ†ใซใฏใ€Actions => Publish Docker image => Run workflow ใ‹ใ‚‰ branch ใ‚’้ธๆŠžใ—ใฆใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚ +ใŸใ ใ—ใ€ใ“ใฎๅ ดๅˆไฝœๆˆใ•ใ‚Œใ‚‹ใ‚ฟใ‚ฐใฏ`<ใƒ–ใƒฉใƒณใƒๅ>`ใซใชใ‚Šใพใ™ใ€‚ diff --git a/src/ko/docs/admin/troubleshooting.md b/src/ko/docs/admin/troubleshooting.md new file mode 100644 index 0000000000..3bdca3ef04 --- /dev/null +++ b/src/ko/docs/admin/troubleshooting.md @@ -0,0 +1,9 @@ +# Troubleshooting guide + +::: ๊ฒฝ๊ณ  +์ด ๋ฌธ์„œ๋Š” ์•„์ง ๊ตญ๋ฌธ/์˜๋ฌธ์œผ๋กœ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ผ๋ฌธ๋„ ์ƒ๋‹นํžˆ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +์ด ํŽ˜์ด์ง€๋Š” ์—ฌ๊ธฐ์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, [์ผ๋ณธ์–ด ๋ฒ„์ „](/docs/admin/troubleshooting)๋งŒ ์ œ๊ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +์ผ๋ณธ์–ด ๋ฒ„์ „์„ ๋ฒˆ์—ญํ•ด์ฃผ์‹œ๊ฑฐ๋‚˜, ํ˜น์€ ๊ธฐ๊ณ„ ๋ฒˆ์—ญ์„ ์ด์šฉํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. +::: diff --git a/src/ko/docs/advanced/aiscript.md b/src/ko/docs/advanced/aiscript.md new file mode 100644 index 0000000000..9b396619aa --- /dev/null +++ b/src/ko/docs/advanced/aiscript.md @@ -0,0 +1,11 @@ +# AiScript + +AiScript๋Š” Misskey์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ž…๋‹ˆ๋‹ค. + +::: ์•ˆ๋‚ด +AiScript๋Š” Misskey์™€๋Š” ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๋กœ, [์˜คํ”ˆ ์†Œ์Šค](https://github.com/syuilo/aiscript)๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. +::: + +## ์‚ฌ์šฉ๋ฒ• + +AiScript์˜ ๊ตฌ๋ฌธ์ด๋‚˜ ๋‚ด์žฅ ํ•จ์ˆ˜ ๋“ฑ์˜ ๋ฌธ์„œ๋Š” [์—ฌ๊ธฐ](https://github.com/syuilo/aiscript/tree/master/docs)์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/docs/advanced/create-plugin.md b/src/ko/docs/advanced/create-plugin.md new file mode 100644 index 0000000000..70655c5787 --- /dev/null +++ b/src/ko/docs/advanced/create-plugin.md @@ -0,0 +1,63 @@ +# ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งŒ๋“ค๊ธฐ + +Misskey ์›น ํด๋ผ์ด์–ธํŠธ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ™•์žฅํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์ด ๋ฌธ์„œ์—์„œ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. + +## AiScript + +ํ”Œ๋Ÿฌ๊ทธ์ธ์€ AiScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋œ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. + +## ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ + +ํ”Œ๋Ÿฌ๊ทธ์ธ์€ AiScript์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํฌํ•จ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ ์†์„ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. + +### name + +ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„ + +### author + +ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž‘์„ฑ์ž + +### version + +ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฒ„์ „. ์ˆซ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. + +### description + +ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค๋ช… + +### permissions + +ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์š”์ฒญํ•˜๋Š” ๊ถŒํ•œ. MisskeyAPI์— ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. + +### config + +ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์„ค์ • ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด. +ํ‚ค์— ์„ค์ • ์ด๋ฆ„, ๊ฐ’์— ๋‹ค์Œ ์†์„ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. + +#### type + +์„ค์ •์น˜์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์บ๋ฆญํ„ฐ ๋ผ์ธ. ๋‹ค์Œ ์ค‘์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. + +- string +- number +- boolean + +#### label + +์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•  ์„ค์ • ์ด๋ฆ„ + +#### description + +์„ค์ • ์„ค๋ช… + +#### default + +์„ค์ •์˜ ๊ธฐ๋ณธ๊ฐ’ + +## API + +Misskey Web์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์— API๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์–ด๋–ค API๊ฐ€ ์žˆ๋Š”์ง€๋Š” [ํ”Œ๋Ÿฌ๊ทธ์ธ API ์ฐธ์กฐ](./plugin-api-reference.md)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. diff --git a/src/ko/docs/advanced/develop-bot.md b/src/ko/docs/advanced/develop-bot.md new file mode 100644 index 0000000000..80c7071dd1 --- /dev/null +++ b/src/ko/docs/advanced/develop-bot.md @@ -0,0 +1,8 @@ +# Bot ๋งŒ๋“ค๊ธฐ + +[Misskey API](./api)๋ฅผ ์ด์šฉํ•˜์—ฌ Bot ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. +๋˜, ๋ช‡๊ฐœ์˜ Bot ๊ตฌํ˜„์ด ๊ณต๊ฐœ๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๊ผญ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +- [syuilo/ai](https://github.com/syuilo/ai): Node.js์—์„œ ์‹คํ–‰๋˜๋Š” TypeScript Bot ๊ตฌํ˜„์ฒด + +Bot์„ ๋งŒ๋“ค ๋•Œ ํ”„๋กœํ•„ ์„ค์ •์—์„œ Bot ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผœ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/docs/advanced/plugin-api-reference.md b/src/ko/docs/advanced/plugin-api-reference.md new file mode 100644 index 0000000000..aa8cd01d0c --- /dev/null +++ b/src/ko/docs/advanced/plugin-api-reference.md @@ -0,0 +1,75 @@ +# ํ”Œ๋Ÿฌ๊ทธ์ธ API ์ฐธ์กฐ + +์ด API๋Š” AiScript์˜ ํ™•์žฅ์œผ๋กœ, Mk:๋กœ ์‹œ์ž‘ํ•˜๋Š” API๋Š” Play์—์„œ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Mk:dialog(title text type) + +๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. type์—๋Š” ๋‹ค์Œ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +- info +- success +- warn +- error +- question + +์ƒ๋žตํ•˜๋ฉด info๊ฐ€๋ฉ๋‹ˆ๋‹ค. + +## Mk:confirm(title text type) + +ํ™•์ธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. type์—๋Š” ๋‹ค์Œ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +- info +- success +- warn +- error +- question + +์ƒ๋žตํ•˜๋ฉด question์ด ๋ฉ๋‹ˆ๋‹ค. \ +์‚ฌ์šฉ์ž๊ฐ€ "OK"๋ฅผ ์„ ํƒํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  "์ทจ์†Œ"๋ฅผ ์„ ํƒํ•˜๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. + +## Mk:api(endpoint params) + +Misskey API์— ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ๋์  ์ด๋ฆ„์„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜์— ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐœ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. + +## Mk:save(key value) + +์ž„์˜์˜ ๊ฐ’์— ์ž„์˜์˜ ์ด๋ฆ„์„ ๋ถ™์—ฌ ์˜์†ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ง€์†๋œ ๊ฐ’์€ AiScript ์ปจํ…์ŠคํŠธ๊ฐ€ ๋๋‚˜๋”๋ผ๋„ ๋‚จ์•„ ์žˆ์œผ๋ฉฐ Mk:load์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Mk:load(key) + +Mk:save๋กœ ์ง€์†๋œ ์ง€์ •๋œ ์ด๋ฆ„์˜ ๊ฐ’์„ ์ฝ์Šต๋‹ˆ๋‹ค. + +## Plugin:register_post_form_action(title fn) + +๊ฒŒ์‹œ ์–‘์‹์— ์•ก์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ์•ก์…˜ ์ด๋ฆ„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜์— ์•ก์…˜์ด ์„ ํƒ๋˜์—ˆ์„ ๋•Œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ๊ฒŒ์‹œ ์–‘์‹ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. + +## Plugin:register_note_action(title fn) + +๋…ธํŠธ ๋ฉ”๋‰ด์— ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ํ•ญ๋ชฉ ์ด๋ฆ„์„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜์— ํ•ญ๋ชฉ์ด ์„ ํƒ๋˜์—ˆ์„ ๋•Œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋Œ€์ƒ ๋…ธํŠธ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. + +## Plugin:register_user_action(title fn) + +์‚ฌ์šฉ์ž ๋ฉ”๋‰ด์— ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ํ•ญ๋ชฉ ์ด๋ฆ„์„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜์— ํ•ญ๋ชฉ์ด ์„ ํƒ๋˜์—ˆ์„ ๋•Œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋Œ€์ƒ ์‚ฌ์šฉ์ž ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. + +## Plugin:register_note_view_interruptor(fn) + +UI์— ํ‘œ์‹œ๋˜๋Š” ๋…ธํŠธ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋Œ€์ƒ ๋…ธํŠธ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ๋…ธํŠธ๋ฅผ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. + +## Plugin:register_note_post_interruptor(fn) + +๋…ธํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ๋•Œ ๋…ธํŠธ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋Œ€์ƒ ๋…ธํŠธ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. \ +์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ๋…ธํŠธ๋ฅผ ๋‹ค์‹œ ์”๋‹ˆ๋‹ค. + +## Plugin:open_url(url) + +์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ์ „๋‹ฌ๋œ URL์„ ๋ธŒ๋ผ์šฐ์ €์˜ ์ƒˆ ํƒญ์—์„œ ์—ฝ๋‹ˆ๋‹ค. + +## Plugin:config + +ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์ด ์ €์žฅ๋˜๋Š” ๊ฐ์ฒด. ํ”Œ๋Ÿฌ๊ทธ์ธ ์ •์˜์˜ config์—์„œ ์„ค์ •ํ•œ ํ‚ค๋กœ ๊ฐ’์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. diff --git a/src/ko/docs/api/index.md b/src/ko/docs/api/index.md new file mode 100644 index 0000000000..1989a5edf0 --- /dev/null +++ b/src/ko/docs/api/index.md @@ -0,0 +1,121 @@ +--- +description: 'Misskey๋Š” ํด๋ผ์ด์–ธํŠธ, ์—ฐ๋™ ์›น ์„œ๋น„์Šค, ๋ด‡ ๋“ฑ("์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜"์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค)์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.' +--- + +# Misskey API + +::: ์•ˆ๋‚ด +์ด ๋ฌธ์„œ๋Š” ์•„์ง ๊ตญ๋ฌธ์œผ๋กœ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•„, ์ผ๋ถ€ ์˜๋ฌธ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. + +API ๋ ˆํผ๋Ÿฐ์Šค๋Š” [์—ฌ๊ธฐ](/docs/api/endpoints)๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. +::: + +Misskey๋Š” ํด๋ผ์ด์–ธํŠธ, ์—ฐ๋™ ์›น ์„œ๋น„์Šค, ๋ด‡ ๋“ฑ("์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜"์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค)์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +์ŠคํŠธ๋ฆฌ๋ฐ API๋„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด, ์‹ค์‹œ๊ฐ„ ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: ํŒ +๊ณต์‹ Misskey SDK๋‚˜ ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด ๋ฌธ์„œ์˜ ๋ช‡๋ช‡ ๋‹จ๊ณ„๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋“ฑ API๋ฅผ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์—ฌ๊ธฐ](TODO)๋ฅผ ํ†ตํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”. +::: + +API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ๋จผ์ € API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐ๋œ **์—‘์„ธ์Šค ํ† ํฐ**์„ ์–ป์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +์ด ๋ฌธ์„œ์—์„œ๋Š” ์—‘์„ธ์Šค ํ† ํฐ์„ ์–ป๋Š” ๊ณผ์ •๊ณผ API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. + +## ์—‘์„ธ์Šค ํ† ํฐ ์–ป๊ธฐ + +API๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์•ก์„ธ์Šค ํ† ํฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +์•ก์„ธ์Šค ํ† ํฐ์€ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  API๋ฅผ ํ†ตํ•œ ์ž‘์—…์„ ์ œ์–ดํ•˜๋Š” ์ž๊ฒฉ ์ฆ๋ช… ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. + +::: ํŒ +์‚ฌ์šฉ์ž์™€ ์—‘์„ธ์Šค ํ† ํฐ ์‚ฌ์ด์—๋Š” ํ•œ ๊ฐœ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฐ๊ฒฐ์ด ์กด์žฌํ•˜๋ฉฐ, ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์—‘์„ธ์Šค ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. +::: + +์—‘์„ธ์Šค ํ† ํฐ์€ ์†์‰ฝ๊ฒŒ [์ง์ ‘ ์–ป๊ฑฐ๋‚˜](#์—‘์„ธ์Šค-ํ† ํฐ-์ˆ˜๋™์œผ๋กœ-์ƒ์„ฑํ•˜๊ธฐ) [์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์œ ์ €๋กœ๋ถ€ํ„ฐ ์–ป์„](#์—‘์„ธ์Šค-ํ† ํฐ-์ƒ์„ฑ-์š”์ฒญํ•˜๊ธฐ) ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +### ์—‘์„ธ์Šค ํ† ํฐ ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ + +์—‘์„ธ์Šค ํ† ํฐ์€ Misskey Web์˜ '์„ค์ • > API'์—์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: ๊ฒฝ๊ณ  +์—‘์„ธ์Šค ํ† ํฐ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๊ณต์œ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. +::: + +### ์—‘์„ธ์Šค ํ† ํฐ ์ƒ์„ฑ ์š”์ฒญํ•˜๊ธฐ + +์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์—‘์„ธ์Šค ํ† ํฐ์„ ์–ป์œผ๋ ค๋ฉด, ๋’ค์— ์„ค๋ช…๋˜์–ด ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +#### 1๋‹จ๊ณ„ + +UUID๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”. ์ด UUID๋Š” ์•ž์œผ๋กœ **์„ธ์…˜ ID**๋ผ ๋ถ€๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. + +::: ๊ฒฝ๊ณ  +์ด ์„ธ์…˜ ID๋Š” ๋งค๋ฒˆ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋ฉฐ, ์žฌ์‚ฌ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. +::: + +#### 2๋‹จ๊ณ„ + +์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธ์ฆ ํผ์ด ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ ํผ์€ ์ด๋Ÿฌํ•œ URL๋กœ ํ‘œ์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค: + +```:no-line-numbers +https://{host}/miauth/{session} +``` + +์—ฌ๊ธฐ์—์„œ + +- `{host}`๋Š” ์‚ฌ์šฉ์ž์˜ ์ธ์Šคํ„ด์Šค ํ˜ธ์ŠคํŠธ(์ฃผ๋กœ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค)์ด๊ณ , +- `{session}`์€ ์„ธ์…˜ ID์ž…๋‹ˆ๋‹ค. + +์ด URL์˜ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ช‡๋ช‡ ์˜ต์…˜์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค: + +| ์ด๋ฆ„ | ์„ค๋ช… | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------- | +| `name` | ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„ | +| `icon` | ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ URL | +| `callback` | ์ธ์ฆ ํ›„ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ์•„๊ฐˆ URL์ž…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ `session`์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. | +| `permission` | ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์š”์ฒญํ•˜๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค.
๊ถŒํ•œ์€ `,`๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์š”์ฒญ๋ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ ๋ชฉ๋ก์€ [์—ฌ๊ธฐ](TODO)์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. | + +::: ์˜ˆ์‹œ + +```:no-line-numbers +https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive +``` + +::: + +#### 3๋‹จ๊ณ„ + +์‚ฌ์šฉ์ž๊ฐ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—‘์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด, ๋‹ค์Œ ์–‘์‹์œผ๋กœ POST ์š”์ฒญ์„ ์ „์†กํ•˜๋ฉด ํ† ํฐ์ด ํฌํ•จ๋œ JSON์ด ์‘๋‹ต์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. + +```:no-line-numbers +https://{host}/api/miauth/{session}/check +``` + +์—ฌ๊ธฐ์—์„œ + +- `{host}`๋Š” ์‚ฌ์šฉ์ž์˜ ์ธ์Šคํ„ด์Šค์ด๋ฉฐ +- `{session}`์€ ์„ธ์…˜ ID์ž…๋‹ˆ๋‹ค. + +์‘๋‹ต์— ํฌํ•จ๋œ ํ•ญ๋ชฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: + +| ์ด๋ฆ„ | ์„ค๋ช… | +| ------- | ------------------------- | +| `token` | ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์—‘์„ธ์Šค ํ† ํฐ | +| `user` | ์‚ฌ์šฉ์ž ์ •๋ณด | + +## Using the API + +Once you have your API access token, you can use the API by making requests to the various endpoints. +**All HTTP APIs are POST and both request/response are in JSON format.** + +::: warning +Misskey does not use REST. +::: + +The access token is included in the request body JSON at the parameter `i`. + +For more information on the API, see the [API Reference](TODO). + +In addition to the HTTP API, Misskey also provides a streaming API. More information about the streaming API can be found [here](./streaming/). + +::: ํŒ +Your Misskey instance also provides API documentation at `/api-doc`. +::: diff --git a/src/ko/docs/api/streaming/channel/global-timeline.md b/src/ko/docs/api/streaming/channel/global-timeline.md new file mode 100644 index 0000000000..37b855a166 --- /dev/null +++ b/src/ko/docs/api/streaming/channel/global-timeline.md @@ -0,0 +1,20 @@ +--- +description: "Channel where nots from the global timeline are streamed." +--- + +# `globalTimeline` +Channel where nots from the global timeline are streamed. + +## Parameters +none + +## Events +### `note` + + +Occurs when a new note is added to the global timeline. + +## Operations +none diff --git a/src/ko/docs/api/streaming/channel/home-timeline.md b/src/ko/docs/api/streaming/channel/home-timeline.md new file mode 100644 index 0000000000..7d2a052882 --- /dev/null +++ b/src/ko/docs/api/streaming/channel/home-timeline.md @@ -0,0 +1,20 @@ +--- +description: "Channel where nots from the home timeline are streamed." +--- + +# `homeTimeline` +Channel where nots from the home timeline are streamed. + +## Parameters +none + +## Events +### `note` + + +Occurs when a new note is added to the home timeline. + +## Operations +none diff --git a/src/ko/docs/api/streaming/channel/hybrid-timeline.md b/src/ko/docs/api/streaming/channel/hybrid-timeline.md new file mode 100644 index 0000000000..3caf56d5bb --- /dev/null +++ b/src/ko/docs/api/streaming/channel/hybrid-timeline.md @@ -0,0 +1,20 @@ +--- +description: "Channel where nots from the social timeline are streamed." +--- + +# `hybridTimeline` +Channel where nots from the social timeline are streamed. + +## Parameters +none + +## Events +### `note` + + +Occurs when a new note is added to the social timeline. + +## Operations +none diff --git a/src/ko/docs/api/streaming/channel/index.md b/src/ko/docs/api/streaming/channel/index.md new file mode 100644 index 0000000000..d119ec88e3 --- /dev/null +++ b/src/ko/docs/api/streaming/channel/index.md @@ -0,0 +1,3 @@ +# Channel list + + diff --git a/src/ko/docs/api/streaming/channel/local-timeline.md b/src/ko/docs/api/streaming/channel/local-timeline.md new file mode 100644 index 0000000000..518cbd59db --- /dev/null +++ b/src/ko/docs/api/streaming/channel/local-timeline.md @@ -0,0 +1,20 @@ +--- +description: "Channel where nots from the local timeline are streamed." +--- + +# `localTimeline` +Channel where nots from the local timeline are streamed. + +## Parameters +none + +## Events +### `note` + + +Occurs when a new note is added to the local timeline. + +## Operations +none diff --git a/src/ko/docs/api/streaming/channel/main.md b/src/ko/docs/api/streaming/channel/main.md new file mode 100644 index 0000000000..1d961497d3 --- /dev/null +++ b/src/ko/docs/api/streaming/channel/main.md @@ -0,0 +1,93 @@ +--- +description: "This channel provides basic information." +--- + +# `main` +This channel provides basic information. + +## Parameters +none + +## Events +### `notification` + + +Occurs when you receive a notification. + +### `mention` + + +Occurs when a message is sent. + +### `reply` + + +Occurs when a reply is received. + +### `renote` + + +Occurs when one of your notes is renoted. + +### `follow` + + +Occurs when you follow another user. + +### `followed` + + +Occurs when another user follows you. + +### `unfollow` + + +Occurs when you unfollow another user. + +### `messagingMessage` + + +Occurs when a chat message is received. + +### `readAllNotifications` +Occurs when all notifications have been read. + +### `unreadNotification` +Occurs when there is a new notification. + +### `unreadMention` +Occurs when there is a new mention. + +### `readAllUnreadMentions` +Occurs when all mentions have been seen. + +### `unreadSpecifiedNote` +Occurs when there is a new direct note. + +### `readAllUnreadSpecifiedNotes` +Occurs when all direct notes have been read. + +### `unreadMessagingMessage` +Occurs when there is a new chat message. + +### `readAllMessagingMessages` +Occurs when all chat messages have been read. + +## Operations +none diff --git a/src/ko/docs/api/streaming/index.md b/src/ko/docs/api/streaming/index.md new file mode 100644 index 0000000000..fb3ea1a99c --- /dev/null +++ b/src/ko/docs/api/streaming/index.md @@ -0,0 +1,216 @@ +--- +description: "The streaming API provides real-time information (e.g., new posts in the timeline, reactions, followers, etc.) and various other operations." +--- + +# Streaming API + +::: ํŒ +์ด ๋ฌธ์„œ๋Š” ์•„์ง ๊ตญ๋ฌธ์œผ๋กœ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•„ ์˜๋ฌธ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. + +์ฝ๊ธฐ ์ „์—, [Misskey API ๋ฌธ์„œ](../)๋ฅผ ๋จผ์ € ์ฝ๊ณ  ์™€ ์ฃผ์„ธ์š”. +::: + +The streaming API provides real-time information (e.g., new posts in the timeline, reactions, followers, etc.) and various other operations. + +## Connecting to the stream. + +To use the streaming API, you have to connect to the Misskey server using **websocket**. + +The websocket URL looks like this: + +```:no-line-numbers +wss://{host}/streaming?i={token} +``` + +where + +- `{host}` is the host of the instance you want to connect to. +- `{token}` is the users access token. + +::: ํŒ +You can also connect without the access token, but this will limit the information you receive and operations you can perform. +::: + +Once you are connected to the stream, you can subscribe to posts as described below, but at this stage you cannot, for example, receive new posts from your timeline. + +To receive such events, you need to join a **channel** on the stream, as described below. + +**All data should be encoded as JSON.** + +## Channel + +Misskey's streaming API has the concept of channels. This is a mechanism for separating the information to be sent and received. +By joining channels on the stream, you will be able to receive various kinds of information and send information. + +::: ํŒ +You can join multiple channels simultaneously on a single stream connection. +::: + +The following sections describe how to use the channels. To see what channels are available, please refer to the [Channel List](./channel/index.md). + +### Joining a channel + +To join a channel, send the following JSON data on the stream: + +```js +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +where + +- `channel` is the name of the channel you want to connect to. The types of channels are described later in this section. +- `id` is an arbitrary ID for interacting with that channel. This is necessary to identify which channel the message is coming from, because a stream contains multiple channels. This ID can be something like a UUID or a random number. +- `params` are parameters required when joining a channel. Different channels require different parameters when connecting. When connecting to a channel that does not require parameters, this property can be omitted. + +::: ํŒ +The ID is not per channel but per channel connection, because a channel may be needed multiple times but with different parameters. +::: + +### Receiving messages from channels + +For example, a timeline channel will send out a message when there is a new post. By receiving the message, you will know in real time that a new post has been published on your timeline. + +When a channel issues a message, the following JSON data is sent: + +```js +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +where + +- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you know from which channel (instantiation) this message is coming. +- `type` is the type of message. The types of messages that get sent depend on the channel. +- `body` holds the content of the message. The content of the message depends on the channel. + +### Sending a message to a channel + +On some channels, it is also possible to send messages and perform other operations in addition to receiving messages. + +To send a message to a channel, send the following JSON data to the stream: + +```js +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +where + +- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you determine which channel (instantiation) the message is for. +- `type` is the type of message. Different channels accept different types of messages. +- `body` contains the content of the message. Different channels accept different message contents. + +### Disconnecting from a channel + +To disconnect from a channel (instantiation), send the following JSON data to the stream: + +```js +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +where + +- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you determine which channel (instantiation) you want to disconnect from. + +## Capturing Notes + +Misskey provides a mechanism called note capture. This is the ability to receive a stream of events for a given note. + +For example, let's say you grab a timeline and display it to your users. Let's say someone reacts to one of the posts in the timeline. +However, since the client has no way of knowing that a note has been reacted to, it is not possible to reflect the reaction in the timeline in real time. + +To solve this problem, Misskey provides a note capture mechanism. When you capture a note, you will receive events related to that note, and you can display reactions to it in real time. + +The following sections describe how to use the note capture function. To see what kind of capture events are available, see the [Capture Events List](./note-capture-events.md). + +### Capturing a Note + +To capture a note, send the following JSON data to the stream: + +```js +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +where + +- `id` is the ID of the note you want to capture. + +When you send this message, you are asking Misskey to capture the note, and events related to that note will then be streamed to you. + +For example, when a note gets a reaction, you will see a message like the following: + +```js +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +where + +- `body.id` will be set to the ID of the post that triggered the event. +- `body.type` will be the type of the event. +- `body.body` will contain the details of the event. + +### Un-capturing a Note + +If you no longer want to receive events related to a note, such as when it no longer appears on your screen, you can remove the capture request. + +Send the following JSON data: + +```js +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +where + +- `id` is the ID of the note you want to uncapture. + +Once you send this message, no more events related to that note will be sent to you. diff --git a/src/ko/docs/api/streaming/note-capture-events.md b/src/ko/docs/api/streaming/note-capture-events.md new file mode 100644 index 0000000000..d133aa672e --- /dev/null +++ b/src/ko/docs/api/streaming/note-capture-events.md @@ -0,0 +1,48 @@ +# Note Capture Events + +## `reacted` + + +Occurs when a reaction is made to the target note. + +## `pollVoted` + + +Occurs when the survey attached to the target note is voted on. + +## `deleted` + + +Occurs when the target note is deleted. diff --git a/src/ko/docs/apps.md b/src/ko/docs/apps.md new file mode 100644 index 0000000000..07273c0fbb --- /dev/null +++ b/src/ko/docs/apps.md @@ -0,0 +1,19 @@ +--- +description: "Misskey๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์•ฑ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค." +--- + +# ์•ฑ + +Misskey๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์•ฑ(ํด๋ผ์ด์–ธํŠธ)์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. + +๋ธŒ๋ผ์šฐ์ €์—์„œ Misskey ์ธ์Šคํ„ด์Šค์— ๋กœ๊ทธ์ธํ•˜๋ฉด ํƒ€์ž„๋ผ์ธ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์€ Misskey์˜ ์œ ์ผํ•œ ๊ณต์‹ ํด๋ผ์ด์–ธํŠธ, **Misskey Web**์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ•˜๋Š” ์•ฑ์ด์ง€๋งŒ PWA์—๋„ ๋Œ€์‘, ๋ชจ๋ฐ”์ผ OS์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [์—ฌ๊ธฐ](TODO)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. Misskey ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. + +Misskey Web์— ์ต์ˆ™ํ•ด์กŒ๋‹ค๋ฉด ์œ ์ €๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ๋น„๊ณต์‹ ์•ฑ์„ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์•ฑ์„ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. + +- **Kaiteki** (์›น, Android, Windows, Linux): ๊ด‘๋ฒ”์œ„ํ•œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ† ๋ˆ, Pleroma, ํŠธ์œ„ํ„ฐ์—๋„ ๋Œ€์‘. [๊ณต์‹ ์‚ฌ์ดํŠธ](https://craftplacer.moe/projects/kaiteki/) [์†Œ์Šค ์ฝ”๋“œ](https://github.com/Kaiteki-Fedi/Kaiteki) +- **Milktea** (Android): ํƒ€์ž„๋ผ์ธ๊ณผ ํŠน์ • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํƒญ์—์„œ ๋น ๋ฅด๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณ„๋ช…์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. [Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient) [์†Œ์Šค ์ฝ”๋“œ](https://github.com/pantasystem/Milktea) +- **Misscat** (iOS): ์Šค๋งˆํŠธํฐ์— ์ ํ•ฉํ•œ ์ง๊ด€์ ์ธ ์กฐ์ž‘์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์—ˆ์œผ๋‚˜, 2021๋…„ 5์›”์„ ๋์œผ๋กœ ๊ฐœ๋ฐœ์ด ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. [๊ณต์‹ ์‚ฌ์ดํŠธ](https://yuiga.dev/misscat/) [App Store](https://apps.apple.com/app/id1505059993) [์†Œ์Šค ์ฝ”๋“œ](https://github.com/YuigaWada/MissCat) +- **SocialHub** (iOS): Misskey, ๋งˆ์Šคํ† ๋ˆ, ํŠธ์œ„ํ„ฐ, Slack, Tumblr ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ์œ ๋ฃŒ ์•ฑ์ž…๋‹ˆ๋‹ค. [๊ณต์‹ ์‚ฌ์ดํŠธ](https://uakihir0.github.io/socialhub/) [App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582) +- **Subway Tooter** (Android): ๊ฐ•๋ ฅํ•œ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ, ์—ฌ๋Ÿฌ ํƒ€์ž„๋ผ์ธ์„ ๋ณ‘๋ ฌ๋กœ ํ‘œ์‹œํ•˜๋Š” ํƒœ๋ธ”๋ฆฟ ๋ชจ๋“œ ๋“ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ† ๋ˆ ํด๋ผ์ด์–ธํŠธ์ง€๋งŒ, Misskey์—๋„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค. [Google Play](https://play.google.com/store/apps/details?id=jp.juggler.subwaytooter) [์†Œ์Šค ์ฝ”๋“œ](https://github.com/tateisu/SubwayTooter) + +๊ทธ๋Ÿผ์—๋„, Misskey๋Š” ํ™œ๋ฐœํ•˜๊ฒŒ ๊ธฐ๋Šฅ์ด ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์–ด ์ตœ์‹  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Œ€์‘์ด ๋Šฆ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ๊ณ ์ง‘์ด ์—†๋‹ค๋ฉด Misskey Web์˜ ์ด์šฉ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. diff --git a/src/ko/docs/faq.md b/src/ko/docs/faq.md new file mode 100644 index 0000000000..62226deaf8 --- /dev/null +++ b/src/ko/docs/faq.md @@ -0,0 +1,46 @@ +--- +description: 'Misskey๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.' +--- + +# ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ +์—ฌ๊ธฐ์—์„œ๋Š” Misskey๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
+Misskey ํ”„๋กœ์ ํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ์€ [์—ฌ๊ธฐ์—์„œ](./misskey)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Android/iOS์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‚˜์š”? +Misskey ํ”„๋กœ์ ํŠธ์—์„œ ํŠน์ • OS๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—†์ง€๋งŒ, ์ œ 3์ž์— ์˜ํ•ด ๊ฐœ๋ฐœ๋œ ์„œ๋“œํŒŒํ‹ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ [์—ฌ๊ธฐ](./apps)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +๋‹จ, ์„œ๋“œํŒŒํ‹ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Misskey์˜ ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๊ณต์‹ Misskey Web ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ด์šฉํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ณต์‹ Web ํด๋ผ์ด์–ธํŠธ๋Š” PWA๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด ์ผ๋ฐ˜์ ์ธ ์•ฑ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ [์—ฌ๊ธฐ](./todo)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Mastodon์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋‚˜์š”? +Misskey์€ Mastodon์˜ API์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์•„, ์ผ๋ถ€๋ฅผ ์ œ์™ธํ•˜๋ฉด Mastodon์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์›น ํด๋ผ์ด์–ธํŠธ๋กœ๋Š” Misskey๋ฅผ ์ด์šฉํ•˜์‹ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +Misskey ๊ณต์‹ ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ด์šฉํ•ด ์ฃผ์‹ญ์‹œ์˜ค. + +## misskey.io๋Š” Misskey ๊ณต์‹ ์ธ์Šคํ„ด์Šค์ธ๊ฐ€์š”? +misskey.io๋Š” Misskey ๊ณต์‹ ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹ˆ๋ฉฐ, Misskey ํ”„๋กœ์ ํŠธ์™€ ๋ณ„๊ฐœ๋กœ ์šด์˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. misskey.io๋Š” ํŠน์ •ํ•œ ์ฃผ์ œ ์—†์ด ๋‹ค์–‘ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์˜ค๊ฐ€๋ฉฐ, ๊ฐ€๋ณ๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” Misskey ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. + +## 'Misskey'๋ผ๋Š” ์ด๋ฆ„์˜ ์œ ๋ž˜๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? +syuilo๊ฐ€ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๊ตฌ์ƒํ•  ๋•Œ, ์šฐ์—ฐํžˆ ๋“ฃ๊ณ  ์žˆ๋˜ May'n์˜ ๋…ธ๋ž˜ 'Brain Diver'์˜ ๊ฐ€์‚ฌ์—์„œ ๋”ฐ ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. + +## ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์œ ์ €๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์‹ถ์–ด์š”! +๋ฉ”๋‰ด์—์„œ ๊ฒ€์ƒ‰์„ ์„ ํƒํ•˜์—ฌ, ํŒ”๋กœ์šฐํ•˜๋ ค๋Š” ์œ ์ €์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์œ ์ €๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €์˜ ์ฃผ์†Œ๋Š” ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ, **@๋กœ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ช…**๊ณผ **์œ ์ €๊ฐ€ ์†ํ•œ ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ๋ช…**์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. + +์˜ˆ๋ฅผ ๋“ค์–ด, `misskey.io`์— ์žˆ๋Š” `@syuilo`๋ผ๋Š” ์œ ์ €๋ฅผ ์ฐพ์„ ๋•Œ์—๋Š”, `@syuilo@misskey.io`์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. + +Misskey๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Mastodon์ด๋‚˜ Pleroma๋ฅผ ๋น„๋กฏํ•œ ๋งŽ์€ ๋ถ„์‚ฐํ˜• ํ”Œ๋žซํผ์—์„œ ์ด๋Ÿฌํ•œ ์ฃผ์†Œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์œ ์ €๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Renote ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ์‹ถ์–ด์š”! +Renote ์‹œ๊ฐ ํ‘œ์‹œ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” 3์  ๋ฉ”๋‰ด("...")๋ฅผ ๋ˆŒ๋Ÿฌ, 'Renote ์ทจ์†Œ'๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์„ธ์š”.
+Renote์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ [์—ฌ๊ธฐ](../features/note)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## URL์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์—†๋‚˜์š”? +MFM(Markup language For Misskey)๋ผ๋Š” Misskey๋งŒ์˜ ๋…์ž์ ์ธ ๋งˆํฌ์—… ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ, ๋ณด์ด๊ณ  ์‹ถ์ง€ ์•Š์€ URL์„ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ ์ธ์Šคํ„ด์Šค์˜ MFM ๋„์›€๋ง์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. ์ฃผ์†Œ์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์‹œ๋ฉด ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `https://<๋‚˜์˜ ์ธ์Šคํ„ด์Šค ํ˜ธ์ŠคํŠธ ๋ช…>/mfm-cheat-sheet` + +## ์ปค์Šคํ…€ ์ด๋ชจ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์–ด์š”! +์ปค์Šคํ…€ ์ด๋ชจ์ง€์˜ ์ถ”๊ฐ€, ํŽธ์ง‘, ์‚ญ์ œ๋Š” ์ž์‹ ์ด ์†ํ•œ ์ธ์Šคํ„ด์Šค์˜ ๊ด€๋ฆฌ์ž๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ์ด๋ชจ์ง€์— ๋Œ€ํ•œ ์š”์ฒญ์€ ๊ฐ ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. + +## ๋ด‡์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ์–ด์š”! +Misskey API๋ฅผ ์ด์šฉํ•˜๋Š” ๋ด‡์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [์—ฌ๊ธฐ](../advanced/develop-bot)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## ๋…ธํŠธ ๋ฒˆ์—ญ ๊ธฐ๋Šฅ์€ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”? +Misskey ๊ธฐ๋ณธ ๋ฒˆ์—ญ ๊ธฐ๋Šฅ์€ [DeepL์˜ ๋ฒˆ์—ญ ์„œ๋น„์Šค](https://www.deepl.com/)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +(2022๋…„ 9์›” ๊ธฐ์ค€ ํ•œ๊ตญ์–ด ๋ฏธ์ง€์›) diff --git a/src/ko/docs/features/ads.md b/src/ko/docs/features/ads.md new file mode 100644 index 0000000000..69755f1db4 --- /dev/null +++ b/src/ko/docs/features/ads.md @@ -0,0 +1,13 @@ +# ๊ด‘๊ณ  + +Misskey๋Š” ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค ํƒ€์ž„๋ผ์ธ ๋ฐ ๊ธฐํƒ€ ์œ„์น˜์— ๊ด‘๊ณ ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ด‘๊ณ ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์„ ํด๋ฆญํ•˜๋ฉด ๊ด‘๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋นˆ๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: ํŒ +์ธ์Šคํ„ด์Šค์— ํ‘œ์‹œ๋˜๋Š” ์ด ๊ด‘๊ณ  ์ˆ˜๊ฐ€ ์ ์€ ๊ฒฝ์šฐ ๊ด‘๊ณ  ํ‘œ์‹œ ๋นˆ๋„๋ฅผ ์ค„์ด๋„๋ก ์„ ํƒํ•œ ํ›„์—๋„ ๊ด‘๊ณ ๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +::: + +## ๊ด‘๊ณ  ๊ตฌ์„ฑ(๊ด€๋ฆฌ์ž) + +์ธ์Šคํ„ด์Šค์˜ ์ œ์–ดํŒ์—์„œ ๊ด‘๊ณ ๋ฅผ ์ถ”๊ฐ€, ํŽธ์ง‘ ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์—ฌ๊ธฐ์—์„œ ๊ด‘๊ณ ์˜ ์ด๋ฏธ์ง€, ๊ด‘๊ณ ์˜ URL ์ฃผ์†Œ, ๋ชจ์–‘ ๋ฐ ํ‘œ์‹œ ๋น„์œจ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. \ No newline at end of file diff --git a/src/ko/docs/features/antenna.md b/src/ko/docs/features/antenna.md new file mode 100644 index 0000000000..c566026cc3 --- /dev/null +++ b/src/ko/docs/features/antenna.md @@ -0,0 +1,8 @@ +# ์•ˆํ…Œ๋‚˜ + +์•ˆํ…Œ๋‚˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํƒ€์ž„๋ผ์ธ์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์ž์œ ๋กญ๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์กฐ๊ฑด์— ๋งž๋Š” ๋…ธํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. + +์•ˆํ…Œ๋‚˜ ์กฐ๊ฑด์—๋Š” ํŠน์ • ๋‹จ์–ด ๋ฐ ํƒœ๊ทธ๋ฅผ ๋‹ค์–‘ํ•œ ์กฐํ•ฉ์œผ๋กœ ํฌํ•จ/์ œ์™ธํ•˜๋Š” ์กฐ๊ฑด ๋ฐ ๊ธฐํƒ€ ์˜ต์…˜์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์•ˆํ…Œ๋‚˜์— ์„ค์ •ํ•œ ์กฐ๊ฑด๊ณผ ๋งž๋Š” ๋…ธํŠธ๊ฐ€ ๊ฒŒ์‹œ๋˜๋ฉด ํ•ด๋‹น ์•ˆํ…Œ๋‚˜์˜ ํƒ€์ž„๋ผ์ธ์— ๋…ธํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. + +์•ˆํ…Œ๋‚˜๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์•ˆํ…Œ๋‚˜ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ "์ถ”๊ฐ€"๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ต์…˜์„ ์ž…๋ ฅํ•˜์—ฌ ์•ˆํ…Œ๋‚˜๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜์‹ญ์‹œ์˜ค. \ No newline at end of file diff --git a/src/ko/docs/features/charts.md b/src/ko/docs/features/charts.md new file mode 100644 index 0000000000..9441b1da5d --- /dev/null +++ b/src/ko/docs/features/charts.md @@ -0,0 +1,72 @@ +# ์ฐจํŠธ + +Misskey๋Š” ์ธ์Šคํ„ด์Šค์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ฐจํŠธ๋ฆ‰ ๋งŒ๋“ค์–ด ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์ฐจํŠธ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ๋Ÿ‰, ์—ฐํ•ฉ ์ƒํƒœ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +์ธ์Šคํ„ด์Šค์˜ ์ฐจํŠธ๋Š” _์ธ์Šคํ„ด์Šค ์ •๋ณด_ ํŽ˜์ด์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด์˜ ์ธ์Šคํ„ด์Šค ๋กœ๊ณ ๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”) + +์•„๋ž˜๋Š” ๊ฐ ์ฐจํŠธ์˜ ์„ค๋ช…๊ณผ ๊ทธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. + +## ์—ฐํ•ฉ ์ฐจํŠธ + +์ด ์ฐจํŠธ๋Š” ์—ฐํ•ฉํ•œ ์ธ์Šคํ„ด์Šค์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### Pub + +์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ํ™œ๋™์„ ์ „์†กํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Sub + +์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ํ™œ๋™์„ ์ˆ˜์‹ ํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Received + +์ด ์ธ์Šคํ„ด์Šค๋กœ ํ™œ๋™์„ ์ „์†กํ•œ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Delivered + +์ด ์ธ์Šคํ„ด์Šค๋กœ๋ถ€ํ„ฐ ํ™œ๋™์„ ์ „์†ก๋ฐ›์€ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Stalled + +ํ™œ๋™์˜ ์ „์†ก ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +## ํ™œ์„ฑ ์‚ฌ์šฉ์ž ์ฐจํŠธ + +์ด ์ธ์Šคํ„ด์Šค์˜ ์‚ฌ์šฉ์ž ํ™œ๋™ ์ฐจํŠธ์ž…๋‹ˆ๋‹ค. + +### Read & Write + +์‚ฌ์šฉ์ž๊ฐ€ ์ฝ๊ณ  ์“ด ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Read + +์‚ฌ์šฉ์ž๊ฐ€ ์ฝ์€ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### Write + +์‚ฌ์šฉ์ž๊ฐ€ ์“ด ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### < Week + +1์ฃผ ์ด๋‚ด์— ์ƒ์„ฑ๋œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### < Month + +1๊ฐœ์›” ์ด๋‚ด์— ์ƒ์„ฑ๋œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### < Year + +1๋…„ ์ด๋‚ด์— ์ƒ์„ฑ๋œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### > Week + +์ƒ์„ฑ ํ›„ 1์ฃผ ์ด์ƒ ๊ฒฝ๊ณผํ•œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### > Month + +์ƒ์„ฑ ํ›„ 1๊ฐœ์›” ์ด์ƒ ๊ฒฝ๊ณผํ•œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. + +### > Year + +์ƒ์„ฑ ํ›„ 1๋…„ ์ด์ƒ ๊ฒฝ๊ณผํ•œ ๊ณ„์ •์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. diff --git a/src/ko/docs/features/clip.md b/src/ko/docs/features/clip.md new file mode 100644 index 0000000000..27d1da40bb --- /dev/null +++ b/src/ko/docs/features/clip.md @@ -0,0 +1,10 @@ +# ํด๋ฆฝ + +ํด๋ฆฝ์€ ๋…ธํŠธ ๋ชจ์Œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. +๋…ธํŠธ๋Š” ์ž์‹  ๋˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ฒŒ์‹œํ•œ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. +์—ฌ๋Ÿฌ ํด๋ฆฝ์„ ๋งŒ๋“ค๊ณ  ๊ฐ๊ฐ์— ์ด๋ฆ„๊ณผ ์„ค๋ช…์„ ์ง€์ •ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ฆฝ์„ ๊ณต๊ฐœํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. + +ํด๋ฆฝ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ํด๋ฆฝ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ "์ถ”๊ฐ€"๋ฅผ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค. + +ํด๋ฆฝ์— ๋…ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋…ธํŠธ ๋ฉ”๋‰ด์—์„œ "ํด๋ฆฝ" ์˜ต์…˜์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋…ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ํด๋ฆฝ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. diff --git a/src/ko/docs/features/custom-emoji.md b/src/ko/docs/features/custom-emoji.md new file mode 100644 index 0000000000..919681705e --- /dev/null +++ b/src/ko/docs/features/custom-emoji.md @@ -0,0 +1,8 @@ +# ์ปค์Šคํ…€ ์ด๋ชจ์ง€ + +์ปค์Šคํ…€ ์ด๋ชจ์ง€๋Š” ์ธ์Šคํ„ด์Šค์—์„œ ์ œ๊ณต๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ด๋ชจ์ง€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. +๋…ธํŠธ, ๋ฐ˜์‘, ์ฑ„ํŒ…, ํ”„๋กœํ•„, ์ด๋ฆ„ ๋“ฑ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์ปค์Šคํ…€ ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด (๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ) ์ด๋ชจ์ง€ ์„ ํƒ๊ธฐ๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ `:`์„ ์ž…๋ ฅํ•ด ์ด๋ชจ์ง€ ์ถ”์ฒœ์„ ํ‘œ์‹œํ•˜์„ธ์š”. +ํ…์ŠคํŠธ์—์„œ `:foo:`๊ฐ€ ํ™•์ธ๋˜๋ฉด, `foo` ๋ถ€๋ถ„์ด ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ์ด๋ฆ„์œผ๋กœ ์ธ์‹๋˜์–ด ์ ์ ˆํ•œ ์ด๋ชจ์ง€๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. + +Misskey ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ `/emojis`๋ฅผ ๋ฐฉ๋ฌธํ•ด ๊ฐ€๋Šฅํ•œ ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/docs/features/deck.md b/src/ko/docs/features/deck.md new file mode 100644 index 0000000000..b062435411 --- /dev/null +++ b/src/ko/docs/features/deck.md @@ -0,0 +1,30 @@ +# ๋ฑ UI + +Deck UI is one of the available UIs in Misskey. It is characterized by the ability to build highly customizable and informative UIs by displaying multiple views, called "columns", side by side. +The deck option is only available on sufficiently large screens like a laptop computer. + +## Adding Columns + +You can add a column by right-clicking on the deck background and selecting "Add Column". You can also click the '+' icon on the right side of the screen. + +## Move Columns + +Columns can be repositioned by drag-and-drop or by using the column menu "Move" option (right-click on the column header). + +## Horizontal Division of Columns + +Columns can be arranged vertically as well as horizontally. Open the column's menu and select "Stack with the left column" to move the current column below the column to its left. +To unstack a column, select "Pop column to the right" from the column's menu. + +## Configure Column Layout + +Select "Column settings" in the column menu to edit column layout settings. Here you can change the column name and width. +If the colum is set to flexible then it will expand beyond its set width to fill remaining horizontal space on the screen. + +## Deck Settings + +Deck-related settings can be changed in the settings menu (click the gear icon in the bottom right of the screen. + +## Deck Profiles + +You can create/load a deck profile by clicking on the menu in the top right of the screen. Choose "New profile" to create a new blank deck to customize. Select another profile to switch to it. The trash button deletes the current profile. diff --git a/src/ko/docs/features/drive.md b/src/ko/docs/features/drive.md new file mode 100644 index 0000000000..6ee9f756ad --- /dev/null +++ b/src/ko/docs/features/drive.md @@ -0,0 +1,23 @@ +# ๋“œ๋ผ์ด๋ธŒ +Drive is a feature that allows you to manage your files on Misskey. + +::: ํŒ +Technically speaking, the drive can be seen as an interface where all the files are centrally managed on Misskey's system, which is also open to users. +::: + +You can upload any file directly on the Drive page on Misskey Web, and any images you have set as your avatar or files you have attached to your notes will also be uploaded to the Drive. + +Files uploaded to the drive can be downloaded at any time, or files can be reused by using 'attach files from drive' when creating notes. + +You can also create folders on your drive to organise multiple files together. + +::: warning +At the moment, when you delete a file from your drive, **all the content (notes, pages, etc.)** attached to that file will also be deleted. +::: + +## Warning (NSFW) +Warning or NSFW (Not safe for work) is a flag that can be set on files in your drive. +Files that have been flagged as unsafe to view will not be displayed without user interaction. +This flag can be used, for example, to prevent images that are not suitable for viewing in the workplace or in public places from suddenly appearing. + +This flag can be toggled on and off manually, or it can be set at a moderator's discretion. diff --git a/src/ko/docs/features/favorite.md b/src/ko/docs/features/favorite.md new file mode 100644 index 0000000000..16593f1135 --- /dev/null +++ b/src/ko/docs/features/favorite.md @@ -0,0 +1,7 @@ +# ์ฆ๊ฒจ์ฐพ๊ธฐ + +This function allows you to mark a [note](./note) as a favorite. +You can view your favorited notes on the [Favorite](./my/favorites) page. +Other users will not be notified that you have added their note to your favorites, and only you can see your favorites. + +To favorite a note, press "Add to favorites" in the note's menu. To un-favorite a note, click "Remove from favorites" in the note's menu. diff --git a/src/ko/docs/features/follow.md b/src/ko/docs/features/follow.md new file mode 100644 index 0000000000..8430fa2649 --- /dev/null +++ b/src/ko/docs/features/follow.md @@ -0,0 +1,5 @@ +# ํŒ”๋กœ์šฐ + +When you follow a user, you will see their posts on your home timeline; however, their replies to other users will not be included. + +To follow a user, click the "Follow" button on the user's profile page. To unfollow a user, click the button again. diff --git a/src/ko/docs/features/index.md b/src/ko/docs/features/index.md new file mode 100644 index 0000000000..a4cc9d6868 --- /dev/null +++ b/src/ko/docs/features/index.md @@ -0,0 +1,3 @@ +# ๊ธฐ๋Šฅ + + diff --git a/src/ko/docs/features/mfm.md b/src/ko/docs/features/mfm.md new file mode 100644 index 0000000000..d806bd5159 --- /dev/null +++ b/src/ko/docs/features/mfm.md @@ -0,0 +1,67 @@ +--- +description: 'MFM is a dedicated markup language that can be used in various places on Misskey.' +--- + +# MFM +MFM, which stands for Misskey Flavoured Markdown, is a dedicated markup language that can be used in various places on Misskey. + +::: tip +Some of the syntax is compatible with Markdown. +::: + +## examples of where misskey is allowed +- note body +- content warnings +- user name +- user profile + +## Syntax +### Mentions +::: tip +For more information about Mentions, see [here](. /mention.md). +::: + +```:no-line-numbers +@alice +``` +```:no-line-numbers +@alice@example.com +``` + +### Hashtags +::: tip +For more information about hashtags, see [here](. /hashtag.md). +::: + +```:no-line-numbers +#misskey +``` + +### Custom Emoji +::: tip +For more information about custom emoji, see [here](./custom-emoji.md). +::: + +```:no-line-numbers +:misskey: +``` + +### Links +```:no-line-numbers +[example link](https://example.com) +``` + +### Bold +```:no-line-numbers +**Bold** +``` + +--- + +::: tip +More available syntax can be found in the **MFM cheat sheet** provided by the Misskey web UI under `/mfm-cheat-sheet` on your instance. +::: + +## Information for Developers +The parser implementation of MFM is available as a library, making it easier to embed MFM in your clients. +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - parser implementation in JavaScript diff --git a/src/ko/docs/features/mute-and-block.md b/src/ko/docs/features/mute-and-block.md new file mode 100644 index 0000000000..f7366aecea --- /dev/null +++ b/src/ko/docs/features/mute-and-block.md @@ -0,0 +1,54 @@ +# ๋ฎคํŠธ ๋ฐ ์ฐจ๋‹จ +If you don't like a user, you can mute them to make them disappear from your timelines. +Alternatively, you can block a user to prevent them from seeing your content or engaging with you in any way. +People won't know that you have muted them, but they will know that you have blocked them. It is up to you to decide which option you prefer. + +::: ํŒ +Mute and block can be used together. +::: + +::: warning +Please consider reporting any unwanted users who violate the Terms of Use to the moderators. +::: + +In Misskey Web, you can see the list of users you have muted or blocked by going to Settings > Mute & Block. + +## Muting +If you mute a user, the following content about that user will no longer appear in Misskey: + +- the user's posts (and replies and Renotes to those posts) in the timeline and post search results +- notifications from that user +- message history with the user in Misskey chat +- etc. + +To mute a user in Misskey Web, open the menu on the user page of the user in question and press the "Mute" button. + +::: ํŒ +They will not be notified that you have muted them, and they will not know that you have muted them. +::: + +## Blocking + +If you block a user, they will not be able to see your content and they will not be able to do any the following actions: + +- follow you +- add to a user list +- reply or renote +- react or vote in a poll +- send a message +- etc. + +Also, + +- if the user is already following you when you block them, they will unfollow you. +- if the user already has you in their user list when you block them, you will be removed from that list. + +To block a user on Misskey Web, open the menu on the user page of the user in question and press the "Block" button. + +::: warning +You will not be notified that you have been blocked, but you will know indirectly that you have been blocked because you will not be able to take any of the above actions, such as following someone. +::: + +::: warning +The other person will not be able to see your content, but they will be able to see it if they switch accounts or log out. This is only a simple, but useful feature. +::: diff --git a/src/ko/docs/features/note.md b/src/ko/docs/features/note.md new file mode 100644 index 0000000000..6c9de1232d --- /dev/null +++ b/src/ko/docs/features/note.md @@ -0,0 +1,70 @@ +# ๋…ธํŠธ +Notes are a central concept within Misskey, and refer to content that may include text, images, surveys and more that has been posted to Misskey. In this context, "to note" is also used as a verb refering to the creation of a note. + +By composing a note, it will be added to the [timeline](./timeline) and become visible by your followers and other users from your server. + +On Misskey, it is also possible to add [Reactions](./reaction) to notes.In addition to that, you can reply to or quote notes. + +By adding a note to your [Favorites](./favorite), you can easily look back at it at a later point in time. + +## Composing notes +To compose a note, press the button with a pencil icon on the upper part of your screen to open the posting form.Enter the content you want to post in the form, and press the "Note" button to publish it. Notes can contain text as well as files such as images or videos and also [Surveys](./poll).In addition, by using [MFM](./mfm) within your text, you can additionally include [Mentions](./mention) and [Hashtags](./hashtag). There are also other settings such as CW or note visibility (explained later). + +::: tip +If you are on a computer and have an image saved in your clipboard, you can attach it to your note by using the usual paste shortcut within the text box. +::: + +::: tip +You can also press Ctrl + Enter within the text box to publish your note. +::: + +## Renote +The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts are all called Renote (or "renoting" as verb). Most of the time, this is used when you want to share a note you like to your own followers, or when you want a share a note that you posted in the past once more. While it is possible to renote the same note multiple times, please be aware that doing so may be seen as annoying by others. + +::: warning +If you've set your note's visibility to Followers-only or Direct, then renoting it will not be possible. +::: + +To take back a renote, press the "..." next to the renote timestamp and select "Take back Renote". + +## CW +An abbreviation of "Content Warning", resulting in the content of a note being hidden unless explicitly requested to be shown by a viewing user.It is mainly used to hide the content of long notes or to prevent posting spoilers publicly. To enable CW for a note, press the "Hide content" button (eye icon) in the post form.By doing so a new text input area will appear, where you can write a summary of the content hidden by the CW. + +## Visiblility +It's possible to individually set where your note will be visible (Visibility) for each of your notes.By pressing the icon to the left of the "Note" button in the post form, you can choose from the visibility settings listed below. + +### Public +Your note will be visible to all users and will show up on all timelines (home, local, social, global). + +::: warning +This visibility will be unavailable if your account is silenced. +::: + +### Home +Your note will be visible to all users, but will not show up on the local, social or global timeline for non-followers. + +### Followers +Your note will only be visible to those that are following you.The note will show up on all timelines of your followers. + +### Direct +Your note will only be visible to individually specified users.The note will show up on all timelines of the specified users. + +### The "Local only" option +If you enable this option, your note won't be federated to remote instances. + +### Visibility comparison + + + + +
PublicHomeFollowersDirect
LTL/STL/GTL of Followersโœ”โœ”โœ”
LTL/STL/GTL of Othersโœ”
+ +## Pin to profile +By pinning a note to your profile it will be constantly displayed on your profile page. To pin a note, open the note menu and press "Pin to profile". + +::: tip +It's also possible to pin multiple notes to your profile. +::: + +## Watch +You can get notifications for replies, reactions etc. for a note that is not yours by watching it. To watch a note, select "Watch" from the respective note's menu. diff --git a/src/ko/docs/features/online-status.md b/src/ko/docs/features/online-status.md new file mode 100644 index 0000000000..eaa3862ced --- /dev/null +++ b/src/ko/docs/features/online-status.md @@ -0,0 +1,38 @@ +# ์˜จ๋ผ์ธ ์ƒํƒœ +A user's **online status** is an indication of their Misskey usage status. +Your online status is displayed as an indicator in the corner of the user icon on your user page and elsewhere. + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ColourStateDescription
๐ŸŸข greenonlineMisskey is used right now.
๐ŸŸก yellowactiveThe user is absent but Misskey is still being used.
๐Ÿ”ด redofflineMisskey is not used.
โšซ greyunknownThe status is not private or not available for remote users etc.
+ +Your online status will change automatically and cannot be set manually. +You can set your online status to be private. + +::: warning +Some features, such as user suggestions, may be based on online status, so making your status private may make it harder for other users to find you. +::: diff --git a/src/ko/docs/features/pages.md b/src/ko/docs/features/pages.md new file mode 100644 index 0000000000..36ff7ee867 --- /dev/null +++ b/src/ko/docs/features/pages.md @@ -0,0 +1,70 @@ +# Pages + +Misskey Pages are a feature where you can create custom web pages. In them you can include different types of media and formatting. and even run programming scripts. Like with many other areas of Misskey, you can format your content using [MFM](./mfm.md). + +Pages in Misskey are composed of different types of Blocks, and the blocks can be moved around using drag-and-drop. + +## Content Blocks + +Content blocks display different types of content to the user. + +### Section + +A grouping block that can contain other blocks. Each content block has a title that it will display at its top. + +### Text + +Displays text content to the user. The text content can be formatted and can include variables interpolation (See Variables below). + +### Images +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Displays an image that you can select from your drive. + +### Text Area +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Displays text in a text area tag. This block does not support MFM but variable interpolation is allowed. + +### Embedded Note + +TODO + +### Canvas +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +TODO + +## Input Blocks +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Input blocks can be used to create interactive pages with form elements. These blocks can be used to interact with the variables and scripts in a page. + +## Special Blocks +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Special blocks provide unique features for your page. This includes a note posting form and page control flow. + +## Variables +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Variables can be used to create dynamic pages. You can embed the value of a variable by writing { variable name } in the text. For example, in Hello { thing } world!, if the value of the variable (thing) was ai, then the text would become Hello ai world!. + +Variables are evaluated from top to bottom, so you cannot refer to a variable defined below you in a given variable. For example, if there are three variables, A, B, C, that are defined in that order, A and B can be referenced inside of C's definition; however, B and C cannot be referenced inside of A's. + +To receive input from the user, place an "Input" block on the page and set the "Variable Name" to the name of the variable in which you want to store the value (the variable will automatically be created by the block). +The variable can the be used to perform actions in response to user input. + +Functions can be used to encapsulate value calculations in a reusable form. To create a function, create a variable of type "Function". A function can have slots (arguments), and the values of the slots are available as variables within the function. There are also functions called higher-order functions that take another function as an argument. Functions can be predefined or instantiated in-line in slots of such higher order functions. diff --git a/src/ko/docs/features/plugin.md b/src/ko/docs/features/plugin.md new file mode 100644 index 0000000000..a132232cba --- /dev/null +++ b/src/ko/docs/features/plugin.md @@ -0,0 +1,4 @@ +# ํ”Œ๋Ÿฌ๊ทธ์ธ +Misskey ์›น ํด๋ผ์ด์–ธํŠธ์— ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜์—ฌ, ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” [์ด ๋ฌธ์„œ](./advanced/create-plugin.md)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. diff --git a/src/ko/docs/features/reaction.md b/src/ko/docs/features/reaction.md new file mode 100644 index 0000000000..fe018dcbc4 --- /dev/null +++ b/src/ko/docs/features/reaction.md @@ -0,0 +1,24 @@ +# ๋ฐ˜์‘ +This feature allows you to easily convey your reactions to other people's notes by adding emojis. +To react in Misskey Web, click the + icon on the note to show the picker and select an emoji. +You can also react using [custom emoji](./custom-emoji.md). + +## Customising the reaction picker +In Misskey Web you can choose which emojis should appear in the picker, and change the order they should appear in. +You can set this in the "Reactions" section of the settings. + +## Reactions to remote posts +Since Reactions are an original Misskey feature, most of the time the activity will be sent as a "Like" unless the remote instance supports them. +Usually, ActivityPub's "Like" is implemented as a favorite. + +## Reactions from remote instances +Since Misskey does not have likes, a "Like" from a remote instance will be displayed as a '๐Ÿ‘' reaction. + +::: ํŒ +Your instance administrator may change this to be displayed as a 'โญ' reaction. +If you are an admin, see [here](../admin/default-reaction.md). +::: + +## See a list of all your reactions +In Misskey Web, you can see the list of all the reactions you have made by opening the "Reactions" tab on your profile page. +You can also choose to make this list public in the settings. diff --git a/src/ko/docs/features/share-form.md b/src/ko/docs/features/share-form.md new file mode 100644 index 0000000000..0afbb1bdbb --- /dev/null +++ b/src/ko/docs/features/share-form.md @@ -0,0 +1,54 @@ +# ๊ณต์œ  ์–‘์‹ + +When you open `/share` in Misskey Web, you can open a sharing submission form. This sharing form is useful if you want users to share the content of your page with Misskey from an external web page. + +You can specify a number of options for the URL, including the shared content as a query parameter. + +## Query parameters + +::: tip +All parameters are **optional**. +::: + +| name | description | +| ---- | ---- | +| `title` | title, will be inserted before the main body in brackets | +| `text` | main body | +| `url` | URL, inserted after the main body | + +### Reply information +You can make the note being composed a reply to a given note by specifying one of the following. + +| name | description | +| ---- | ---- | +| `replyId` | ID of the note you are replying to | +| `replyUri` | URL to reply to (specify the remote note object) | + +### Renote information +You can make the note being composed a renote of a given note by specifying one of the following. + +| name | description | +| ---- | ---- | +| `renoteId` | ID of the note to renote | +| `renoteUri` | URL of the note to renote(specify the remote note object) | + +### Publication Scope +The following options allow to select a scope. + +| name | description | +| ---- | ---- | +| `visibility` | one of `public`, `home`, `followers`, `specified` | +| `localOnly` | 0(false) or 1(true) | +| `visibleUserIds` | target user IDs | +| `visibleAccts` | target user [acct](../glossary.md#acct)s (comma separated) | + +::: warning +If `visibility` is set to `specified`, either `visibleUserIds` or `visibleAccts` must be set too. +::: + +### Attachments +You can specify attachments with the following options. + +| name | description | +| ---- | ---- | +| `fileIds` | IDs of files to be attached (comma separated) | diff --git a/src/ko/docs/features/silence.md b/src/ko/docs/features/silence.md new file mode 100644 index 0000000000..ffc0835f86 --- /dev/null +++ b/src/ko/docs/features/silence.md @@ -0,0 +1,12 @@ +# ์‚ฌ์ผ๋Ÿฐ์Šค +::: ํŒ +์ด ๊ธฐ๋Šฅ์€ Misskey v12๊นŒ์ง€๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Misskey v13์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +::: + +Silence is one of the states that an account can be set to. + +When your account is silenced, you cannot set the visibility of your notes to Public. +Home, Followers, and Direct are still selectable, so even if your account is silenced, followers and direct visitors to your page will still be able to view your posts. +They will just not be able to view them in the GTL (Global Timeline) or LTL (Local Timeline). + +The silence status of an account is set by the instance moderators. diff --git a/src/ko/docs/features/theme.md b/src/ko/docs/features/theme.md new file mode 100644 index 0000000000..88516f47ac --- /dev/null +++ b/src/ko/docs/features/theme.md @@ -0,0 +1,80 @@ +# ํ…Œ๋งˆ + +You can change the look and feel of the Missky client by applying a theme. + +## Theme Settings + +Settings > Themes + +## Creating a Theme + +The theme object code is written using JSON5. +The theme has an object type like the one shown below. + +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... Unique theme ID. A UUID is recommended. +* `name` ... Theme name +* `author` ... Theme author +* `desc` ... Theme description (Object) +* `base` ... light or dark theme + * Use `light` for a light theme and `dark` for a dark theme. + * The theme inherits the base theme that is set here. +* `props` ... Theme style definition. Explained in the following sections. + +### Theme Style Definition + +Define the theme style within the `props`. +The keys are the names of CSS variables, and the values specify the contents. +Furthermore, this `props` object inherits from the base theme. +The base theme is [_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5) if the `base` of this theme is `light` and [_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5) if `dark`. +That is, if there is no `props` key named `panel` in this theme, then it is set to the `panel` in the base theme. + +#### Value Syntax + +* Colors expressed with hexadecimal + * example: `#00ff00` +* Colors expressed with `rgb(r, g, b)` format + * example: `rgb(0, 255, 0)` +* Colors that contain alpha/transparency values expressed with `rgb(r, g, b, a)` format + * example: `rgba(0, 255, 0, 0.5)` +* Other key value reference + * `@{key name}` is a reference to the value of another key. Replace `{key name}` with the name of the key you wish to reference. + * example: `@panel` +* Constant (discussed below) reference + * `${constant name}` is a reference to a constant. Replace `{constant name}` with the name of the constant you with to reference. + * example: `$main` +* Functions (discussed below) + * `:{้–ขๆ•ฐๅ}<{ๅผ•ๆ•ฐ}<{่‰ฒ}` + +#### Constants + +Constants are useful when you have values that you do not want to output as CSS variables, but want to use as values for other CSS variables."I don't want to output it as a CSS variable, but I do want to use it as a value for other CSS variables. + +#### Functions + +WIP diff --git a/src/ko/docs/features/thread-mute.md b/src/ko/docs/features/thread-mute.md new file mode 100644 index 0000000000..ef8e5ef5f3 --- /dev/null +++ b/src/ko/docs/features/thread-mute.md @@ -0,0 +1,14 @@ +# ๊ธ€ํƒ€๋ž˜ ์Œ์†Œ๊ฑฐ +::: tip +This feature is available since version 12.95.0. +::: + +Thread Mute mutes the thread of a given note. This includes all replies connected to the uppermost note. + +If you mute a thread, you will no longer be notified of new replies to that thread, nor will any of the replies mention you. + +To mute a thread in Misskey Web, open the menu of any note belonging to the thread in question or the note from which it originated and select 'Mute Thread'. + +::: warning +The entire thread will be muted, regardless of which note in the thread the mute operation is performed from. +::: diff --git a/src/ko/docs/features/timeline.md b/src/ko/docs/features/timeline.md new file mode 100644 index 0000000000..d3c4eb1bca --- /dev/null +++ b/src/ko/docs/features/timeline.md @@ -0,0 +1,43 @@ +# ํƒ€์ž„๋ผ์ธ + +The timeline displays [notes](.note) in reverse chronological order. +There are different types of timelines as shown below, and the notes displayed differ depending on the type. +Note that some types of timelines may be disabled by the instance. + +## Home + +Posts by users you are following will be displayed. Abbreviated as HTL. + +## Local + +All local users' posts that do not have the visibility of "Home" will be shown. Abbreviated as LTL. + +## Social + +Posts of users you are following and all local users's posts that do not have the visibility of "Home" will be shown. Abbreviated as STL. Think of it as STL = HTL + LTL. + +## Global + +All local users' posts that do not have the visibility of "Home" and all remote users' posts that do not have the visibility of "Home" that reach the server. Abbreviated as GTL. + +## Custom Timelines + +Misskey has other features where you can create timelines with more granularity. See [Lists](./list.md) and [Antennas](./antenna.md) for details. + +## Comparison + +| Source | | | Timeline | | | +|-----------------------|------------|--------|---------|------------|------------| +| User | Visibility | Home | Local | Social | Global | +| Local (Followers) | Public | โœ” | โœ” | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Followers | โœ” | | โœ” | | +| Remote (Followers) | Public | โœ” | | โœ” | โœ” | +| | Home | โœ” | | โœ” | | +| | Followers | โœ” | | โœ” | | +| local (Non-followers) | Public | | โœ” | โœ” | โœ” | +| | Home | | | | | +| | Followers | | | | | +| Remote (Non-followers)| Public | | | | โœ” | +| | Home | | | | | +| | Followers | | | | | diff --git a/src/ko/docs/features/webhook.md b/src/ko/docs/features/webhook.md new file mode 100644 index 0000000000..77c9130133 --- /dev/null +++ b/src/ko/docs/features/webhook.md @@ -0,0 +1,154 @@ +# Webhook + +::: ํŒ +This feature is available as of Misskey version 12.109.0. +::: + +::: warning +This is an experimental feature and may be unstable or subject to change in the future. +::: + +Misskey provides a webhook which allows you to receive various events from Misskey in real time. + +You can manage your webhooks by going to Settings > Webhook. + +Once a webhook is registered, an HTTP request is sent to the specified URL each time the specified event occurs. The request method will be POST and contain JSON in its body. +In addition, the request header will contain the secret that was set during registration with the name `X-Misskey-Hook-Secret`. You can use this secret to verify that the request is legitimate. + +The payload wil contain the following properties. + + + +If the destination server returns a 5XX error or does not respond, the request is resent after a time delay. + +Webhooks can individually have their active status changed from the administration screen to temporarily stop sending requests. + +## Event + +The following is a description and payload for each event type. + +### follow + +Occurs when you follow someone. + + + +### followed + +Occurs when you are followed by someone. + + + +### unfollow + +Occurs when you unfollow someone. + + + +### note + +Occurs when you post a note. + + + +### reply + +Occurs when someone has replied to your note. + + + +### renote + +Occurs when your note is renoted. + + + +### mention + +Occurs when someone has mentioned you. + + diff --git a/src/ko/docs/features/widgets.md b/src/ko/docs/features/widgets.md new file mode 100644 index 0000000000..20f44110ae --- /dev/null +++ b/src/ko/docs/features/widgets.md @@ -0,0 +1,101 @@ +# ์œ„์ ฏ + +์œ„์ ฏ์€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด Misskey UI์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ๊ตฌ์„ฑ ์š”์†Œ(์ธํ„ฐํŽ˜์ด์Šค)์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™”๋ฉด ์˜ค๋ฅธ์ชฝ์— ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ๋ชจ๋ฐ”์ผ ์›น ์•ฑ์—์„œ ํƒ์ƒ‰ ๋ฉ”๋‰ด(๊ฐ€๋กœ 3์ค„ ์ค„๋ฌด๋Šฌ ์•„์ด์ฝ˜, ํ–„๋ฒ„๊ฑฐ ๋ฒ„ํŠผ)์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +์œ„์ ฏ์„ ํŽธ์ง‘ํ•˜๋ ค๋ฉด ์œ„์ ฏ ๋ณด๊ธฐ ํ•˜๋‹จ์—์„œ ์œ„์ ฏ ํŽธ์ง‘ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์„ธ์š”. ์œ„์ ฏ ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ ์œ„์ ฏ์„ ์ถ”๊ฐ€, ์‚ญ์ œ ๋ฐ ์žฌ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +์œ„์ ฏ ๋ ˆ์ด์•„์›ƒ ํŽธ์ง‘๊ธฐ๋ฅผ ๋‹ซ์€ ํ›„ ๊ฐ ์œ„์ ฏ์˜ ๋™์ž‘์— ๋Œ€ํ•œ ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. + + +## ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์ ฏ ๋ชฉ๋ก + +### ์•Œ๋ฆผ ๋ชฉ๋ก + +์•Œ๋ฆผ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผ ์œ„์ ฏ ๋ฉ”๋‰ด๋ฅผ ์—ด์–ด ํ‘œ์‹œ๋˜๋Š” ์•Œ๋ฆผ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์‚ฌ์šฉ์ž ์ „์—ญ ์„ค์ •"์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ํŠน์ • ์œ ํ˜•์˜ ์•Œ๋ฆผ๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ํƒ€์ž„๋ผ์ธ + +ํƒ€์ž„๋ผ์ธ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ํƒ€์ž„๋ผ์ธ(ํ™ˆ, ๋กœ์ปฌ, ์†Œ์…œ ๋ฐ ๊ธ€๋กœ๋ฒŒ) ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • [๋ชฉ๋ก](./list.md) ๋˜๋Š” [์•ˆํ…Œ๋‚˜](./antenna.md) ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +### RSS ๋ฆฌ๋” + +RSS ํ”ผ๋“œ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์— ๋งž๋Š” RSS ํ”ผ๋“œ URL์„ ์ˆ˜์‹ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +### RSS ํ‹ฐ์ปค + +RSS ๋ฆฌ๋”์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ RSS ํ”ผ๋“œ ๋ชฉ๋ก์„ ํ•œ ์ค„์— ์Šคํฌ๋กค ๋˜๋Š” ํ˜•ํƒœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ํ”ผ๋“œ๊ฐ€ ๊ฐฑ์‹ ๋˜๊ณ  ํ‘œ์‹œ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + + +### ํŠธ๋ Œ๋“œ(์œ ํ–‰) + +์œ ํ–‰ํ•˜๋Š” [ํ•ด์‹œํƒœ๊ทธ](./hashtag.md)๋ฅผ ์–ธ๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ˆ˜์— ๋Œ€ํ•œ ํ†ต๊ณ„์™€ ํ•ด์‹œํƒœ๊ทธ์˜ ๋นˆ๋„๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ํ™œ๋™ + +์‹œ๊ฐ„๋ณ„ ํ™œ๋™์— ๋Œ€ํ•œ ์‹œ๊ฐํ™”๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์˜จ๋ผ์ธ ์‚ฌ์šฉ์ž + +์ด ์ธ์Šคํ„ด์Šค์—์„œ ์ ‘์†์ž ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์‚ฌ์ง„ ๋ชฉ๋ก + +๋ณธ์ธ์ด ์˜ฌ๋ฆฐ ์ตœ๊ทผ ์‚ฌ์ง„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์Šฌ๋ผ์ด๋“œ์‡ผ + +์ง€์ •ํ•œ ๋“œ๋ผ์ด๋ธŒ ํด๋”์˜ ์‚ฌ์ง„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์Šฌ๋ผ์ด๋“œ ์‡ผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ธŒ ํด๋”๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ์œ„์ ฏ ๋ ˆ์ด์•„์›ƒ ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ ์ƒํƒœ์—์„œ ์Šฌ๋ผ์ด๋“œ ์‡ผ ์œ„์ ฏ์„ ๋งˆ์šฐ์Šค ์™ผ์ชฝ ํด๋ฆญ์„ ํ•˜์—ฌ ๋ฉ”๋‰ด๋ฅผ ๋„์›๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์Šฌ๋ผ์ด๋“œ ์‡ผ์— ํฌํ•จํ•  ํด๋”๋ฅผ ์ฒดํฌํ•˜์—ฌ ์„ ํƒํ•˜๊ณ  "ํ™•์ธ" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. + +### ๋‹ฌ๋ ฅ + +ํ•œ ๋‹ฌ ์ „์ฒด ๋‚ ์งœ์™€ ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ๊ทธ๋ž˜ํ”ฝ ํ˜•ํƒœ์˜ ๋‹ฌ๋ ฅ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์‹œ๊ณ„ + +์•„๋‚ ๋กœ๊ทธ ์‹œ๊ณ„์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‹œ๊ณ„ ๋ชจ์–‘์ด ์žˆ์Šต๋‹ˆ๋‹ค. + +### ๋””์ง€ํ„ธ์‹œ๊ณ„ + +๋””์ง€ํ„ธ์‹œ๊ณ„์ž…๋‹ˆ๋‹ค. + +### ์œ ๋‹‰์Šค ์‹œ๊ณ„ + +UNIX Epoch(1970-01-01T00:00:00Z) ์ดํ›„ ๊ฒฝ๊ณผ๋œ ์ดˆ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์—ฐํ•ฉ์šฐ์ฃผ(Fediverse, Federation) + +์—ฐํ•ฉ ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก ๋ฐ ์ตœ๊ทผ ํ™œ๋™ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### ์ธ์Šคํ„ด์Šค ํด๋ผ์šฐ๋“œ + +์—ฐํ•ฉ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€ํ™”ํ˜• ์• ๋‹ˆ๋ฉ”์ด์…˜์ž…๋‹ˆ๋‹ค. + +### ์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ + +๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ๋ฅผ ์ง์ ‘ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์žํ˜• ์œ„์ ฏ์ž…๋‹ˆ๋‹ค. ์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Misskey Web์— ์ ‘์†ํ•˜์—ฌ ์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +### ๋…ธํŠธ ๊ฐœ์‹œ ์œ„์ ฏ(Posting Form) + +[๋…ธํŠธ](./note.md) ๊ตฌ์„ฑ ์š”์†Œ์˜ ์œ„์ ฏ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. + +### ์„œ๋ฒ„ ๋ฉ”ํŠธ๋ฆญ + +์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ฉ”ํŠธ๋ฆญ ์ƒ๋‹จ์— ์žˆ๋Š” ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ‘œ์‹œ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +### ์ž‘์—… ๋Œ€๊ธฐ์—ด + +์„œ๋ฒ„ ์ž‘์—… ๋Œ€๊ธฐ์—ด(Queue) ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +### AiScript Console + +AiScript ํ”„๋กœ๊ทธ๋žจ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์ ฏ์ž…๋‹ˆ๋‹ค. ๋„์›€๋ง ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” Scratchpad ํŽ˜์ด์ง€์˜ ์œ„์ ฏ์ž…๋‹ˆ๋‹ค. + +์ฐธ๊ณ : [AiScript](../advanced/aiscript.md)๋Š” JavaScript๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์ž…๋‹ˆ๋‹ค. + +### ๋ฒ„ํŠผ + +ํด๋ฆญํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • [AiScript](../advanced/aiscript.md) ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋Œ€ํ™”ํ˜• ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค. + +### Ai + +Misskey ๊ณณ๊ณณ์„ ๋Œ์•„๋‹ค๋‹ˆ๋Š” Misskey์˜ ๋””์ง€ํ„ธ ๋งˆ์Šค์ฝ”ํŠธ Ai์ž…๋‹ˆ๋‹ค. diff --git a/src/ko/docs/features/word-mute.md b/src/ko/docs/features/word-mute.md new file mode 100644 index 0000000000..eedc7c1f93 --- /dev/null +++ b/src/ko/docs/features/word-mute.md @@ -0,0 +1,22 @@ +# ๋‹จ์–ด ๋ฎคํŠธ +์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์œผ์‹  ๋‹จ์–ด๋ฅผ ์„ค์ •ํ•˜์‹œ๋ฉด ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋…ธํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + +๋‹จ์–ด ๋ฎคํŠธ์—๋Š” ๋ณดํ†ต ์ˆ˜์ค€๊ณผ ๋ณด๋‹ค ๋†’์€ ์ˆ˜์ค€์˜ ๋‘ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰˜๋ฉฐ ์•„๋ž˜์— ๊ฐ๊ฐ์˜ ์„ค์ •์— ๋”ฐ๋ฅธ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. + +## ๋ณดํ†ต ์ˆ˜์ค€ (ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฐจ๋‹จ) +๋ณดํ†ต ์ˆ˜์ค€์˜ ๋‹จ์–ด ๋ฎคํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ(์•ฑ) ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์•ฑ์—์„œ ์ฐจ๋‹จ ์กฐ๊ฑด์— ๋งž๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋…ธํŠธ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. + +์ฐจ๋‹จ๋œ ๋…ธํŠธ๋Š” "(์‚ฌ์šฉ์ž๋ช…)์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฌธ๊ตฌ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ์„œ๋ฒ„ ์ž์ฒด์—๋Š” ํ•ด๋‹น ๋…ธํŠธ ๋‚ด์šฉ์ด ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํด๋ฆญ ์‹œ ์ฐจ๋‹จ๋œ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. + +๋ณดํ†ต ์ˆ˜์ค€์˜ ๋‹จ์–ด ๋ฎคํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์•ฑ์—์„œ๋Š” ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. + +## ๋ณด๋‹ค ๋†’์€ ์ˆ˜์ค€ (์„œ๋ฒ„์—์„œ ์ฐจ๋‹จ) +๋†’์€ ์ˆ˜์ค€์˜ ๋‹จ์–ด ๋ฎคํŠธ๋Š” ์„œ๋ฒ„์—์„œ ์ฐจ๋‹จ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. +๋…ธํŠธ ๋ณธ๋ฌธ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ณ  ์ฐจ๋‹จํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด์™€ ์ผ์น˜ํ•˜๋ฉด ํƒ€์ž„๋ผ์ธ์—์„œ ๋…ธํŠธ๋ฅผ ๊ฐœ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์•ˆํ…Œ๋‚˜ ๊ธฐ๋Šฅ์—์„œ๋„ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. + +๋†’์€ ์ˆ˜์ค€์˜ ๋‹จ์–ด ๋ฎคํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. + +- ๋‹จ์–ด ๋ฎคํŠธ๊ฐ€ ์„ค์ •๋œ ์ดํ›„ ์‹œ์ ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๊ฒŒ์‹œ๋ฌผ์—๋งŒ ์ฐจ๋‹จ ๋ฉ๋‹ˆ๋‹ค. +- ๋‹จ์–ด ๋ฎคํŠธ๋ฅผ ํ•ด์ œํ•˜๋”๋ผ๋„ ์„œ๋ฒ„์— ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๋ฏธ ์ฐจ๋‹จ๋œ ๋…ธํŠธ๋Š” ๋ณต์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- ์‚ฌ์šฉ์ž์—๊ฒŒ "(์‚ฌ์šฉ์ž๋ช…)์ด ๋ฌด์–ธ๊ฐ€๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์ด ํƒ€์ž„๋ผ์ธ์— ํ‘œ์‹œ๋˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. +- ์„œ๋ฒ„ ์ž์ฒด์—์„œ ์ฐจ๋‹จ ๋˜๋ฏ€๋กœ ๋ณดํ†ต ์ˆ˜์ค€์˜ ๋‹จ์–ด ๋ฎคํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์•ฑ์—์„œ๋„ ๋†’์€ ์ˆ˜์ค€์˜ ๋ฎคํŠธ๋Š” ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. diff --git a/src/ko/docs/getting-started.md b/src/ko/docs/getting-started.md new file mode 100644 index 0000000000..975ab20c05 --- /dev/null +++ b/src/ko/docs/getting-started.md @@ -0,0 +1,24 @@ +# Misskey๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ +Misskey๋Š” ํ”„๋กœ๊ทธ๋žจ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. +์ธํ„ฐ๋„ท์— ๊ณต๊ฐœ๋˜์–ด์žˆ๋Š” Misskey ์„œ๋ฒ„๋ฅผ **์ธ์Šคํ„ด์Šค**๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. +์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์— ์ ‘์†ํ•œ ๋’ค, ๊ทธ ์ธ์Šคํ„ด์Šค์—์„œ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜์—ฌ Misskey๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +[์ธ์Šคํ„ด์Šค ๋ชฉ๋ก](../instances.md)์—์„œ ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋‘˜๋Ÿฌ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: tip +์–ด๋–ค ์ธ์Šคํ„ด์Šค๋ฅผ ์„ ํƒํ•˜๋”๋ผ๋„, ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์˜ ์œ ์ €์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: details +Misskey๋Š” '์—ฐํ•ฉ' ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +์—ฐํ•ฉ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์— ์žˆ๋Š” ์œ ์ €๋ผ๋„ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค์˜ ์œ ์ €์™€ ๋™์ผํ•˜๊ฒŒ ํŒ”๋กœ์šฐ ๋ฐ ๋ฆฌ์•ก์…˜, Renote ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +Misskey์˜ ์—ฐํ•ฉ ๊ธฐ๋Šฅ์€ 'ActivityPub'์ด๋ผ๋Š”, ๊ณต๊ฐœ๋œ ํ†ต์‹ ๊ทœ์•ฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ Mastodon์ด๋‚˜ Pleroma์™€ ๊ฐ™์€ ํƒ€ ์†Œํ”„ํŠธ์›จ์–ด์™€๋„ ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. +::: + +## ์ธ์Šคํ„ด์Šค ๊ณ ๋ฅด๊ธฐ +### ์ธ์Šคํ„ด์Šค ์ฃผ์ œ +์ธ์Šคํ„ด์Šค์— ๋”ฐ๋ผ ํŠน์ •ํ•œ ๊ด€์‹ฌ์‚ฌ๋‚˜ ํ™”์ œ๋ฅผ ์ •ํ•ด๋‘” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. +์ธ์Šคํ„ด์Šค๋ฅผ ๊ณ ๋ฅผ ๋•Œ์—, ์ž์‹ ์˜ ๊ด€์‹ฌ์‚ฌ์— ๋งž๋Š” ์ธ์Šคํ„ด์Šค์— ์ฐธ๊ฐ€ํ•ด ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค. + +### ์ธ์Šคํ„ด์Šค์˜ ์œ ์ € ์ธต diff --git a/src/ko/docs/glossary.md b/src/ko/docs/glossary.md new file mode 100644 index 0000000000..c59c63e6d1 --- /dev/null +++ b/src/ko/docs/glossary.md @@ -0,0 +1,103 @@ +# ์šฉ์–ด์ง‘ +Misskey์— ๊ด€๋ จ๋œ ์šฉ์–ด์ง‘์ž…๋‹ˆ๋‹ค. + +## Acct +ํŠน์ • ์œ ์ €๋ฅผ ์ง€์นญํ•˜๋Š” @username@host ํ˜•์‹์˜ ๋ฌธ์ž์—ด. ๋ฉ˜์…˜์„ ํ•˜๋Š” ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. + +## ActivityPub +Misskey์˜ ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ˜•์„ฑํ•˜๋Š” ํ”„๋กœํ† ์ฝœ. ์ด ํ”„๋กœํ† ์ฝœ์— ์˜๊ฑฐํ•˜์—ฌ ์„œ๋ฒ„๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด, ์ปจํ…์ธ ๋‚˜ ์•Œ๋ฆผ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๊ตํ™˜๋ฉ๋‹ˆ๋‹ค. Fediverse๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์ด ์„ธ๊ณ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์ˆ˜์ฃ . + +## AiScript +Misskey์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ, JavaScript ์ƒ์—์„œ ์›€์ง์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../advanced/aiscript)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## API +ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด Misskey์˜ ์ธ์Šคํ„ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค. ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../advanced/api)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## ๋ด‡ +ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๊ณ„์ •. + +## CW +"Content Warning"์˜ ์•ฝ์ž. ์œ ์ €๊ฐ€ ํ‘œ์‹œ๋ฅผ ์š”์ฒญํ•˜์ง€ ์•Š๋Š” ํ•œ ๋…ธํŠธ์˜ ์ปจํ…์ธ ๋ฅผ ๊ฐ€๋ฆฌ๋Š” ๊ธฐ๋Šฅ. ๊ธด ๋…ธํŠธ๋ฅผ ๊ฐ€๋ฆฌ๊ฑฐ๋‚˜ ๊ณต๊ฐœ์ ์ธ ์Šคํฌ์ผ๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. + +## Fediverse +"Federated (Federation)"๊ณผ "Universe"๋ฅผ ํ•ฉ์นœ ์กฐ์–ด. Misskey๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๋ถ„์‚ฐํ˜• ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋˜๋Š”, ๋น„์ค‘์•™์ง‘๊ถŒ์ ์ธ ์—ฐํ•ฉ ์†Œ์…œ ๋„คํŠธ์œ„ํฌ. Misskey ์ด์™ธ์˜ ๋ถ„์‚ฐํ˜• ์†Œํ”„ํŠธ์›จ์–ด์—๋Š” Mastodon, Pleroma, Pixelfed ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. + +## GTL +๊ธ€๋กœ๋ฒŒ ํƒ€์ž„๋ผ์ธ ("Global TimeLine")์˜ ์•ฝ์ž. ํƒ€์ž„๋ผ์ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../features/timeline)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## HTL +ํ™ˆ ํƒ€์ž„๋ผ์ธ ("Home TimeLine")์˜ ์•ฝ์ž. ํƒ€์ž„๋ผ์ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../features/timeline)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## LTL +๋กœ์ปฌ ํƒ€์ž„๋ผ์ธ ("Local TimeLine")์˜ ์•ฝ์ž. ํƒ€์ž„๋ผ์ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../features/timeline)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## MFM +"Misskey Flavored Markdown"์˜ ์•ฝ์ž์ด๋ฉฐ, Misskey์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆํฌ๋‹ค์šด ์–ธ์–ด. ์ž์„ธํ•œ ์ •๋ณด๋Š”[๋‹ค์Œ ๋ฌธ์„œ](../features/mfm)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## Misskey Web +Misskey ๊ณต์‹ ์›น ํด๋ผ์ด์–ธํŠธ (์ธํ„ฐํŽ˜์ด์Šค). Misskey ์ธ์Šคํ„ด์Šค์— PC/์Šค๋งˆํŠธํฐ ๋“ฑ์˜ ๋ธŒ๋ผ์šฐ์ €๋กœ ์•ก์„ธ์Šคํ•  ์‹œ์— ์ž๋™์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. + +## NSFW +"Not Safe For Work"์˜ ์•ฝ์ž. ์ด๋ฏธ์ง€๋ฅผ "NSFW"๋กœ ํ‘œ์‹œํ•˜๊ณ , ์œ ์ €๊ฐ€ ํ‘œ์‹œ๋ฅผ ์š”์ฒญํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ทธ๋ฅผ ๊ฐ€๋ฆฌ๋Š” ๊ธฐ๋Šฅ. + +## ๋ฆฌ๋…ธํŠธ +์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋…ธํŠธ๋ฅผ ์ธ์šฉ, ํ˜น์€ ๊ทธ ๋…ธํŠธ๋ฅผ ์ƒˆ๋กœ์šด ๋…ธํŠธ๋กœ์จ ๊ณต์œ ํ•˜๋Š” ํ–‰์œ„ ๋ฐ ๊ทธ์— ์˜ํ•ด ์ž‘์„ฑ๋œ ๋…ธํŠธ. ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../features/note)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## STL +์†Œ์…œ ํƒ€์ž„๋ผ์ธ ("Social TimeLine")์˜ ์•ฝ์ž. ํƒ€์ž„๋ผ์ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ๋ฌธ์„œ](../features/timeline)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## Ai +Misskey์˜ ๊ณต์‹ ๋งˆ์Šค์ฝ”ํŠธ. ์ž์„ธํ•œ ์ •๋ณด๋Š” [๋‹ค์Œ ํ™ˆํŽ˜์ด์ง€ (์ผ๋ณธ์–ด)](https://xn--931a.moe/)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## ์•กํ‹ฐ๋ธŒ ์œ ์ € +Misskey์˜ ์ธ์Šคํ„ด์Šค์— ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ค‘ ํ˜„์žฌ๋„ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž. + +## ์ธ์Šคํ„ด์Šค +todo + +## ์˜คํ”ˆ ์†Œ์Šค +Misskey์™€ ๊ฐ™์ด, ์†Œํ”„ํŠธ์›จ์–ด์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ. ๊ธฐ์—… ๋“ฑ์ด ์†Œ์œ ํ•˜๋ฉฐ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š์€ ์†Œํ”„ํŠธ์›จ์–ด๋Š” "ํด๋กœ์ฆˆ๋“œ ์†Œ์Šค"๋ผ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. + +## ์ปค์Šคํ…€ ์ด๋ชจ์ง€ +๊ฐ Misskey ์ธ์Šคํ„ด์Šค์˜ ๊ด€๋ฆฌ์ž ํ˜น์€ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ž‘์„ฑ๋œ ์ด๋ชจ์ง€. ์ปค์Šคํ…€ ์ด๋ชจ์ง€๊ฐ€ ์•„๋‹Œ ๊ธฐ๋ณธ ์—๋ชจ์ง€๋Š” "Unicode ์ด๋ชจ์ง€"๋ผ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๋‹ค์Œ ๋ฌธ์„œ](../docs/features/custom-emoji)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## ์ œ์–ดํŒ +Misskey ์ธ์Šคํ„ด์Šค์˜ ์„ค์ • ํ™”๋ฉด. + + + +## ์ž‘์—… ๋Œ€๊ธฐ์—ด +ํ™œ๋™์„ ํƒ€ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ์— ์“ฐ์ด๋Š” ์‹œ์Šคํ…œ. + +## ์ •์ง€ +์‚ฌ์šฉ์ž์˜ ๊ณ„์ •์ด ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ์ƒํƒœ. + +## ๋“œ๋ผ์ด๋ธŒ +Misskey์˜ ์ธ์Šคํ„ด์Šค์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๋‚˜ ์Œ์•… ๋“ฑ์˜ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๋‹ค์Œ ๋ฌธ์„œ](../features/drive)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## ๋…ธํŠธ +Misskey์˜ ์ธ์Šคํ„ด์Šค ์ƒ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฆฌ๋Š” ๋ฌธ์žฅ. ์ด๋ฏธ์ง€๋‚˜ ์Œ์•… ๋“ฑ์˜ ํŒŒ์ผ, ์„ค๋ฌธ ๋“ฑ, Misskey ํŠน์œ ์˜ ์—ฌ๋Ÿฌ ์ปจํ…์ธ ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๋‹ค์Œ ๋ฌธ์„œ](../features/note)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +## ๋ฏธ์Šคํ‚ค์ŠคํŠธ +Misskey์˜ ์ธ์Šคํ„ด์Šค์— ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž. + +## ๋ชจ๋”๋ ˆ์ดํ„ฐ +์ŠคํŒธ ์œ ์ €์˜ ์ •์ง€๋‚˜ ๋ถ€์ ์ ˆํ•œ ๋…ธํŠธ์˜ ์‚ญ์ œ ๋“ฑ, ์ธ์Šคํ„ด์Šค์˜ ์šด์˜์— ๊ด€ํ•œ ๊ถŒํ•œ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ์œ ์ €. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œ ๋ชจ๋”๋ ˆ์ดํ„ฐ๋ฅผ ๋ชจ์ง‘ํ•ด ์ฑ„์šฉํ•ฉ๋‹ˆ๋‹ค. + +## ํ‘ธ๋”ฉ +Misskey์˜ ๋ฉ”์ธ ๊ฐœ๋ฐœ์ž, syuiro๋‹˜์ด ์ข‹์•„ํ•˜๋Š” ์Œ์‹์ž…๋‹ˆ๋‹ค. + +## ๋ผ์ด์„ ์Šค +์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•จ์— ๋”ฐ๋ผ, ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ผœ์•ผ ํ•  ๊ฒƒ์ด ์ ํ˜€ ์žˆ๋Š” ๋ฌธ์„œ. Misskey์—์„œ๋Š” ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์— ์ ํ•ฉํ•œ AGPLv3์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +## ๋ฆฌ๋ชจํŠธ +ํƒ€ ์„œ๋ฒ„๋‚˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์นญํ•ฉ๋‹ˆ๋‹ค. "๋ฆฌ๋ชจํŠธ ์œ ์ €" ๋“ฑ๊ณผ ๊ฐ™์ด ์ ‘๋‘์‚ฌ๋กœ์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "๋กœ์ปฌ"๊ณผ ๋Œ€์กฐ๋˜๋Š” ๋‹จ์–ด์ฃ . + +## ์—ฐํ•ฉ +์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋‚˜ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ์ ‘์†ํ•˜์—ฌ, ์ปจํ…์ธ ๋‚˜ ์•Œ๋ฆผ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์„œ๋กœ์˜ ์ธ์Šคํ„ด์Šค๋‚˜ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ณ ๋ฐ›๋Š” ์ง‘ํ•ฉ์ฒด. + +## ๋กœ์ปฌ +์ž์‹ ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์นญํ•ฉ๋‹ˆ๋‹ค. "๋กœ์ปฌ ์œ ์ €", "๋กœ์ปฌ ํƒ€์ž„๋ผ์ธ" ๋“ฑ๊ณผ ๊ฐ™์ด ์ ‘๋‘์‚ฌ๋กœ์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "๋ฆฌ๋ชจํŠธ"์™€ ๋Œ€์กฐ๋˜๋Š” ๋‹จ์–ด์ฃ . diff --git a/src/ko/docs/install.md b/src/ko/docs/install.md new file mode 100644 index 0000000000..4e9222e861 --- /dev/null +++ b/src/ko/docs/install.md @@ -0,0 +1,19 @@ +--- +description: 'Misskey ์ธ์Šคํ„ด์Šค์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.' +--- + +# Misskey ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ +Misskey ์ธ์Šคํ„ด์Šค ๊ตฌ์ถ•์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜ ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜์—ฌ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## Docker๋ฅผ ํ†ตํ•œ ์„ค์น˜ (์ถ”์ฒœ) +[ํ•ด๋‹น ๋ฌธ์„œ ์ฐธ๊ณ ](./install/docker.html) + +## bash ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ ์„ค์น˜ +[ํ•ด๋‹น ๋ฌธ์„œ ์ฐธ๊ณ ](./install/bash.html) + +## ์ˆ˜๋™ ์„ค์น˜ +[๊ธฐ๋ณธ ์ˆ˜๋™ ์„ค์น˜](./install/manual.html)\ +[์ž์„ธํžˆ: Ubuntu์— ์ˆ˜๋™ ์„ค์น˜](./install/ubuntu-manual.html) + +## YunoHost๋ฅผ ํ†ตํ•œ ์„ค์น˜ +Misskey๋Š” YunoHost์˜ ์•ฑ์œผ๋กœ์จ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ [Yunohost์šฉ Misskey ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ](https://github.com/YunoHost-Apps/misskey_ynh)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. diff --git a/src/ko/docs/install/bash.md b/src/ko/docs/install/bash.md new file mode 100644 index 0000000000..b3ade1aaa1 --- /dev/null +++ b/src/ko/docs/install/bash.md @@ -0,0 +1,216 @@ +# Misskey install shell script v1.4.0 +Install Misskey with one shell script! + +You can install misskey on an Ubuntu server just by answering some questions. + +There is also an update script. + +## License +[MIT License](./LICENSE) + +## Ingredients +1. A Domain +2. An Ubuntu Server +3. A Cloudflare Account (recommended) + +## Configure Cloudflare +If you are using nginx and Cloudflare, you must configure Cloudflare: + +- Set DNS. +- On SSL/TLS setting tab, switch the encryption mode to "Full". + +## Procedures +### 1. SSH +Connect to the server via SSH. +(If you have the server's desktop open, open the shell.) + +### 2. Clean up +Make sure all packages are up to date and reboot. + +``` +sudo apt update; sudo apt full-upgrade -y; sudo reboot +``` + +### 3. Start the installation +Reconnect SSH and let's start installing Misskey. + +``` +wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh +``` + +### 4. To update +There is also an update script. + +First, download the script. + +``` +wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh +``` + +Run it when you want to update Misskey. + +``` +sudo bash update.sh +``` + +- In the systemd environment, the `-r` option can be used to update and reboot the system. +- In the docker environment, you can specify repository:tag as an argument. + +## Environments in which the operation was tested + +### Oracle Cloud Infrastructure + +This script runs well on following compute shapes complemented by Oracle Cloud Infrastructure Always Free services. + +- VM.Standard.E2.1.Micro (AMD) +- VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] + +Answer to use iptables. + +## Issues & PRs Welcome +If it does not work in the above environment, it may be a bug. We would appreciate it if you could report it as an issue, with the specified requirements you entered to the script. + +It is difficult to provide assistance for environments other than the above, but we may be able to solve your problem if you provide us with details of your environment. + +Suggestions for features are also welcome. + +# Tips +้ธๆŠž่‚ขใฎ้ธใณๆ–นใ‚„ไป•ๆง˜ใซใคใ„ใฆใชใฉใ€‚ + +## Systemd or Docker? +v1ใ‹ใ‚‰ใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒกใ‚ฝใƒƒใƒ‰ใซsystemdใจDockerใจใ‚’้ธในใ‚‹ใ‚ˆใ†ใซใ—ใพใ—ใŸใ€‚ + +Dockerใจ่จ€ใฃใฆใ‚‚ใ€**Misskeyใ ใ‘ใ‚’DockerใงๅฎŸ่กŒ**ใ—ใ€Redisใ‚„Postgresใชใฉใฏใƒ›ใ‚นใƒˆใง็›ดๆŽฅๅฎŸ่กŒใ—ใพใ™ใ€‚ +[docker-composeใงใ™ในใฆใฎๆฉŸ่ƒฝใ‚’ๅ‹•ใ‹ใ™ๆ–นๆณ•ใซใคใ„ใฆใฏใ€mamemonongaใ•ใ‚“ใŒไฝœๆˆใ—ใŸใ“ใกใ‚‰ใฎ่จ˜ไบ‹ใŒใŠใ™ใ™ใ‚ใงใ™ใ€‚](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) + +Docker Hubใ‚คใƒกใƒผใ‚ธใ‚’ไฝฟใ†่จญๅฎšใงใ‚ใ‚Œใฐใ€Misskeyใฎใƒ“ใƒซใƒ‰ใŒไธ่ฆใซใชใ‚‹ใŸใ‚ใ€**ไธ€็•ชใŠๅ‹งใ‚ใงใ™**ใ€‚ +ใŸใ ใ—ใ€ใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใฏๅฟ…่ฆใชใฎใงใ€ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ™‚ใซMisskeyใ‚’ไฝฟใˆใชใ„ๆ™‚้–“ใŒใ‚ผใƒญใซใชใ‚‹ใ‚ใ‘ใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ +ใพใŸใ€Misskeyใฎใƒ“ใƒซใƒ‰็’ฐๅขƒใ‚’ๆบ–ๅ‚™ใ—ใชใ„(git pullใ—ใชใ„)ใฎใงใ€ใƒ•ใ‚ฉใƒผใ‚ฏใ‚’ๅ‹•ใ‹ใ—ใŸใใชใฃใŸๆ™‚ใซ่จญๅฎšใŒ้ขๅ€’ใซใชใ‚Šใพใ™ใ€‚ + +ใƒญใƒผใ‚ซใƒซใงDockerใ‚’ใƒ“ใƒซใƒ‰ใ™ใ‚‹ๆ–นๅผใฏใ€ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚น้ขใง้žๆŽจๅฅจใงใ™ใ€‚ + +systemdใฏใ€Docker Hubใซใ‚คใƒกใƒผใ‚ธใ‚’ไธŠใ’ใ‚‹ใพใงใ‚‚ใชใ„ใ‚‚ใฎใฎใ€ใƒ•ใ‚ฉใƒผใ‚ฏใ‚’ไฝฟใ„ใŸใ„ๅ ดๅˆใซใŠๅ‹งใ‚ใงใ™ใ€‚ + +ใŠๅ‹งใ‚ใ™ใ‚‹้ †็•ชใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚ + +1. Docker Hub +2. systemd +3. Dockerใƒ“ใƒซใƒ‰ + +## nginxใ‚’ไฝฟใ†ใ‹ใฉใ†ใ‹ +ใ‚ตใƒผใƒใƒผ1ๅฐใงMisskeyใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ๅ ดๅˆใฏใ€nginxใฎไฝฟ็”จใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚ + +ใƒญใƒผใƒ‰ใƒใƒฉใƒณใ‚ตใƒผใ‚’่จญ็ฝฎใ™ใ‚‹ๅ ดๅˆใซใฏnginxใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ›ใšใ€[Misskeyใฎnginx่จญๅฎš](https://github.com/misskey-dev/misskey/blob/develop/docs/examples/misskey.nginx)ใ‚’ๅ‚่€ƒใซใƒญใƒผใƒ‰ใƒใƒฉใƒณใ‚ตใƒผใ‚’่จญๅฎšใ™ใ‚‹ใฎใŒใ‚ˆใ„ใจๆ€ใ„ใพใ™ใ€‚ + +## Add more swaps! +ใ‚นใƒฏใƒƒใƒ—ใ‚’่จญๅฎšใ—ใฆใ„ใ‚‹ๅ ดๅˆใ€ใƒกใƒขใƒชใŒๅˆ่จˆใง3GBไปฅไธŠใงใชใ‘ใ‚Œใฐใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒๅ‹•ไฝœใ—ใชใ„ใ‚ˆใ†ใซใชใฃใฆใ„ใพใ™ใ€‚ + +## ้€”ไธญใงๅคฑๆ•—ใ—ใฆใพใŸใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๅฎŸ่กŒใ™ใ‚‹ๅ ดๅˆ +ไธ‡ใŒไธ€้€”ไธญใงๅคฑๆ•—ใ—ใฆใ‚‚ใ†ไธ€ๅบฆใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๅ‹•ไฝœใ•ใ›ใ‚‹ๅ ดๅˆใ€ๆฌกใฎใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ + +- Redisใ‚„Postgresใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใŒ็ต‚ใ‚ใฃใฆใ„ใ‚‹ๅ ดๅˆใ€ใ€Œinstall locallyใ€ใฏNoใซใ—ใฆใใ ใ•ใ„ใ€‚ + hostใƒปport่จญๅฎšใฏใใฎใพใพEnterใ‚’ๆŠผใ—ใพใ™ใ€‚ + ใƒฆใƒผใ‚ถใƒผๅใ‚„ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใฏใ€ๅ‰ๅ›žๅฎŸ่กŒใ—ใŸ้š›ใซๆŒ‡ๅฎšใ—ใŸใ‚‚ใฎใ‚’ๅ…ฅๅŠ›ใ—ใพใ™ใ€‚ + +## .envใƒ•ใ‚กใ‚คใƒซใซใคใ„ใฆ +ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏใ€2ใคใฎ.envใƒ•ใ‚กใ‚คใƒซใ‚’ไฝœๆˆใ—ใพใ™ใ€‚ +ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใฎ้š›ใซไฝฟ็”จใ—ใพใ™ใ€‚ + +### /root/.misskey.env +misskeyใ‚’ๅฎŸ่กŒใ™ใ‚‹ใƒฆใƒผใ‚ถใƒผใ‚’่ฆšใˆใฆใŠใใŸใ‚ใซๅฟ…่ฆใงใ™ใ€‚ + +### /home/(misskeyใƒฆใƒผใ‚ถใƒผ)/.misskey.env +systemdใฎๅ ดๅˆใซ็”Ÿๆˆใ•ใ‚Œใพใ™ใ€‚ +ไธปใซใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’่ฆšใˆใฆใŠใใฎใซไฝฟ็”จใ—ใพใ™ใ€‚ + +### /home/(misskeyใƒฆใƒผใ‚ถใƒผ)/.misskey-docker.env +Dockerใฎๅ ดๅˆใซ็”Ÿๆˆใ•ใ‚Œใพใ™ใ€‚ +ๅฎŸ่กŒใ•ใ‚Œใฆใ„ใ‚‹ใ‚ณใƒณใƒ†ใƒŠใจใ‚คใƒกใƒผใ‚ธใฎ็•ชๅทใ‚’ไฟๅญ˜ใ—ใฆใ„ใพใ™ใ€‚ +ใ‚ณใƒณใƒ†ใƒŠใฎ็•ชๅทใฏใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใฎ้š›ใซๆ›ดๆ–ฐใ•ใ‚Œใพใ™ใ€‚ๅคใ„ใ‚คใƒกใƒผใ‚ธใฏๅ‰Š้™คใ•ใ‚Œใพใ™ใ€‚ + +## ่‡ชๅˆ†ใง็ฎก็†ใ™ใ‚‹ +ใ‚คใƒณใ‚นใƒˆใƒผใƒซๅพŒใ€ๆง‹ๆˆใ‚’ๅค‰ๆ›ดใ™ใ‚‹้š›ใซๅฝน็ซ‹ใคใ‹ใ‚‚ใ—ใ‚Œใชใ„ใƒกใƒขใงใ™ใ€‚ + +"example.com"ใ‚’่‡ชๅˆ†ใฎใƒ‰ใƒกใ‚คใƒณใซ็ฝฎใๆ›ใˆใฆ่ชญใ‚“ใงใใ ใ•ใ„ใ€‚ + +### Misskeyใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช +Misskeyใฎใ‚ฝใƒผใ‚นใฏ`/home/ใƒฆใƒผใ‚ถใƒผ/ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช`ใจใ—ใฆcloneใ•ใ‚Œใพใ™ใ€‚ +๏ผˆใƒฆใƒผใ‚ถใƒผใ€ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใฎๅˆๆœŸๅ€คใฏใจใ‚‚ใซmisskeyใงใ™ใ€‚๏ผ‰ + +Misskeyใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใธใฏใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซ็งปๅ‹•ใ™ใ‚‹ใจใ‚ˆใ„ใงใ—ใ‚‡ใ†ใ€‚ + +``` +sudo -iu ใƒฆใƒผใ‚ถใƒผ +cd ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช +``` + +ใ‚‚ใจใฎใƒฆใƒผใ‚ถใƒผใซๆˆปใ‚‹ใซใฏexitใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚ + +``` +exit +``` + +### systemd +systemdใฎใƒ—ใƒญใ‚ปใ‚นๅใฏexample.comใงใ™ใ€‚ +ใŸใจใˆใฐๅ†่ตทๅ‹•ใ™ใ‚‹ใซใฏๆฌกใฎใ‚ˆใ†ใซใ—ใพใ™ใ€‚ + +``` +sudo systemctl restart example.com +``` + +journalctlใงใƒญใ‚ฐใ‚’็ขบ่ชใงใใพใ™ใ€‚ + +``` +journalctl -t example.com +``` + +่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฏ`/etc/systemd/system/example.com.service`ใจใ—ใฆไฟๅญ˜ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ + +### Docker +DockerใฏMisskeyใƒฆใƒผใ‚ถใƒผใงrootlessๅฎŸ่กŒใ•ใ‚Œใฆใ„ใพใ™ใ€‚ + +sudo ใงMisskeyใƒฆใƒผใ‚ถใƒผใซๅ…ฅใ‚‹ใจใใฏใ€`XDG_RUNTIME_DIR`ใจ`DOCKER_HOST`ใ‚’ๅค‰ๆ›ดใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ + +``` +sudo -iu ใƒฆใƒผใ‚ถใƒผ +export XDG_RUNTIME_DIR=/run/user/$UID +export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock + +# ใƒ—ใƒญใ‚ปใ‚นไธ€่ฆงใ‚’่กจ็คบ +docker ps + +# ใƒญใ‚ฐใ‚’่กจ็คบ +docker logs --tail 50 -f ใ‚ณใƒณใƒ†ใƒŠID +``` + +ใƒฏใƒณใƒฉใ‚คใƒŠใƒผใชใ‚‰ๆฌกใฎใ‚ˆใ†ใซใ—ใพใ™ใ€‚ + +``` +sudo -u ใƒฆใƒผใ‚ถใƒผ XDG_RUNTIME_DIR=/run/user/$(id -u ใƒฆใƒผใ‚ถใƒผ) DOCKER_HOST=unix:///run/user/$(id -u ใƒฆใƒผใ‚ถใƒผ)/docker.sock docker ps +``` + +### nginx +nginxใฎ่จญๅฎšใฏ`/etc/nginx/conf.d/example.com.conf`ใจใ—ใฆไฟๅญ˜ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ + +### Redis +requirepassใจbindใ‚’`/etc/redis/misskey.conf`ใง่จญๅฎšใ—ใฆใ„ใพใ™ใ€‚ + +## Q. ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๅพŒใซ502ใงใ‚ขใ‚ฏใ‚ปใ‚นใงใใชใ„ +Dockerใงใฏใ€่ตทๅ‹•ๅพŒใซใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใ‚’ใ™ใ‚‹ใŸใ‚ใ€ใ™ใใซใ‚ขใ‚ฏใ‚ปใ‚นใงใใพใ›ใ‚“ใ€‚ +ใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใŒ็ต‚ใ‚ใฃใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹็ขบ่ชใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚ + +ใใ‚Œใงใ‚‚ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๅพŒใซใ‚ขใ‚ฏใ‚ปใ‚นใงใใชใ„ใ€ใจใ„ใ†ใ“ใจใŒ็จ€ใซใ‚ใ‚Šใพใ™ใ€‚ + +ใ‚‚ใ—ใใฏใ€yarn installใซๅคฑๆ•—ใ—ใฆใ„ใ‚‹ใจใ„ใ†ใ‚‚ใฎใงใ™ใ€‚ + +Misskeyใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใงๆฌกใฎๅ†…ๅฎนใ‚’ๅฎŸ่กŒใ—ใ€ใ‚‚ใ†ไธ€ๅบฆใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’ๅฎŸ่กŒใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚ + +``` +npm run cleanall +``` + +journalctlใงใƒญใ‚ฐใ‚’็ขบ่ชใ™ใ‚‹ใจใ€ใŸใ„ใฆใ„re2ใŒไบ‘ใ€…ใจใ„ใ†่จ˜่ฟฐใŒ่ฆ‹ๅฝ“ใŸใ‚Šใพใ™ใ€‚ + +## Q. ๅŒใ˜ใ‚ตใƒผใƒใƒผใซใ‚‚ใ†1ใคMisskeyใ‚’ๅปบใฆใŸใ„ +ใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏๅŒใ˜ใ‚ตใƒผใƒใƒผใซ่ฟฝๅŠ ใงMisskeyใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ“ใจใฏๆƒณๅฎšใ—ใฆใ„ใพใ›ใ‚“ใ€‚ +ๅนพใคใ‹ใฎ่จญๅฎšใŒไธŠๆ›ธใใ•ใ‚Œใ‚‹ใ‹ใ€้€”ไธญใงใ‚จใƒฉใƒผใซใชใฃใฆใ—ใพใ†ใงใ—ใ‚‡ใ†ใ€‚ diff --git a/src/ko/docs/install/docker.md b/src/ko/docs/install/docker.md new file mode 100644 index 0000000000..3eac970875 --- /dev/null +++ b/src/ko/docs/install/docker.md @@ -0,0 +1,76 @@ +# Create Misskey instance with Docker + +This guide describes how to install and setup Misskey with Docker. + +::: Requirement +docker and docker-compose installed +::: + +## Get the repository + +```sh +git clone -b master https://github.com/misskey-dev/misskey.git +cd misskey +git checkout master +``` + +## Configure + +Copy example configuration files with following: + +```sh +cp .config/example.yml .config/default.yml +cp .config/docker_example.env .config/docker.env +``` + +Edit `default.yml` and `docker.env` according to the instructions in the files. + +::: warning +In the `default.yml`, the hosts that set with `localhost` from Postgresql/Redis should be set to `db`/`redis` respectively. +::: + +Edit `docker-compose.yml` if necessary. (e.g. if you want to change the port). + +## Build and initialize + +The following command will build Misskey and initialize the database. +This will take some time. + +```shell +sudo docker-compose build +sudo docker-compose run --rm web pnpm run init +``` + +## Launch + +Well done! You can start Misskey with the following command. + +```sh +sudo docker-compose up -d +``` + +GLHFโœจ + +## How to update your Misskey server + +::: warning +When updating, be sure to check the [release notes](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) to know in advance the changes and whether or not additional work is required (in most cases, it is not). +::: + +```sh +git stash +git checkout master +git pull +git submodule update --init +git stash pop +sudo docker-compose build +sudo docker-compose stop && sudo docker-compose up -d +``` + +It may take some time depending on the contents of the update and the size of the database. + +## How to execute CLI command + +```sh +sudo docker-compose run --rm web node packages/backend/built/tools/foo bar +``` diff --git a/src/ko/docs/install/kubernetes.md b/src/ko/docs/install/kubernetes.md new file mode 100644 index 0000000000..b1d9a69deb --- /dev/null +++ b/src/ko/docs/install/kubernetes.md @@ -0,0 +1,29 @@ +# Create Misskey Instance with Kubernetes/TrueNAS + +This guide describes how to install and setup Misskey using Kubernetes and Helm charts. + +## TrueCharts and TrueNAS Scale + +The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/docs/charts/incubator/misskey) site has a list of all the charts available as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the _incubator_ train. + +::: Requirements +TrueNAS Scale or Kubernetes cluster & Helm +::: + +## TrueNAS Scale + +Follow the instructions on the [TrueCharts Guide](https://truecharts.org/docs/manual/guides/Adding-TrueCharts). Add the _incubator_ train, and install the Misskey app. The only Misskey configuration option that is required is the instance URL. The app also uses the Traefik reverse proxy to expose the service to the outside world over HTTPS. TrueCharts integrates with Traefik by default, but other options can be used with manual configuration. + +## Manual Helm + +If you are not using TrueNAS Scale, you can install Misskey using Helm directly. The `misskey` object in the values.yaml file has the options that you will want to override as necessary. The `misskey.url` property is the only required change. A reverse proxy is recommended to secure access to the server as the chart does not currently support enabling TLS inside the Misskey container. + +``` +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install misskey TrueCharts/misskey +``` + +## Upgrade Misskey + +To upgrade Misskey, use the upgrade feature built into TrueNAS Scale or if running kubernetes manually use [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) and [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). It is highly recommended to create a snapshot of your data before upgrading in case there is an issue and you need to rollback. diff --git a/src/ko/docs/install/manual.md b/src/ko/docs/install/manual.md new file mode 100644 index 0000000000..985dc97f1f --- /dev/null +++ b/src/ko/docs/install/manual.md @@ -0,0 +1,195 @@ +# Misskey Setup and Installation Guide + +We thank you for your interest in setting up your Misskey server! +This guide describes how to install and setup Misskey. + +--- + +## _1._ Install dependencies + +Please install and setup these softwares: + +#### Dependencies :package: + +- **[Node.js](https://nodejs.org/en/)** (16.x) +- **[PostgreSQL](https://www.postgresql.org/)** (12.x / 13.x is preferred) +- **[Redis](https://redis.io/)** + +##### Optional + +- [Yarn](https://yarnpkg.com/) _Optional but recommended for security reason. If you won't install it, use `npx yarn` instead of `yarn`._ +- [FFmpeg](https://www.ffmpeg.org/) + +## _2._ Create Misskey user + +Running misskey as root is not a good idea so we create a user for that. +In debian for exemple : + +```sh +adduser --disabled-password --disabled-login misskey +``` + +## _3._ Install Misskey + +1. Connect to the `misskey` user + + `sudo -iu misskey` + +2. Clone the Misskey repository + + `git clone --recursive https://github.com/misskey-dev/misskey.git` + +3. Navigate to the repository + + `cd misskey` + +4. Check out the [latest release](https://github.com/misskey-dev/misskey/releases/latest) + + `git checkout master` + +5. Download submodules + + `git submodule update --init` + +6. Install Misskey's dependencies + + `pnpm install --frozen-lockfile` + +## _4._ Configure Misskey + +1. Copy the `.config/example.yml` and rename it to `default.yml`. + + `cp .config/example.yml .config/default.yml` + +2. Edit `default.yml` + +## _5._ Build Misskey + +Build misskey with the following: + +`NODE_ENV=production pnpm run build` + +If you're on Debian, you will need to install the `build-essential`, `python` package. + +## _6._ Init DB + +1. Create the appropriate PostgreSQL users with respective passwords, + and empty database as named in the configuration file. + Make sure the database connection also works correctly when run from the + user that will later run Misskey, or it could cause problems later. + `sudo -u postgres psql` + `create database misskey;` + `create user misskey with encrypted password '{YOUR_PASSWORD}';` + `grant all privileges on database misskey to misskey;` + `\q` + +2. Run the database initialisation + `pnpm run init` + +## _7._ That is it. + +Well done! Now, you have an environment that run to Misskey. + +### Launch normally + +Just `NODE_ENV=production pnpm run start`. GLHF! + +### Launch with systemd + +1. Create a systemd service here + + `/etc/systemd/system/misskey.service` + +2. Edit it, and paste this and save: + + ::: details + + ``` + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + ``` + + ::: + +3. Reload systemd and enable the misskey service. + + `sudo systemctl daemon-reload; sudo systemctl enable misskey` + +4. Start the misskey service. + + `sudo systemctl start misskey` + +You can check if the service is running with `systemctl status misskey`. + +### Launch with OpenRC + +1. Copy the following text to `/etc/init.d/misskey`: + + ::: details + + ```sh + #!/sbin/openrc-run + + name=misskey + description="Misskey daemon" + + command="/usr/bin/npm" + command_args="start" + command_user="misskey" + + supervisor="supervise-daemon" + supervise_daemon_args=" -d /home/misskey/misskey -e NODE_ENV=\"production\"" + + pidfile="/run/${RC_SVCNAME}.pid" + + depend() { + need net + use logger + + # alternatively, uncomment if using nginx reverse proxy + #use logger nginx + } + ``` + + ::: + +2. Set the service to start on boot + + `rc-update add misskey` + +3. Start the Misskey service + + `rc-service misskey start` + +You can check if the service is running with `rc-service misskey status`. + +### How to update your Misskey server to the latest version + +1. `git checkout master` +2. `git pull` +3. `git submodule update --init` +4. `NODE_ENV=production pnpm install --frozen-lockfile` +5. `NODE_ENV=production pnpm run build` +6. `yarn migrate` +7. Restart your Misskey process to apply changes +8. Enjoy + +If you encounter any problems with updating, please try the following: + +1. `pnpm run clean` or `pnpm run clean-all` +2. Retry update (Don't forget `pnpm install`) diff --git a/src/ko/docs/install/ubuntu-manual.md b/src/ko/docs/install/ubuntu-manual.md new file mode 100644 index 0000000000..8fbb237c90 --- /dev/null +++ b/src/ko/docs/install/ubuntu-manual.md @@ -0,0 +1,530 @@ +# Ubuntu ็‰ˆ Misskey ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ•่ฉณ่ชฌ + +์•ˆ๋‚ด: ์ด ๋ฌธ์„œ๋Š” ์•„์ง ์˜๋ฌธ/๊ตญ๋ฌธ์œผ๋กœ ๋ฒˆ์—ญ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํŽ˜์ด์ง€๋Š” ์ผ๋ณธ์–ด๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. + +## ใใฎไป–ใฎ Misskey ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ• + +- [ๅŸบๆœฌ็‰ˆ Misskey ๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual) +- [ใใฎไป–ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ–นๆณ•ไธ€่ฆง](../install) + +## ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎใŠ็Ÿฅใ‚‰ใ› + +ใ‚ณใƒ”ใƒšใฐใ‹ใ‚Šใงใคใพใ‚‰ใชใ„๏ผๆ™‚้–“ใŒใ‹ใ‹ใ‚‹๏ผใจใซใ‹ใ้ขๅ€’๏ผ +โ€ฆโ€ฆใ‚ใ‚Œใ€ใ‚ณใƒ”ใƒšใ ใ‘ใงใงใใ‚‹ใชใ‚‰ใ€ๅฎŒๅ…จ่‡ชๅ‹•ๅŒ–ใงใใ‚‹ใฎใงใฏ๏ผŸ + +ใจใ„ใ†ใ‚ใ‘ใงใ€**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใปใผๅ…จ้ƒจใ‚„ใฃใฆใใ‚Œใ‚‹ใ‚„ใคใ‚’ไฝœใฃใฆใฟใพใ—ใŸ๏ผ**\ +[**่ฉณ็ดฐใจไฝฟ็”จๆ–นๆณ•ใฏใ“ใกใ‚‰ใ‹ใ‚‰๏ผ**](./bash.html) + +::: tip +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎ้–‹็™บ็’ฐๅขƒใธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๆƒณๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ +::: + +::: tip +ใƒ‰ใƒกใ‚คใƒณใฎ่ณผๅ…ฅใจ Cloudflare ใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ€ใ‚ตใƒผใƒใƒผใฎ็ขบไฟใซใคใ„ใฆใฏใ”่‡ช่บซใงใ”ๆบ–ๅ‚™ใใ ใ•ใ„ใ€‚ +::: + +ไธๅ…ทๅˆใŒใ‚ใ‚Œใฐ[ @aqz@p1.a9z.dev ใธใฎใƒกใƒณใ‚ทใƒงใƒณ](https://p1.a9z.dev/@aqz)ใซใฆใŠ็Ÿฅใ‚‰ใ›ใ„ใŸใ ใ‘ใ‚Œใฐใจๆ€ใ„ใพใ™ใ€‚ + +## ใ“ใฎ่จ˜ไบ‹ใซใคใ„ใฆ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskey ๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใง็ดนไป‹ใ•ใ‚Œใฆใ„ใ‚‹้€šใ‚Šใ€systemd ใง Misskey ใ‚’ๅ‹•ไฝœใ•ใ›ใฆใ„ใพใ™ใ€‚ + +[docker-compose](./docker.html)ใชใ‚‰ใ€ๆ‰‹ไฝœๆฅญใงใ‚‚ใ‚‚ใ†ใกใ‚‡ใฃใจ็ฐกๅ˜ใซๅฎŸ่กŒใงใใ‚‹ใฏใšใงใ™ใ€‚ + +## ใฏใ˜ใ‚ใซ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskey ๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใ‚’ๅŸบใซใ€ไธ€่ˆฌ็š„ใช Ubuntu ใ‚ตใƒผใƒใƒผใธ Misskey ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ๅ…ฌ้–‹ใ™ใ‚‹ๆ–นๆณ•ใฎไธ€ๆŒ™ๆ‰‹ไธ€ๆŠ•่ถณใ‚’่งฃ่ชฌใ™ใ‚‹ใ€‚ + +Bash ใฎใ‚ณใƒžใƒณใƒ‰ๅ…ฅๅŠ›ใ€ใ„ใใคใ‹ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ็ทจ้›†ใ€ใใ—ใฆใƒ–ใƒฉใ‚ฆใ‚ถใฎๆ“ไฝœใ ใ‘ใง่จญๅฎšใŒๅฎŒไบ†ใ™ใ‚‹ใ‚ˆใ†ใซใ—ใฆใ„ใ‚‹ใ€‚ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใซใคใ„ใฆ็ฐกๅ˜ใซ่ชฌๆ˜Žใ—ใฆใ„ใ‚‹ใŒใ€ๆฐ—ใซใ™ใ‚‹ๅฟ…่ฆใฏใชใ„ใ€‚ + +ๅคงใพใ‹ใชๆตใ‚ŒใฏไธŠใฎ**็›ฎๆฌก**ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ๅฑ•้–‹ใ™ใ‚‹ใ“ใจใง็ขบ่ชใงใใ‚‹ใ€‚ + +ใ“ใฎ่จ˜ไบ‹ใงใฏใ€ๅ…ทไฝ“ๆ€งใ‚’้‡่ฆ–ใ—ใ€็‰นๅฎšใฎ็’ฐๅขƒใซ็‰นๅŒ–ใ—ใŸ่จ˜่ฟฐใ‚’ใ—ใฆใ„ใ‚‹ใ€‚ + +OS ใฎ้•ใ„ใ€Misskey ๆœฌไฝ“ใ‚„ไพๅญ˜ใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใƒใƒผใ‚ธใƒงใƒณใ‚ขใƒƒใƒ—ใงๅค‰ใ‚ใฃใฆใ—ใพใฃใŸ้ƒจๅˆ†็ญ‰ใŒใ‚ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใŒใ€ใ”ๅฎน่ตฆใ„ใŸใ ใใŸใๆ€ใ†ใ€‚ + +ใ‚ใ‹ใ‚‰ใชใ„ๅ˜่ชžใซใคใ„ใฆใฏใ€[ใ€Žใ€Œๅˆ†ใ‹ใ‚Šใใ†ใ€ใงใ€Œๅˆ†ใ‹ใ‚‰ใชใ„ใ€ใงใ‚‚ใ€Œๅˆ†ใ‹ใฃใŸใ€ๆฐ—ใซใชใ‚Œใ‚‹ IT ็”จ่ชž่พžๅ…ธใ€](https://wa3.i-3-i.info/) ใง่ชฟในใฆๅˆ†ใ‹ใฃใŸๆฐ—ใซใชใฃใฆใปใ—ใ„ใ€‚ + +## ็’ฐๅขƒใจๆกไปถ + +- OS ใฏ**Ubuntu 22.04.1 LTS**ใ‚’ๅˆฉ็”จใ™ใ‚‹ใ€‚ +- ใƒใƒผใƒ‰ใ‚ฆใ‚งใ‚ข่ฆไปถใจใ—ใฆใฏใ€CPU ใฏๆœ€่ฟ‘ใฎใ‚‚ใฎใชใ‚‰ๆœ€ๅฐ้™ใงๅ‹•ใใ€‚ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใฏ amd64 ๅŠใณ arm64 ใ‚’ๆƒณๅฎšใ—ใฆใ„ใ‚‹ใ€‚ +- ใƒกใƒขใƒชใฏ 1.5GB ็จ‹ๅบฆใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚๏ผˆVite ใฎๅฐŽๅ…ฅ็ญ‰ใซใ‚ˆใ‚Šใ€1.5GB ็จ‹ๅบฆใงใ‚‚ใƒ“ใƒซใƒ‰ๅฏ่ƒฝใซใชใฃใŸ๏ผ‰ +- ็‹ฌ่‡ชใฎใƒ‰ใƒกใ‚คใƒณใ‚’่ณผๅ…ฅใ—ใ€CloudFlare ใ‚’ไฝฟ็”จใ™ใ‚‹ใ€‚ +- ใƒ‰ใƒกใ‚คใƒณใฏ[Google Domains](https://domains.google/intl/ja_jp/)ใชใฉใงไบˆใ‚็”จๆ„ใ—ใฆใŠใใ“ใจใ€‚ +- ใ“ใ“ใงใฏใƒ‰ใƒกใ‚คใƒณใ‚’ example.tld ใจใ—ใฆ่งฃ่ชฌใ‚’้€ฒใ‚ใ‚‹ใฎใงใ€่‡ชๅˆ†ใŒ่ฒทใฃใŸใƒ‰ใƒกใ‚คใƒณใซ้ฉๅฎœ็ฝฎใๆ›ใˆใฆ่ชญใ‚€ใ“ใจใ€‚้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏ localhost ใจ่ชญใฟๆ›ฟใˆใพใ™๏ผˆ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ้ …ใงๅˆฅ้€”่ชฌๆ˜Ž๏ผ‰ + +## nano ใฎไฝฟใ„ๆ–น + +ไปŠๅ›žใฏใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒ‡ใ‚ฃใ‚ฟใƒผใซ nano ใ‚’ไฝฟใ†ใ€‚ๆฌกใฎใ‚ˆใ†ใซ่ตทๅ‹•ใ™ใ‚‹ใ€‚ + + nano /path/to/file + +ไธ€่ˆฌ็š„ใช็Ÿขๅฐใƒœใ‚ฟใƒณใ‚„ Home/End ใชใฉใ‚’ๅˆฉ็”จใ—ใฆใ‚ซใƒผใ‚ฝใƒซใ‚’็งปๅ‹•ใงใใ‚‹ใ€‚ + +็ต‚ไบ†ใฏ Ctrl+X ใงใ€ๅค‰ๆ›ดใ‚’ไฟๅญ˜ใ™ใ‚‹ใ‹่žใ‹ใ‚ŒใŸๅ ดๅˆ Y(Yes)ใ‚’ๅ…ฅๅŠ›ใ— Enter ใ™ใ‚‹ใจไฟๅญ˜ใงใใ‚‹ใ€‚ + +ไธ‹้ƒจใซใ‚ณใƒžใƒณใƒ‰ไธ€่ฆงใŒ่กจ็คบใ•ใ‚Œใ‚‹ใฎใงใ€^ใ‚’ Ctrlใ€M-ใ‚’ Alt ใจ่ชญใฟๆ›ฟใˆใฆๅ‚่€ƒใซใ—ใ‚ˆใ†ใ€‚ + +## ใƒฆใƒผใ‚ถใƒผใฎไฝœๆˆ + +Misskey ใฏ root ใงๅฎŸ่กŒใ—ใชใ„ๆ–นใŒใ‚ˆใ„ใŸใ‚ใ€ๅฐ‚็”จใฎใƒฆใƒผใ‚ถใƒผใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo adduser --disabled-password --disabled-login misskey + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏใƒฆใƒผใ‚ถใƒผใ‚’ๅˆ†ใ‘ใ‚‹ๅฟ…่ฆใฏใ‚ใ‚Šใพใ›ใ‚“ +::: + +## ๅŸบๆœฌ็š„ใชใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใจ่จญๅฎš + +ๅŸบๆœฌ็š„ใชใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’่กŒใ†ใ€‚ + +### Node.js + +Node.js ใฏใ€ใ‚ตใƒผใƒใƒผใ‚ตใ‚คใƒ‰ JavaScript ็’ฐๅขƒใงใ‚ใ‚Šใ€Misskey ใฎๅŸบๆœฌ็š„ใชๅฎŸ่กŒ็’ฐๅขƒใงใ‚ใ‚‹ใ€‚ + + sudo apt install -y curl + + curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - + + sudo apt install -y nodejs + + # Node.jsใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใฎใงใ€ใƒใƒผใ‚ธใƒงใƒณใ‚’็ขบ่ชใ™ใ‚‹ใ€‚ + node -v + +v18.x.x ใชใฉใจ่กจ็คบใ•ใ‚Œใ‚Œใฐ OKใ€‚v8.x.x ใฎใ‚ˆใ†ใซไฝŽใ„ใƒใƒผใ‚ธใƒงใƒณใŒ่กจ็คบใ•ใ‚ŒใŸๅ ดๅˆใฏใ€ๆญฃใ—ใใ‚คใƒณใ‚นใƒˆใƒผใƒซใŒ่กŒใˆใฆใ„ใชใ„ใŸใ‚ใ€ใ‚ตใƒผใƒใƒผใ‚’ๅ†่ตทๅ‹•ใ—ใฆใ‚‚ใ†ไธ€ๅบฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—็›ดใ™ใชใฉใ—ใฆใฟใ‚ˆใ†ใ€‚ + +### PostgreSQL + +PostgreSQL ใฏใ€ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆ้–ขไฟ‚ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚น็ฎก็†ใ‚ทใ‚นใƒ†ใƒ ใงใ‚ใ‚Šใ€Misskey ใฎ็จฎใ€…ใฎใƒ‡ใƒผใ‚ฟใ‚’ไฟๅญ˜ใ™ใ‚‹ใŸใ‚ใซๅฟ…่ฆไธๅฏๆฌ ใชใ‚ฝใƒ•ใƒˆใ ใ€‚ + +#### ใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๅฎŸ่กŒใ—ใ€ๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณ๏ผˆv15๏ผ‰ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใ‚ˆใ†ใ€‚ + + sudo apt install -y postgresql-common + + sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; + + # systemctlใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + systemctl status postgresql + +active ใชใ‚‰ OKใ€‚ + +#### ใƒฆใƒผใ‚ถใƒผใจใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎไฝœๆˆ + +psql ใ‚’่ตทๅ‹•ใ€‚ + + sudo -u postgres psql + +Misskey ใงไฝฟใ†ใƒฆใƒผใ‚ถใƒผใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚\ +ใƒฆใƒผใ‚ถใƒผๅใ‚’ misskeyใ€ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใ‚’ hoge ใจใ™ใ‚‹ๅ ดๅˆใฏๆฌกใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚\ +๏ผˆLinux ใฎใƒฆใƒผใ‚ถใƒผใจ PostgreSQL ใฎใƒฆใƒผใ‚ถใƒผใฏๅˆฅ็‰ฉใชใฎใงใ€ๆททๅŒใ—ใชใ„ใ‚ˆใ†ๆณจๆ„ใ™ใ‚‹ใ“ใจใ€‚๏ผ‰ + + CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'hoge'; + +ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ไฝœๆˆใ€‚ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นๅใ‚’ mk1 ใจใ—ใฆใ„ใ‚‹ใ€‚ + + CREATE DATABASE mk1 OWNER misskey; + ยฅq + +### Redis + +Redis ใฏใ€NoSQL ใฎใ‚คใƒณใƒกใƒขใƒชใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚ฝใƒ•ใƒˆใงใ‚ใ‚Šใ€ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚„้€ฃๅˆใจใฎ้€šไฟกใ‚’็ฎก็†ใ™ใ‚‹ใชใฉใฎใŸใ‚ใซๅฟ…่ฆใ ใ€‚ +redis.io ใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใซๅพ“ใ„ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ https://redis.io/docs/getting-started/installation/install-redis-on-linux/ + + sudo apt install -y curl ca-certificates gnupg2 lsb-release + + curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg + + echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list + + sudo apt update + + sudo apt install -y redis + +systemctl ใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + + systemctl status redis-server + +active ใชใ‚‰ OKใ€‚ + +### nginx + +nginx ใฏใ€ไธปใจใ—ใฆใƒชใƒใƒผใ‚นใƒ—ใƒญใ‚ญใ‚ทใซ็”จใ„ใ‚‰ใ‚Œใ‚‹ Web ใ‚ตใƒผใƒใƒผใ‚ฝใƒ•ใƒˆใงใ‚ใ‚‹ใ€‚Misskey ใซใฏๅฟ…้ ˆใงใฏใชใ„ใŒใ€ใ‚ญใƒฃใƒƒใ‚ทใƒฅ็ญ‰ใ‚’ใ™ใ‚‹ใจใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใŒๅ‘ไธŠใ—ใŸใ‚Šใ€http ใ‹ใ‚‰ https ใธใฎ่ปข้€ใชใฉใ‚’ใ™ใ‚‹ใŸใ‚ใซใ€ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใฆใŠใ“ใ†ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏ nginx ใฎใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใฏไธ่ฆใงใ™ +::: + +nginx.org ใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ http://nginx.org/en/linux_packages.html#Ubuntu ใซๅพ“ใฃใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ + + sudo apt install ubuntu-keyring + + curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null + + gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg + +ใ“ใฎใจใๅ‡บๅŠ›ใซ 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 ใจใ‚ใ‚‹ใ‹็ขบ่ชใ™ใ‚‹ใ€‚ + + echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list + + echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx + + sudo apt update + + sudo apt install -y nginx + +systemctl ใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚ + + systemctl status nginx + +active ใชใ‚‰ OKใ€‚ใใ†ใงใชใ‘ใ‚Œใฐใ€ๆฌกใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ€‚ + + sudo systemctl start nginx + + sudo systemctl enable nginx + + ใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใ€\*Welcome to nginx!\*ใจ่กจ็คบใ•ใ‚Œใ‚Œใฐ OKใ€‚\ +curl ใง็ขบ่ชใ™ใ‚‹ใฎใ‚‚ใ‚ˆใ„ใ ใ‚ใ†ใ€‚ + + curl http://localhost + +### ใใฎไป– + +Git๏ผˆใƒใƒผใ‚ธใƒงใƒณ็ฎก็†ใ‚ฝใƒ•ใƒˆ๏ผ‰ใŠใ‚ˆใณ build-essential๏ผˆMisskey ใฎใƒ“ใƒซใƒ‰ๆ™‚ใซๅฟ…่ฆ๏ผ‰ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ€‚ + + sudo apt update + + sudo apt install -y git build-essential + +## ่ฟฝๅŠ ใฎ่จญๅฎšใจใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ‚ตใƒผใƒใƒผใ‚’ใ‚คใƒณใ‚ฟใƒผใƒใƒƒใƒˆใซๅ…ฌ้–‹ใ™ใ‚‹ๆบ–ๅ‚™ใ‚’ใ™ใ‚‹ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซใ‚„ CloudFlareใ€Certbot ใฎ่จญๅฎšใฏไธ่ฆใงใ™ +::: + +### ใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซ + +ไปŠๅ›žใฏใ€ใƒ•ใ‚กใ‚คใƒคใƒผใ‚ฆใ‚ฉใƒผใƒซใจใ—ใฆ ufw ใ‚’ไฝฟ็”จใ™ใ‚‹ใ€‚ + +ๆฌกใงใฏใ€ๆŽฅ็ถš่จฑๅฏใ‚’ใƒ›ใƒฏใ‚คใƒˆใƒชใ‚นใƒˆๅฝขๅผใจใ—ใ€22 ็•ช SSH ใƒใƒผใƒˆใ‚’ๆŽฅ็ถšๅ›žๆ•ฐๅˆถ้™ใ‚’่จญใ‘ใชใŒใ‚‰้–‹ๆ”พใ€80 ็•ช HTTP ใƒใƒผใƒˆๅŠใณ 443 ็•ช HTTPS ใƒใƒผใƒˆใ‚’้–‹ๆ”พใจใ—ใŸใ€‚ + + sudo ufw enable + + sudo ufw default deny + + sudo ufw limit 22 + + sudo ufw allow 80 + + sudo ufw allow 443 + +ufw ใฎใ‚นใƒ†ใƒผใ‚ฟใ‚นใ‚’็ขบ่ชใ—ใฆใŠใใ€‚ + + sudo ufw status + +systemctl ใงๆฐธ็ถšๅŒ–ใ™ใ‚‹ใ€‚ + + sudo systemctl enable ufw + +::: tip +ufw ใฏใ€netfilter(iptables)ใ‚’ไบบ้–“ใŒๆ“ไฝœใ—ใ‚„ใ™ใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ‚ขใƒ—ใƒชใ ใ€‚ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏใ€OCI ็’ฐๅขƒใงใฏ netfilter ใ‚’็›ดๆŽฅๆ“ไฝœใ™ใ‚‹ใ€‚ +::: + +### CloudFlare + +CloudFlare ใฏใ€่‡ชๅˆ†ใฎใƒ‰ใƒกใ‚คใƒณใซๅฏพใ—ใฆ DNS ใ‚ตใƒผใƒใƒผใƒปใƒชใƒใƒผใ‚นใƒ—ใƒญใ‚ญใ‚ทใƒปCDN ใ‚’ใ„ใฃใบใ‚“ใซๆไพ›ใ—ใฆใใ‚Œใ‚‹ใŸใ„ใธใ‚“ไพฟๅˆฉใชใ‚ตใƒผใƒ“ใ‚นใงใ‚ใ‚‹ใ€‚\ +CloudFlare ใ‚’็ตŒ็”ฑใ›ใšใซใ‚ตใƒผใƒใƒผใ‚’ๅ…ฌ้–‹ใ™ใ‚‹ใ“ใจใ‚‚ๅฏ่ƒฝใ ใŒใ€ใŸใ„ใธใ‚“ไพฟๅˆฉใชใฎใงๅฐŽๅ…ฅใ™ใ‚‹ใ“ใจใ‚’ใŠๅ‹งใ‚ใ™ใ‚‹ใ€‚ +[**โ†’ CDN ใฎ่จญๅฎš**](/docs/admin/cdn.html) + +[CloudFlare ใซใ‚ตใ‚คใƒณใ‚ขใƒƒใƒ—](https://dash.cloudflare.com/sign-up) ใ—ใ€่ณผๅ…ฅใ—ใŸใƒ‰ใƒกใ‚คใƒณใ‚’ๆกˆๅ†…ใซๅพ“ใฃใฆ็™ป้Œฒใ™ใ‚‹ใ€‚ + +DNS ใฎ็™ป้Œฒ็”ป้ขใงใ‚ตใƒผใƒใƒผใฎ IP ใ‚ขใƒ‰ใƒฌใ‚นใ‚’ๅ…ฅๅŠ›ใ—ใฆใŠใใจใ‚ˆใ„ใ€‚ + +ใƒ‰ใƒกใ‚คใƒณใ‚’่ณผๅ…ฅใ—ใŸๆ‰€ใซใ‚ˆใฃใฆใฏ้ฉ็”จใซ 3 ๆ—ฅ็จ‹ๅบฆใ‹ใ‹ใ‚‹ๅ ดๅˆใŒใ‚ใ‚‹ใ€‚ + +### Certbot (Letโ€™s Encrypt) ใฎ่จญๅฎš + +HTTPS๏ฝฅWSS ้€šไฟกใซไฝฟ็”จใ™ใ‚‹่จผๆ˜Žๆ›ธใ‚’ CloudFlare ใ‚’ไฝฟใ†ๆ–นๅผใง Letโ€™s Encrypt ใ‹ใ‚‰ๅ–ๅพ—ใ™ใ‚‹ใ€‚ + +certbot ใจ CloudFlare ใƒ—ใƒฉใ‚ฐใ‚คใƒณใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ + + sudo apt install -y certbot python3-certbot-dns-cloudflare + +Cloudflare ใฎ API ใ‚ญใƒผใ‚’ๅ–ๅพ—ใ™ใ‚‹ใ€‚ไปฅไธ‹ใฎๆ‰‹้ †ใงๅ–ๅพ—ใ•ใ‚ŒใŸใ„ใ€‚ + +1. ใซใ‚ขใ‚ฏใ‚ปใ‚น +2. Global API Key ใฎ View ใ‚’้ธๆŠž +3. ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใ‚’ๅ…ฅๅŠ›ใ— hCaptcha ใ‚’่งฃ้™คใ€View ใ‚’้ธๆŠž + +CloudFlare ใฎๆƒ…ๅ ฑใ‚’่จ˜่ผ‰ใ—ใŸ่จญๅฎšใƒ•ใ‚กใ‚คใƒซ/etc/cloudflare/cloudflare.ini ใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + mkdir /etc/cloudflare + nano /etc/cloudflare/cloudflare.ini + +dns_cloudflare_email๏ผˆไธ‹ใฎไพ‹ใงใฏbar@fuga.foo๏ผ‰ใซใฏ CloudFlare ใง็™ป้Œฒใ—ใฆใ„ใ‚‹ใƒกใƒผใƒซใ‚ขใƒ‰ใƒฌใ‚นใ‚’่จญๅฎšใ™ใ‚‹ใ€‚ + + dns_cloudflare_email = bar@fuga.foo + dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx + +ใ“ใ‚Œใ‚’ไฟๅญ˜ใ—ใ€ใƒ‘ใƒผใƒŸใƒƒใ‚ทใƒงใƒณใ‚’ 600 ใซ่จญๅฎšใ€‚ + + sudo chmod 600 /etc/cloudflare/cloudflare.ini + +ๆบ–ๅ‚™ใŒใงใใŸใฎใงใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ€‚**้€”ไธญใฎ 2 ็ฎ‡ๆ‰€ใฎ example.tld ใฏ่‡ชๅˆ†ใฎใ‚‚ใฎใซ็ฝฎใๆ›ใˆใ‚‹ใ“ใจ**ใ€‚ + + sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld + +\*Congratulations!\*ใจ่กจ็คบใ•ใ‚ŒใŸใ‚‰ OKใ€‚็”Ÿๆˆใ•ใ‚ŒใŸ.pem ใƒ•ใ‚กใ‚คใƒซใฎใƒ‘ใ‚นใฏไปŠๅพŒไฝฟใ†ใฎใง่จ˜้Œฒใ—ใฆใŠใใ“ใจใ€‚ + +่‡ชๅ‹•ๆ›ดๆ–ฐใฎ่จญๅฎšใฏใ‚คใƒณใ‚นใƒˆใƒผใƒซใจๅŒๆ™‚ใซ่กŒใ‚ใ‚Œใฆใ„ใ‚‹ใŸใ‚ไธ่ฆใ€‚ + +## Misskey ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ + +ใ“ใ‚Œใงๅ‰ๆบ–ๅ‚™ใฏใ‚ใ‚‰ใ‹ใŸ็ต‚ใ‚ใฃใŸใฎใงใ€Misskey ใ‚’ๆบ–ๅ‚™ใ—ใฆใ„ใใ€‚ + +misskey ใƒฆใƒผใ‚ถใƒผใซๅค‰ๆ›ดใ€‚ + + sudo su - misskey + +Git ใงใƒ•ใ‚กใ‚คใƒซ้กžใ‚’ๅฑ•้–‹ใ€‚ + + git clone -b master https://github.com/misskey-dev/misskey.git + + cd misskey + + git checkout master + +ๅฟ…่ฆใช npm ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ€‚ + + npx yarn install + +## Misskey ใ‚’่จญๅฎšใ™ใ‚‹ + +### default.yml + +่จญๅฎšใƒ•ใ‚กใ‚คใƒซ.config/default.yml ใ‚’ไฝœๆˆใ€‚ + + nano .config/default.yml + +ๆฌกใฎๅ†…ๅฎนใ‚’่ฒผใ‚Šไป˜ใ‘ใ€้ฉๅฎœ็ฝฎใๆ›ใˆใ‚‹ใ€‚่จญๅฎšๅ€คใฎๅค‰ๆ›ดใŒๅฟ…่ฆใช็ฎ‡ๆ‰€ใฏ โ— ใงใ€ใ“ใ‚Œใพใงใฎๆตใ‚Œใฎไธญใง่จญๅฎšใ—ใŸๅ€คใ‚’็”จใ„ใ‚‹็ฎ‡ๆ‰€ใฏใ€‡ใง็คบใ—ใŸใ€‚ + +ใ“ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฏ YAML ๅฝขๅผใงๆ›ธใ‹ใ‚ŒใฆใŠใ‚Šใ€่กŒ้ ญใฎใ‚นใƒšใƒผใ‚นใฎๆ•ฐใชใฉใ‚’้–“้•ใˆใ‚‹ใจ Misskey ใŒๅ‹•ใ‹ใชใ„ใฎใงใ€็‰นใซๆณจๆ„ใ™ใ‚‹ใ“ใจใ€‚ + +่จญๅฎšใงใใ‚‹ๅ€คใจ่จ˜่ฟฐๆ–นๆณ•ใฏ[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)ใซๆ›ธใ‹ใ‚Œใฆใ„ใ‚‹ใ€‚ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€url ใฏ`url: http://localhost:3000`ใจๆŒ‡ๅฎšใ—ใพใ™ใ€‚ +::: + + # โ— Misskeyใ‚’ๅ…ฌ้–‹ใ™ใ‚‹URL + url: https://example.tld/ + + # ใ€€ ใƒใƒผใƒˆใ‚’3000ใจใ™ใ‚‹ใ€‚ + port: 3000 + + # โ— PostgreSQLใฎ่จญๅฎšใ€‚ + db: + host: localhost + port: 5432 + db : mk1 # ใ€‡ PostgreSQLใฎใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นๅ + user: misskey # ใ€‡ PostgreSQLใฎใƒฆใƒผใ‚ถใƒผๅ + pass: hoge # โ— PostgreSQLใฎใƒ‘ใ‚นใƒฏใƒผใƒ‰ + + # ใ€€ Redisใฎ่จญๅฎšใ€‚ + redis: + host: localhost + port: 6379 + + # ใ€€ IDใ‚ฟใ‚คใƒ—ใฎ่จญๅฎšใ€‚ + id: 'aid' + + # ใ€€ syslog + syslog: + host: localhost + port: 514 + +ๆŒ‡ๅฎšใงใใŸใ‚‰ไฟๅญ˜ใ™ใ‚‹ใ€‚ + +### nginx ใฎ่จญๅฎš + +nginx ใฎ่จญๅฎšใ‚’่กŒใ†ใ€‚ + +ใƒซใƒผใƒˆๆจฉ้™ใง่กŒใ†ใ€‚ + + exit + +/etc/nginx/conf.d/misskey.conf ใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo nano /etc/nginx/conf.d/misskey.conf + +[Misskey Hub](https://misskey-hub.net/docs/admin/nginx.html)ใฎ่จญๅฎšไพ‹ใ‚’ nano ใธใ‚ณใƒ”ใƒผ๏ผ†ใƒšใƒผใ‚นใƒˆใ—ใ€ๆฌกใฎ้ƒจๅˆ†ใ‚’่‡ชๅˆ†ใฎใ‚‚ใฎใซๆ›ธใๆ›ใˆใ‚‹ใ€‚ + +- 18 ่กŒ็›ฎใจ 30 ่กŒ็›ฎใฎใƒ‰ใƒกใ‚คใƒณๅ +- 34-35 ่กŒ็›ฎใฎ่จผๆ˜Žๆ›ธใธใฎใƒ‘ใ‚นใ‚’ Certbot ใงๅ–ๅพ—ใ—ใŸใ‚‚ใฎใซ (ๅŸบๆœฌ็š„ใซ example.tld ใ‚’็ฝฎใๆ›ใˆใ‚‹ใ ใ‘ใง OK) +- 56 ่กŒ็›ฎ (If it's behind another reverse proxy or CDN, remove the following.) ใ‹ใ‚‰ 4 ่กŒใ‚’ๅ‰Š้™ค + +ๅค‰ๆ›ดใ‚’ไฟๅญ˜ใ™ใ‚‹ใ€‚ + +่จญๅฎšใƒ•ใ‚กใ‚คใƒซใŒใใกใ‚“ใจๆฉŸ่ƒฝใ™ใ‚‹ใ‹็ขบ่ชใ€‚ + + sudo nginx -t + +OK ใชใ‚‰ใฐใ€nginx ใƒ‡ใƒผใƒขใƒณใ‚’ๅ†่ตทๅ‹•ใ€‚ + + sudo systemctl restart nginx + +ใ‚นใƒ†ใƒผใ‚ฟใ‚นใ‚’็ขบ่ชใ€‚ + + sudo systemctl status nginx + +active ใงใ‚ใ‚Œใฐ OKใ€‚ + +## Misskey ใฎใƒ“ใƒซใƒ‰ + +misskey ใƒฆใƒผใ‚ถใƒผใซใƒญใ‚ฐใ‚คใƒณใ—็›ดใ™ใ€‚ + + sudo su - misskey + +ใƒ“ใƒซใƒ‰ใ‚’ใ™ใ‚‹ใ€‚yes we canโ€ฆ + + cd misskey + NODE_ENV=production npm run build + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€`NODE_ENV=production`ใฏไธ่ฆใงใ™ใ€‚ไปฅ้™ใฎใ‚ณใƒžใƒณใƒ‰ใงใ‚‚ๅŒๆง˜ใซๅ‰Š้™คใ—ใฆใใ ใ•ใ„ใ€‚ +::: + +### ใ‚ตใƒผใƒใƒผใงใƒ“ใƒซใƒ‰ใงใใชใ„ๅ ดๅˆ + +RAM ใฎไธ่ถณใŒ่€ƒใˆใ‚‰ใ‚Œใ‚‹ใ€‚ + +Misskey ใฎใƒ“ใƒซใƒ‰ใ‚„ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณ๏ผˆๅˆๆœŸๅŒ–ใ‚’ๅซใ‚€๏ผ‰ใซใฏใ€RAM ใŒ 2GB ไปฅไธŠๅฟ…่ฆใซใชใฃใฆใ„ใ‚‹ใ€‚\ +RAM ใŒ่ถณใ‚Šใชใ„ๅ ดๅˆใ€ไปฅไธ‹ใฎใ‚ˆใ†ใช่งฃๆฑบ็ญ–ใŒ่€ƒใˆใ‚‰ใ‚Œใ‚‹ใ€‚ + +- ใ‚ตใƒผใƒใƒผใซใ‚นใƒฏใƒƒใƒ—ใ‚’่ฟฝๅŠ ใ™ใ‚‹ +- ใƒญใƒผใ‚ซใƒซใงใƒ“ใƒซใƒ‰ใ—ใŸใ‚‚ใฎ๏ผˆbuilt ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช๏ผ‰ใ‚’ sftp ใง่ปข้€ใ™ใ‚‹ + +## ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎๅˆๆœŸๅŒ– + + npm run init + +## Misskey ใ‚’่ตทๅ‹•ใ™ใ‚‹ + + NODE_ENV=production npx yarn start + +**Now listening on port 3000 on** [**http://example.tld**](http://example.tld) ใจ่กจ็คบใ•ใ‚ŒใŸใ‚‰ใ€่จญๅฎšใ—ใŸ URL ใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใ€‚ + +Misskey ใฎใ‚ฆใ‚งใƒซใ‚ซใƒ ใƒšใƒผใ‚ธใŒ่กจ็คบใ•ใ‚Œใ‚‹ใฏใšใ ใ€‚ + +ใ‚ขใ‚ซใ‚ฆใƒณใƒˆใฎไฝœๆˆใ€ใƒŽใƒผใƒˆใฎไฝœๆˆใ‚„ใƒ•ใ‚กใ‚คใƒซใฎใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใจใ„ใฃใŸไธ€้€šใ‚Šใฎๆ“ไฝœใŒๆญฃใ—ใ่กŒใˆใ‚‹ใ‹็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +### ใ‚ขใ‚ฏใ‚ปใ‚นใงใใชใ„ๅ ดๅˆ + +#### CloudFlare ใฎ DNS ใ‚’็ขบ่ชใ™ใ‚‹ + +CloudFlare ใฎ DNS ่จญๅฎšใŒๆญฃใ—ใ„ IP ใ‚ขใƒ‰ใƒฌใ‚นใซใชใฃใฆใ„ใ‚‹ใ‹ใ‚‚ใ†ไธ€ๅบฆ็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +#### ใƒซใƒผใ‚ฟใƒผใฎ่จญๅฎšใ‚’็ขบ่ชใ™ใ‚‹ + +่‡ชๅฎ…ใ‚ตใƒผใƒใƒผใฎๅ ดๅˆใ€ใƒซใƒผใ‚ฟใƒผใŒใ‚ตใƒผใƒใƒผใจๅค–้ƒจใจใฎ 80 ใƒใƒผใƒˆใƒป443 ใƒใƒผใƒˆใฎ้€šไฟกใ‚’่จฑๅฏใ™ใ‚‹่จญๅฎšใซใชใฃใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹็ขบ่ชใ—ใ‚ˆใ†ใ€‚ + +ใ‚ฏใƒฉใ‚ฆใƒ‰ใฎๅ ดๅˆใงใ‚‚ใ€ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏ่จญๅฎšใงใƒใƒผใƒˆ้–‹ๆ”พใŒๅฟ…่ฆใชๅ ดๅˆใŒๅคšใ„ใ€‚ + +## Misskey ใฎใƒ‡ใƒผใƒขใƒณใ‚’ไฝœๆˆ + +::: tip +้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใ€ใƒ‡ใƒผใƒขใƒณใฎไฝœๆˆใฏไธ่ฆใงใ™ใ€‚ +::: + +ใ„ใฃใŸใ‚“ Ctrl+C ใงใƒ—ใƒญใ‚ปใ‚นใ‚’ใ‚ญใƒซใ—ใ€Misskey ใ‚’ใƒ‡ใƒผใƒขใƒณใง่ตทๅ‹•ใ™ใ‚‹่จญๅฎšใ‚’ใ—ใ‚ˆใ†ใ€‚ + +ใƒซใƒผใƒˆๆจฉ้™ใง่กŒใ†ใ€‚ + + exit + +/etc/systemd/system/misskey.service ใ‚’ไฝœๆˆใ™ใ‚‹ใ€‚ + + sudo nano /etc/systemd/system/misskey.service + +ๆฌกใฎๅ†…ๅฎนใ‚’่ฒผใ‚Šไป˜ใ‘ใ€ไฟๅญ˜ใ™ใ‚‹ใ€‚ + + [Unit] + Description=Misskey daemon + + [Service] + Type=simple + User=misskey + ExecStart=/usr/bin/npm start + WorkingDirectory=/home/misskey/misskey + Environment="NODE_ENV=production" + TimeoutSec=60 + StandardOutput=syslog + StandardError=syslog + SyslogIdentifier=misskey + Restart=always + + [Install] + WantedBy=multi-user.target + +systemd ใ‚’่จญๅฎšใ—ใ€misskey ใƒ‡ใƒผใƒขใƒณใ‚’้–‹ๅง‹ใ€‚ + + sudo systemctl daemon-reload + + sudo systemctl enable misskey + + sudo systemctl start misskey + +systemctl ใงใƒ‡ใƒผใƒขใƒณใฎ็Šถๆ…‹ใ‚’็ขบ่ชใ€‚่ตทๅ‹•ใซๅฐ‘ใ—ๆ™‚้–“ใŒใ‹ใ‹ใ‚‹ใŸใ‚ใ€15 ็ง’็จ‹ๅบฆๅพ…ใฃใฆใ‹ใ‚‰ใฎใปใ†ใŒ่‰ฏใ„ใ€‚ + + sudo systemctl status misskey + +active ใชใ‚‰ OKใ€‚ + +**ใ“ใ‚Œใง Misskey ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏใปใผๅฎŒไบ†ใ ใ€‚** + +Misskey ใ‚ตใƒผใƒใƒผใซ่‡ชๅˆ†ใฎใ‚ขใ‚ซใ‚ฆใƒณใƒˆใ‚’็™ป้Œฒใƒปใƒญใ‚ฐใ‚คใƒณใ—ใ€่จญๅฎšใ‚’็ถšใ‘ใ‚ˆใ†ใ€‚ + +## Misskey ใฎ่จญๅฎšใ‚’็ถšใ‘ใ‚‹ + +- [**Misskey ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใงๆœ€ๅˆใซ่จญๅฎšใ™ใ‚‹ในใใ‚คใƒณใ‚นใ‚ฟใƒณใ‚น่จญๅฎšใจใใฎไป–่จญๅฎšใฎ่ชฌๆ˜Ž**](https://hide.ac/articles/Y504SIabp) +- [**Squid ใƒ—ใƒญใ‚ญใ‚ทใ‚’่จญๅฎšใ—ใฆ Misskey ใ‚’ๅฎˆใ‚‹**](https://hide.ac/articles/MC7WsPDqw) +- [**Misskey ใฎใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใ‚’ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใ‚ˆใ†ใ€OCI ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใ‚นใƒˆใƒฌใƒผใ‚ธ็ทจใ€‘**](https://hide.ac/articles/E2Ea3cauk) + +## Misskey ใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ + +ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใซใคใ„ใฆใ‚‚ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚\ + + +ๆ‰‹ไฝœๆฅญใงใ‚„ใ‚‹ๅ ดๅˆใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚\ +[โ†’ manual.html#Misskey ใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ• (yarn ใฏ npx yarn ใซ่ชญใฟๆ›ฟใˆใพใ™)](https://misskey-hub.net/docs/install/manual.html#misskey%E3%81%AE%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%E3%83%86%E3%82%99%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95) + +ไฝœๆฅญไธญใฏ Misskey ใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ›ใ‚“ใ€‚ + + sudo systemctl stop misskey + + su - misskey + + git pull; + npx yarn install; + npm run clean; + NODE_ENV=production npm run build; + npm run migrate; + + exit + +### Case 1: apt upgrade ใ‚’ใ™ใ‚‹ๅ ดๅˆ + + sudo apt update -y + sudo apt full-upgrade -y + sudo reboot + +ๅ†่ตทๅ‹•ๅพŒใฏ Misskey ใฏ่‡ชๅ‹•ใง่ตทๅ‹•ใ—ใพใ™ใ€‚ + +### Case 2: ใใฎใพใพ่ตทๅ‹• + + sudo systemctl start misskey diff --git a/src/ko/docs/misskey-hub.md b/src/ko/docs/misskey-hub.md new file mode 100644 index 0000000000..dd8d95fcdf --- /dev/null +++ b/src/ko/docs/misskey-hub.md @@ -0,0 +1,14 @@ +# Misskey Hub์— ๋Œ€ํ•˜์—ฌ +Misskey Hub๋Š” Misskey ๊ด€๋ จ ๋ฌธ์„œ, ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ, ํ”Œ๋Ÿฌ๊ทธ์ธ ์Šคํ† ์–ด ๋“ฑ์„ ์ œ๊ณตํ•˜๋Š” Misskey ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. +"Misskey์˜ ๋ชจ๋“  ๊ฒƒ์ด ์—ฌ๊ธฐ์— ์žˆ๋‹ค"๋Š” ๊ฒƒ์„ ๋ชจํ† ๋กœ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค. + +Misskey Hub๋„ [์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.](https://github.com/misskey-dev/misskey-hub). + +::: tip +Misskey Hub๋Š” [VuePress](https://github.com/vuepress/vuepress-next)๋ฅผ ํ†ตํ•˜์—ฌ ์ •์  ์‚ฌ์ดํŠธ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. +::: + +- [๋ณ€๊ฒฝ ์‚ฌํ•ญ](../updates.md) + +## Misskey Hub์— ๊ธฐ์—ฌํ•˜๊ธฐ +๋ฌธ์„œ์˜ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ Misskey Hub์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/docs/misskey.md b/src/ko/docs/misskey.md new file mode 100644 index 0000000000..23a2bead2c --- /dev/null +++ b/src/ko/docs/misskey.md @@ -0,0 +1,150 @@ +--- +description: "Misskey์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค." +--- + +# Misskey์— ๋Œ€ํ•˜์—ฌ + +Misskey๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. +๊ฐœ๋ฐœ์€ ์ผ๋ณธ์˜ syuilo์— ์˜ํ•ด 2014๋…„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +๋“œ๋ผ์ด๋ธŒ, ๋ฆฌ์•ก์…˜ ๋“ฑ์˜ ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ๊ณผ, ๋†’์€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์ž์œ ๋„๋ฅผ ๊ฐ–์ถ˜ UI๊ฐ€ ํŠน์ง•์ž…๋‹ˆ๋‹ค. + +## ์—ญ์‚ฌ + +๊ฐœ๋ฐœ ์ดˆ๊ธฐ์—๋Š” ๊ฒŒ์‹œํŒ ํ˜•์‹์„ ๋ฉ”์ธ์œผ๋กœ ํ•˜๋Š” ์„œ๋น„์Šค์˜€์œผ๋‚˜, ์œ ์ €๊ฐ€ ์งง์€ ๊ธ€์„ ๊ฒŒ์‹œํ•˜๊ณ , ๊ทธ ๊ธ€๋“ค์„ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š” 'ํƒ€์ž„๋ผ์ธ' ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๋’ค๋กœ ์ธ๊ธฐ๊ฐ€ ๋†’์•„์ ธ, ๋‚˜์ค‘์—๋Š” ์ด ๊ธฐ๋Šฅ์— ๋น„์ค‘์„ ๋‘๊ณ  ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +๋‹น์ดˆ์—๋Š” ๋ถ„์‚ฐํ˜•์ด ์•„๋‹ˆ์—ˆ์œผ๋‚˜, 2018๋…„์— ActivityPub์„ ํ†ตํ•ด ๋ถ„์‚ฐํ˜• ์†Œ์…œ ๋„คํŠธ์›Œํ‚น์„ ์ง€์›ํ•จ์œผ๋กœ์จ ๋”์šฑ ๋งŽ์€ ๋ถ„๋“ค์—๊ฒŒ ์•Œ๋ ค์ง€๊ณ , ์ง€๊ธˆ์—๊นŒ์ง€ ์ด๋ฆ…๋‹ˆ๋‹ค. + +::: ํŒ +Misskey๋ผ๋Š” ์ด๋ฆ„์€, syuilo๊ฐ€ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ๊ตฌ์ƒํ•  ๋•Œ ์šฐ์—ฐํžˆ ๋“ฃ๊ณ  ์žˆ๋˜ May'n์˜ ๋…ธ๋ž˜ 'Brain Diver'์˜ ๊ฐ€์‚ฌ์—์„œ ๋”ฐ ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. +::: + +๋ˆ„๊ตฌ๋‚˜ ๊ฐœ๋ฐœ์— ์ฐธ๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ง€๊ธˆ๋„ ํ™œ๋ฐœํ•˜๊ฒŒ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +## "๋ถ„์‚ฐํ˜•"์ด ๋ฌด์—‡์ธ๊ฐ€์š”? + +๋ถ„์‚ฐํ˜•(Distibuted), ๋˜๋Š” ํƒˆ์ค‘์•™ํ˜•(Decentralized)์ด๋ž€, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„์— ์‚ฐ์žฌํ•˜๋Š” ๊ฐ๊ฐ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์„œ๋กœ ํ†ต์‹ (์—ฐํ•ฉ/Federation)ํ•จ์œผ๋กœ์จ, ์ปจํ…์ธ ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋„คํŠธ์›Œํฌ(์—ฐํ•ฉ์šฐ์ฃผ/Fediverse)๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค. +์ด์™€ ๋ฐ˜๋Œ€๋กœ, ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜๋ฐ–์— ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ๊ณณ์ด ์žˆ๋”๋ผ๋„ ์„œ๋กœ์˜ ๊ต๋ฅ˜๊ฐ€ ์—†๋Š” ๋‹ซํžŒ ๊ตฌ์กฐ๋ฅผ ์ค‘์•™์ง‘๊ถŒํ˜• ์„œ๋น„์Šค๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Twitter๋‚˜ Facebook ๋“ฑ, ๊ธฐ์กด์— ์žˆ๋˜ ๋Œ€๋ถ€๋ถ„์˜ SNS ์„œ๋น„์Šค๊ฐ€ ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. +๋ถ„์‚ฐํ˜• ์„œ๋น„์Šค์˜ ์ด์ ์€ ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ์šด์˜์ž๋‚˜ ํ…Œ๋งˆ์˜ ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์‹ ์ด ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋А ์„œ๋ฒ„์— ๋“ค์–ด๊ฐ€๋„ ๊ฐ™์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## ์ง€๊ธˆ๋„, ์•ž์œผ๋กœ๋„ ์˜คํ”ˆ ์†Œ์Šค + +Misskey๋Š” ์ง€๊ธˆ๊นŒ์ง€, ๊ทธ๋ฆฌ๋„ ์•ž์œผ๋กœ๋„ ๊ณ„์† ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ์„œ ์กด์žฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์˜คํ”ˆ ์†Œ์Šค๋ž€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์†Œ์Šค ์ฝ”๋“œ(์›๋ณธ)์„ ๊ณต๊ฐœํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ง์ด๋ฉฐ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ์ˆ˜์ •์ด๋‚˜ ์žฌ๋ฐฐํฌ์— ๋Œ€ํ•œ ํ—ˆ์šฉ๊นŒ์ง€ ์˜คํ”ˆ ์†Œ์Šค์˜ ์ •์˜์— ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. +Misskey์˜ ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋Š” [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) ๋ผ์ด์„ ์Šค ํ•˜์— [๊ณต๊ฐœ](https://github.com/misskey-dev)๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์—ด๋žŒ, ์‚ฌ์šฉ, ์ˆ˜์ • ๋ฐ ๋ณ€ํ˜•, ์žฌ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœํ•จ์œผ๋กœ์จ ์ž์‹ ์ด ์›ํ•˜๋Š” ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋žจ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์œ ํ•ดํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์•„๋ฌด๋‚˜ ๊ฐœ๋ฐœ ๊ณผ์ •์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. +์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋ถ„์‚ฐํ˜• ์ฒด๊ณ„๋ฅผ ์‹คํ˜„ํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ, ์˜คํ”ˆ ์†Œ์Šค์™€ ๋—„๋ ˆ์•ผ ๋—„ ์ˆ˜ ์—†๋Š” ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +์žฌ์ฐจ ์–ธ๊ธ‰๋˜๊ณ  ์žˆ์ง€๋งŒ, Twitter๋‚˜ Facebook๊ณผ ๊ฐ™์€ ์˜๋ฆฌ ์„œ๋น„์Šค๋“ค ๋Œ€๋ถ€๋ถ„์€ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. + +::: ํŒ +๊ธฐ์ˆ ์ ์ธ ๋ถ€๋ถ„์œผ๋กœ, Misskey์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ €์žฅ์†Œ๋Š” [GitHub์— ์˜ํ•ด ํ˜ธ์ŠคํŒ…๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.](https://github.com/misskey-dev) +::: + +## ๊ฐœ๋ฐœ์— ์ฐธ๊ฐ€ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•˜๊ธฐ + +Misskey๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด ๋ถ€๋”” ์ €ํฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ง€์‹์ด ์—†๋”๋ผ๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ๋‚˜ ๋ถ€๋‹ด์—†์ด ์ฐธ๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ๋งŽ์€ ์‘์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. + +### ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ • + +๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ง€์‹์ด ์žˆ๋Š” ๋ถ„์ด๋ผ๋ฉด, ์†Œ์Šค ์ฝ”๋“œ ํŽธ์ง‘์— ์ฐธ๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ธฐ์—ฌ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์€ [์ด ๋ฌธ์„œ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). + +### ๋…ผ์˜์— ์ฐธ๊ฐ€ํ•˜๊ธฐ + +์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๋˜๋Š” ๊ธฐ์กด์— ์žˆ๋˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด๋‚˜, Misskey์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฒ„๊ทธ๋ฅผ ์ œ๋ณด๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +์ด๋Ÿฌํ•œ ๋…ผ์˜๋Š” [GitHub](https://github.com/misskey-dev) ์ €์žฅ์†Œ ๋˜๋Š” [ํฌ๋Ÿผ](https://forum.misskey.io/) ๋“ฑ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. + +### ํ…์ŠคํŠธ ๋ฒˆ์—ญํ•˜๊ธฐ + +Misskey๋Š” ๋‹ค๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๊ตญ์ œํ™”, Internationalization์ด๋‚˜ i18n์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค) ๋ณธ๋ž˜ ์ผ๋ณธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ ์†Œํ”„ํŠธ์›จ์–ด์ง€๋งŒ, ์ž์›๋ด‰์‚ฌ์ž ๋ถ„๋“ค์— ์˜ํ•ด ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +๋ฒˆ์—ญ ์ž‘์—…์— ์ฐธ๊ฐ€ํ•˜์‹œ๋Š” ๊ฒƒ์œผ๋กœ๋„ Misskey ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +Misskey์˜ ๋ฒˆ์—ญ์€ [Crowdin์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค](https://crowdin.com/project/misskey)๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +### ์ด์šฉ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ธฐ + +์ด์šฉ ์ƒ์˜ ๋ฒ„๊ทธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Misskey๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋А๋‚€ ์ , ์žฌ๋ฏธ์žˆ์—ˆ๋˜ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค๋ฉด ๊ณต์œ ํ•ด ์ฃผ์„ธ์š”. ์‚ฌ์†Œํ•˜๋‹ค๊ณ  ๋А๊ปด์งˆ ์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ, ๊ฐœ๋ฐœ์˜ ์›๋™๋ ฅ์œผ๋กœ ์ด์–ด์ง€๋Š” ์—„์—ฐํ•œ ๊ธฐ์—ฌ์ž…๋‹ˆ๋‹ค. + +### ๋ฏธ์Šคํ‚ค์ŠคํŠธ๋ฅผ ๋Š˜๋ฆฌ๊ธฐ + +Misskey๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ €๋ฅผ "๋ฏธ์Šคํ‚ค์ŠคํŠธ"(Misskist)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. +์นœ๊ตฌ๋‚˜ ์ง€์ธ์„ Misskey์— ์ดˆ๋Œ€ํ•˜๋Š” ๊ฒƒ์„ ๋น„๋กฏํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ Misskey๋ฅผ ๋„๋ฆฌ ์•Œ๋ ค ์ฃผ๋Š” ๊ฒƒ ๋˜ํ•œ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๋™๊ธฐ ๋ถ€์—ฌ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. + +### ๊ธฐ๋ถ€ํ•˜๊ธฐ + +Misskey๋Š” ์˜๋ฆฌ ๋ชฉ์ ์˜ ์‚ฌ์—…์ด ์•„๋‹ˆ๋ฉฐ, ๋ฌด๋ฃŒ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ˆ˜์ต์„ ๊ธฐ๋ถ€๋กœ ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์ธ์Šคํ„ด์Šค์— ๋”ฐ๋ผ ๊ด‘๊ณ ๋ฅผ ํ†ตํ•ด ์ˆ˜์ต์„ ์–ป๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‚˜, ์–ด๋””๊นŒ์ง€๋‚˜ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ์šด์˜์ž์— ์˜ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐœ๋ฐœ์ž์— ์ง์ ‘ ๋Œ์•„์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค) +ํ”„๋กœ์ ํŠธ์— ๊ธฐ๋ถ€ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐœ๋ฐœ์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ์•ž์œผ๋กœ๋„ Misskey ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์† ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ธฐ๋ถ€๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ [Patreon](https://www.patreon.com/syuilo)์„ ํ†ตํ•ด ์ ‘์ˆ˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +์ผ์ • ๊ธˆ์•ก ์ด์ƒ ๊ธฐ์—ฌํ•ด ์ฃผ์‹œ๋ฉด, Misskey Web์˜ ์ •๋ณด ํŽ˜์ด์ง€์— ๊ธฐ๋ถ€์ž๋ถ„์˜ ์„ฑํ•จ์„ ๊ธฐ์žฌํ•ด ๋“œ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„์˜ ์šด์˜์ž๋„ ๋Œ€๋ถ€๋ถ„ ์ˆ˜์ต์„ ๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋Š” ๊ฒƒ์—๋Š” ํ•„์—ฐ์ ์œผ๋กœ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ์„œ๋ฒ„์˜ ์šด์˜์ž๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ๋„ ๊ฒ€ํ† ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. +๊ฐœ๋ฐœ์— ์ง์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‚˜, ๋‹ค์–‘ํ•œ ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•จ์œผ๋กœ์จ ํ”„๋กœ์ ํŠธ๊ฐ€ ์กด์†ํ•˜๊ณ  ์žˆ๋Š” ์ ์—์„œ ์šด์˜์ด ์ง€์†๋˜๋Š” ๊ฒƒ ๋˜ํ•œ ๊ฐœ๋ฐœ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. + +## ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ + +### ์ด ํ”„๋กœ์ ํŠธ์˜ ์ง€ํ–ฅ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? + +์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด, ๋ง‰์—ฐํ•œ ๋ชฉํ‘œ์ด์ง€๋งŒ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋ฒ”์šฉ ํ”Œ๋žซํผ์ด ๋˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +Misskey๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ์–ด๋–คํ•œ ์‚ฌ์ƒ(๋ฐ˜ ์ค‘์•™์ง‘๊ถŒ ๋“ฑ)์ด๋‚˜ ๋น„์ „์— ๊ธฐ๋ฐ˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ค‘๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +์ €ํฌ๋Š” ์ด ์ค‘๋ฆฝ์„ฑ์ด ์˜คํžˆ๋ ค ํŠน์ • ๋ฐฉํ–ฅ์„ฑ์— ์–ฝ๋งค์ด์ง€ ์•Š์€ ์œ ์—ฐํ•จ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + + + +### ๊ธฐ์—…์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋‚˜์š”? + +Misskey๋Š” ๊ฐœ์ธ์ด ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๊ณ , ๋‹ค๋ฅธ ํŠน์ •ํ•œ ๊ธฐ์—…๊ณผ ์—ฐ๊ด€๋˜์–ด ์˜๋ฆฌํ™”๋˜์ง€๋„ ์•Š์•˜์Šต๋‹ˆ๋‹ค. +๊ฐœ๋ฐœ ์ธ์›์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž์›๋ด‰์‚ฌ์ž๋“ค์ž…๋‹ˆ๋‹ค. ์ด๋“ค์ด ํšŒ์‚ฌ์— ์†Œ์†๋˜์–ด ์žˆ๋”๋ผ๋„, ๊ฐœ๋ฐœ์€ ๊ณ„์† ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. + +### Misskey๋Š” ๋ˆ„๊ฐ€ ์šด์˜ํ•˜๊ณ  ์žˆ๋‚˜์š”? + +Misskey์˜ ๋ถ„์‚ฐ์  ์ •์ฒด์„ฑ์— ์˜ํ•ด, ๊ฐ ์„œ๋ฒ„๋Š” ๊ณ ์œ ์˜ ์šด์˜์ง„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ์‚ฌ๋žŒ์ด๋‚˜ ๊ธฐ์—…์ด ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ์šด์˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. +๊ฐœ๋ฐœ์ง„๋„ ๊ฐ ์„œ๋ฒ„์— ๊ด€์—ฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๊ด€๋ฆฌ์— ๊ด€ํ•œ ์งˆ๋ฌธ์€ ํ•ด๋‹น ์„œ๋ฒ„์˜ ์šด์˜์ง„์— ๋ฌผ์–ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +๊ฐ ์„œ๋ฒ„๋ฅผ ๋ˆ„๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š”์ง€๋Š” `https://(์ธ์Šคํ„ด์Šค.๋„๋ฉ”์ธ)/about`์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๋งŒ๋“œ์…จ๋‹ค๋ฉด, ์ฒ˜์Œ ๋งŒ๋“œ์‹  ๋ถ„์ด ์ตœ๊ณ  ์šด์˜์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. + +### ์–ด๋–ค ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋‚˜์š”? + +์™„์ „ํ•˜์ง„ ์•Š์ง€๋งŒ, ์„œ๋ฒ„ ๋ชฉ๋ก์€ [์ด ๊ณณ](../instances.md)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ๋”ฐ๋ผ ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ์ค‘์‹ฌ ํ…Œ๋งˆ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ด€์‹ฌ์‚ฌ์— ๋งž๋Š” ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์„œ๋ฒ„๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ์„ ํƒ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. +๊ทธ์™€ ๋ณ„๊ฐœ๋กœ, ์„œ๋ฒ„์˜ ํฌ๊ธฐ๋‚˜ ์‚ฌ์šฉ์ž ์ˆ˜, ๊ตญ๊ฐ€๋‚˜ ์ฃผ์š” ์–ธ์–ด, ๊ด€๋ฆฌ์ง„์— ๋Œ€ํ•ด ์˜์กดํ•˜๊ฑฐ๋‚˜ ์‹ ๋ขฐํ•˜๋Š” ์ •๋„ ๋“ฑ๋“ฑ ๋˜ํ•œ ์„œ๋ฒ„๋ฅผ ๊ณ ๋ฅด๋Š” ์ข‹์€ ์กฐ๊ฑด์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +๊ทธ๋Ÿฌ๋‚˜ ์–ด๋А ์„œ๋ฒ„๋„ Misskey์˜ ๊ณต์‹ ์„œ๋ฒ„๋กœ์„œ ์ œ๊ณต๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. +์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๋งŒ๋“ ๋‹ค๋Š” ์„ ํƒ์ง€๋„ ์žˆ๊ฒ ๋„ค์š”. + +์ผ๋ฐ˜์ ์œผ๋กœ, ์–ด๋А ์„œ๋ฒ„์— ๋“ค์–ด๊ฐ€๋“  ๊ฐ„์—, ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ ์‚ฌ์šฉ์ž๋“ค๊ณผ ์—ฐ๊ฒฐํ•ด ๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. + +### ์„œ๋ฒ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”? + +Misskey ์„œ๋ฒ„ ์ œ์ž‘์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. +2022๋…„ ๋ง์„ ๊ธฐ์ค€์œผ๋กœ Misskey๋ฅผ ํŠน๋ณ„ํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ƒˆ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ผ์ • ์ˆ˜์ค€์˜ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +๊ด€๋ จํ•ด์„œ๋Š” [์—ฌ๊ธฐ](./install.md)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +### Misskey๋Š” ์–ด๋–ค ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”? + +Misskey์˜ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๋ฉด์„œ ์ด์šฉ๋˜๋Š” ๊ธฐ์ˆ ๋„ ์ƒ๋‹นํžˆ ๋งŽ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. +์ดˆ์ฐฝ๊ธฐ์—” MySQL + PHP + jQuery ์กฐํ•ฉ์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์ง€๊ธˆ์€ ๋‹ค์Œ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. + +- ์„œ๋ฒ„์ธก: Node.js +- DB: PostgreSQL, Redis +- UI ํ”„๋ ˆ์ž„์›Œํฌ: Vue.js +- ๊ฐœ๋ฐœ ์–ธ์–ด: TypeScript + +์—ฌ๊ธฐ์— ๋”ํ•ด, Misskey์—์„œ ์ถœ๋ฐœํ•œ MFM์ด๋‚˜ AiScript ๋˜ํ•œ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +### Mastodon์˜ ํฌํฌ ๋ฒ„์ „์ธ๊ฐ€์š”? + +Misskey๋Š” Mastodon์ด๋‚˜ ๋‹ค๋ฅธ ๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ๋“ค๊ณผ ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. +์•„์ฃผ ์˜ค๋ž˜ ์ „๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜์–ด ์™”์ง€๋งŒ, Mastodon์ด ๋“ฑ์žฅํ•œ ์ดํ›„์— ๋ถ„์‚ฐํ™” ๋„คํŠธ์›Œํฌ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +์ด์™€๋Š” ๋ณ„๊ฐœ๋กœ, ์„œ๋กœ ์—ฐ๊ด€์ด ์—†๋Š” ๋‘ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ActivityPub ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +### iOS / Android ์šฉ ์•ฑ์ด ์žˆ๋‚˜์š”? + +๊ฐ OS์— ๋Œ€ํ•œ ๊ณต์‹ Misskey ์•ฑ์€ ์—†์ง€๋งŒ, ์„œ๋“œํŒŒํ‹ฐ ์•ฑ์€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๊ฒƒ์€ [์—ฌ๊ธฐ](./apps)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +ํ•˜์ง€๋งŒ, ์„œ๋“œํŒŒํ‹ฐ ์•ฑ์˜ ๊ธฐ๋Šฅ์€ ๊ณต์‹ ์›น ํด๋ผ์ด์–ธํŠธ์˜ ์—…๋ฐ์ดํŠธ๋ณด๋‹ค ๋Šฆ์„ ์ˆ˜๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๊ตณ์ด ์จ์•ผ๊ฒ ๋‹ค๋Š” ๋ถ„์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ณต์‹ ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์‹ค ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. +Misskey ์›น ํด๋ผ์ด์–ธํŠธ๋Š” PWA๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด, ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์ž์„ธํ•œ ๊ฒƒ์€ [์—ฌ๊ธฐ](TODO)๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. + +### Misskey์˜ ๋กœ๊ณ ๋‚˜ ์•„์ด์ฝ˜์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‚˜์š”? + +[์—์…‹ ์ฝœ๋ ‰์…˜](../appendix/assets.md)๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”. + +### ๊ฐ€๋” ๊ฐ€๋‹ค ๋ณด์ด๋Š” ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๊ท€ ์บ๋ฆญํ„ฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? + +Misskey์˜ ๋งˆ์Šค์ฝ”ํŠธ, Ai์ž…๋‹ˆ๋‹ค. + +Ai์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [์—ฌ๊ธฐ](https://xn--931a.moe)(์ผ๋ณธ์–ด)๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. diff --git a/src/ko/docs/releases.md b/src/ko/docs/releases.md new file mode 100644 index 0000000000..762f9f8d01 --- /dev/null +++ b/src/ko/docs/releases.md @@ -0,0 +1,876 @@ +# Release Notes + +Notes for indivudual misskey releases. + +::: tip +Information updates may not be translated yet. For the latest information see [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). +::: + +## 13.0.0 + +์ถœ์‹œ์ผ: 2023๋…„ 1์›” 16์ผ + +### ์š”์•ฝ + +- ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ (์—ญํ•  ์‹œ์Šคํ…œ, Misskey Play, ์‹ ๊ทœ ์œ„์ ฏ, ์‹ ๊ทœ ์ฐจํŠธ, ๐Ÿช๐Ÿ‘ˆ ๋“ฑ) +- ๋ฐฑ์—”๋“œ ์žฌ์ž‘์„ฑ +- ์„ฑ๋Šฅ ํ–ฅ์ƒ (๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ) +- ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์„ฑ ๊ฐœ์„  +- ๋‹ค์–‘ํ•œ UI ๊ฐœ์„  + +### ์ฃผ์š” ๊ธฐ๋Šฅ + +- ์—ญํ•  + - ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ์ข…์ „๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "์ธ์Šคํ„ด์Šค ๊ตฌ๋…์ž๋Š” ์•ˆํ…Œ๋‚˜๋ฅผ 30๊ฐœ๊นŒ์ง€ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค," "๋กœ์ปฌ ํƒ€์ž„๋ผ์ธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š์ง€๋งŒ, ์ผ๋ถ€ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๋ถ„๋“ค๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค," "์ดˆ๋Œ€ ์ „์šฉ ์ธ์Šคํ„ด์Šค์ง€๋งŒ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ดˆ๋Œ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ํ•ฉ์ณ์„œ ์—ญํ•  ๋“ฑ๋ก์„ ์ž๋™ํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. "๊ณ„์ •์„ ๋งŒ๋“  ์ง€ ํ•˜๋ฃจ๊ฐ€ ์ง€๋‚˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋Š” ๊ณต๊ฐœ ํฌ์ŠคํŒ…์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"์ฒ˜๋Ÿผ์š”. +- Misskey Play + - Misskey Play๋Š” ๊ธฐ์กด์˜ ํŽ˜์ด์ง€๋ฅผ ๋Œ€์ฒดํ•  ์ƒˆ๋กœ์šด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋™์  ์ฝ˜ํ…์ธ  (์ดํ•˜ "์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜"์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค)์— ํŠนํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, ํŽ˜์ด์ง€์—์„œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ ์—ฐํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค. + +### ๋ณ€๊ฒฝ ์‚ฌํ•ญ + +#### ์„œ๋ฒ„ ์–ด๋“œ๋ฏผ + +- Node.js 18.x ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +- PostgreSQL 15.x๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. + - Misskey์—์„œ๋Š” ์•„์ง๊นŒ์ง€ PostgreSQL 15์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ์ง€๋งŒ, ํ–ฅํ›„์— ํ™œ์šฉํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- ElasticSearch์˜ ์ง€์›์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + - ๋Œ€์‹ , ๋ณ„๋„์˜ ๊ฒ€์ƒ‰ ์ œ๊ณต์ž๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋งค์ปค๋‹ˆ์ฆ˜์„ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค์ปค๋‹ˆ์ฆ˜์ด ์ถ”๊ฐ€๋˜๋ฉด ์ข…์ „์ฒ˜๋Ÿผ ElasticSearch๋ฅผ ํ™œ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- Yarn์—์„œ pnpm์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. + sudo corepack enable ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด corepack์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. +- ์„œ๋ธŒ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด์„œ๋„ ์ธ์Šคํ„ด์Šค ์ฐจ๋‹จ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. +- ์—ญํ•  ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ, ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์—ญํ•  ๊ธฐ๋Šฅ์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. + - ๋ชจ๋”๋ ˆ์ดํ„ฐ ์„ค์ •์ด ์—ญํ• ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ์ „ ๋ชจ๋”๋ ˆ์ดํ„ฐ ๋ชฉ๋ก์„ ๋ณ„๋„๋กœ ๊ธฐ๋กํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ›„์—๋Š” ๋ชจ๋”๋ ˆ์ดํ„ฐ์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ๋ชจ๋‘ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. + - ์‚ฌ์ผ๋Ÿฐ์Šค๊ฐ€ ์—ญํ• ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ์‚ฌ์ผ๋Ÿฐ์Šค ๊ธฐ๋ก์ด ์‚ญ์ œ๋˜๋‹ˆ ๋ณ„๋„๋กœ ๊ธฐ๋กํ•ด ๋‘๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. + - ์œ ์ €๋ณ„ ๋“œ๋ผ์ด๋ธŒ ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์—ญํ• ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + - ์ธ์Šคํ„ด์Šค ๊ธฐ๋ณธ ๋“œ๋ผ์ด๋ธŒ ์šฉ๋Ÿ‰ ์„ค์ •์ด ์—ญํ• ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ํ›„ ๊ธฐ๋ณธ ์—ญํ•  ๋˜๋Š” ์กฐ๊ฑดํ˜• ์—ญํ• ์—์„œ ๋“œ๋ผ์ด๋ธŒ ์šฉ๋Ÿ‰์„ ๋‹ค์‹œ ์„ค์ •ํ•ด ์ฃผ์„ธ์š”. + - ๋กœ์ปฌ ํƒ€์ž„๋ผ์ธ / ๊ธ€๋กœ๋ฒŒ ํƒ€์ž„๋ผ์ธ์— ํฌ์ŠคํŒ…ํ•˜๋Š” ๊ถŒํ•œ์ด ์—ญํ• ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +- ๋”์ด์ƒ Docker๊ฐ€ root๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์˜ค๋ธŒ์ ํŠธ ์ŠคํŠธ๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, chown -hR 991.991 . /files๋ฅผ ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”. + +#### ์‚ฌ์šฉ์ž + +- ๋…ธํŠธ ์ฃผ์‹œํ•˜๊ธฐ ๊ธฐ๋Šฅ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +- ํˆฌํ‘œ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +- ์ˆ˜์‹์„ ๋…ธํŠธ์— ๋”์ด์ƒ ์ž„๋ฒ ๋”ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. +- ๋™์  ํŽ˜์ด์ง€๋ฅผ ๋”์ด์ƒ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. + - ๋Œ€์‹  AiScript๋ฅผ ํ™œ์šฉํ•˜๋Š” Misskey Play ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, ๋” ์œ ์—ฐํ•œ ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +- AiScript๊ฐ€ 0.12.2๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + - 0.12.x์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ: https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 + - 0.12.x ์ด์ „ ๋ฒ„์ „์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋กœ๋”ฉ์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +- iOS 15 ๋ฏธ๋งŒ์˜ ํ™˜๊ฒฝ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- Firefox 110 ๋ฏธ๋งŒ์˜ ํ™˜๊ฒฝ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + - 109์—์„œ๋Š” ContainerQueries ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฌธ์ œ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +#### ์•ฑ ๊ฐœ๋ฐœ์ž + +- API: meta ์‘๋‹ต์€ ๋”์ด์ƒ emojis ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + - ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด, emojis ์—”๋“œํฌ์ธํŠธ๋กœ ์š”์ฒญํ•˜์„ธ์š”. +- API: ์ปค์Šคํ…€ ์ด๋ชจ์ง€ ์—”ํ‹ฐํ‹ฐ๋Š” ๋”์ด์ƒ url ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + - ์ด๋ชจ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด, <์ธ์Šคํ„ด์Šค ํ˜ธ์ŠคํŠธ>/emoji/<์ด๋ชจ์ง€ ์ด๋ฆ„>.webp๋ฅผ ์š”์ฒญํ•˜์„ธ์š”. + - ์˜ˆ: https://p1.a9z.dev/emoji/misskey.webp + - ๋ฆฌ๋ชจํŠธ: https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp +- API: user ๋ฐ note ์—”ํ‹ฐํ‹ฐ๋Š” ๋”์ด์ƒ emojis ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- API: user ์—”ํ‹ฐํ‹ฐ๋Š” ๋”์ด์ƒ avatarColor ๋ฐ bannerColor ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- API: instance ์—”ํ‹ฐํ‹ฐ๋Š” ๋”์ด์ƒ latestStatus, lastCommunicatedAt, latestRequestSentAt ํ”„๋กœํผํ‹ฐ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- API: instance ์—”ํ‹ฐํ‹ฐ์˜ caughtAt์ด firstRetrievedAt์œผ๋กœ ๋ช…์นญ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + +### ๊ฐœ์„ ๋œ ์‚ฌํ•ญ + +- Role system @syuilo +- Misskey Play @syuilo +- Introduce retention-rate aggregation @syuilo +- Make possible to export favorited notes @syuilo +- Add per user pv chart @syuilo +- Push notification of Antenna note @tamaina +- AVIF support @tamaina +- Add Cloudflare Turnstile CAPTCHA support @CyberRex0 +- Rate limits can now be adjusted per user @syuilo +- Non-moderator users assigned to roles with permissions can now issue instance invitation codes @syuilo +- Non-moderator users with assigned roles can now add, edit, and delete custom emoji @syuilo +- Allow users to set the number of clips and notes within a clip @syuilo +- Allowed to set the number of users in user list and user list @syuilo +- Maximum number of characters for hardword mute @syuilo +- Maximum number of webhooks that can be created @syuilo +- Can set the number of notes that can be pinned @syuilo +- Server: signToActivityPubGet is set to true by default @syuilo +- Server: improve syslog performance @syuilo +- Server: Use undici instead of node-fetch and got @tamaina +- Server: Judge instance block by endsWith @tamaina +- Server: improve note scoring for featured notes @CyberRex0 +- Server: Relaxed character limit for survey choices @syuilo +- Server: Relaxed character limit for profile @syuilo +- Server: add rate limits for some endpoints @syuilo +- Server: improve stats api performance @syuilo +- Server: improve nodeinfo performance @syuilo +- Server: delete outdated notifications regularly to improve db performance @syuilo +- Server: delete outdated hard-mutes regularly to improve db performance @syuilo +- Server: delete outdated notes of antenna regularly to improve db performance @syuilo +- Server: improve activitypub deliver performance @syuilo +- Client: use tabler-icons instead of fontawesome to better design @syuilo +- Client: Add new gabber kick sounds (thanks for noizenecio) +- Client: Add link to user RSS feed in profile menu @ssmucny +- Client: Compress non-animated PNG files @saschanaz +- Client: YouTube window player @sim1222 +- Client: show readable error when rate limit exceeded @syuilo +- Client: enhance dashboard of control panel @syuilo +- Client: Vite is upgraded to v4 @syuilo, @tamaina +- Client: HMR is available while yarn dev @tamaina +- Client: Implement the button to subscribe push notification @tamaina +- Client: Implement the toggle to or not to close push notifications when notifications or messages are read @tamaina +- Client: show Unicode emoji tooltip with its name in MkReactionsViewer.reaction @saschanaz +- Client: OpenSearch support @SoniEx2 @chaoticryptidz +- Client: Support remote objects in search @SoniEx2 +- Client: user activity page @syuilo +- Client: Make widgets of universal/classic sync between devices @tamaina +- Client: add user list widget @syuilo +- Client: Add AiScript App widget +- Client: add profile widget @syuilo +- Client: add instance info widget @syuilo +- Client: Improve RSS widget @tamaina +- Client: add heatmap of daily active users to about page @syuilo +- Client: introduce fluent emoji @syuilo +- Client: add new theme @syuilo +- Client: add new mfm function (position, fg, bg) @syuilo +- Client: show fireworks when visit user who today is birthday @syuilo +- Client: show bot warning on screen when logged in as bot account @syuilo +- Client: AiScript can refer to custom emoji list @syuilo +- Client: improve overall performance of client @syuilo +- Client: ui tweaks @syuilo +- Client: clicker game @syuilo + +### ์ˆ˜์ •๋œ ๋ฒ„๊ทธ + +- Server: Fix @tensorflow/tfjs-core's MODULE_NOT_FOUND error @ikuradon +- Server: Fixed a problem that sentences in quotes are nyaized @kabo2468 +- Server: Bug fix for Pinned Users lookup on instance @squidicuzz +- Server: Fix peers API returning suspended instances @ineffyble +- Server: trim long text of note from ap @syuilo +- Server: Ap inbox max payload size limited to 64kb @syuilo +- Server: add limit to number of antennae created @syuilo +- Server: Fixed duplicate error IDs in pages/like @syuilo +- Server: Fixed that summary values are not updated depending on pages/update parameters @syuilo +- Server: Escape SQL LIKE @mei23 +- Server: fix problem with certain PNG image uploads failing @usbharu +- Server: fix problem with OGP rendering with URLs of non-public clips @syuilo +- Server: Antenna timeline (streaming) picks up key posts of users not followed @syuilo +- Server: follow request list api pagination @sim1222 +- Server: Fixed an issue where an error when drive capacity is exceeded is not properly responded @syuilo +- Client: Fixed a problem that user name is not auto-completed in password manager @massongit +- Client: Fixed a problem that date strings are displayed as custom pictograms @syuilo +- Client: case insensitive emoji search @saschanaz +- Client: Fixed that there is no way to close widget drawer when screen width is narrow @syuilo +- Client: Fixed InApp window sometimes becoming inoperable @tamaina +- Client: use proxied image for instance icon @syuilo +- Client: Fixed an issue where the content cannot be saved in the Webhook edit screen @m-hayabusa +- Client: Fixed issue where blocks cannot be moved in Page edit @syuilo +- Client: update emoji picker immediately on all input @saschanaz +- Client: fixed tooltip of chart may remain on screen @syuilo +- Client: fix wrong link in tutorial @syuilo + +### ํŠนํžˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค + +- ๋ชจ๋“  ๊ธฐ์—ฌ์ž๋ถ„๋“ค +- ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ์‹  ๋ชจ๋“  ๋ถ„๋“ค +- ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ์— ์ฐธ์—ฌํ•˜์‹  ๋ชจ๋“  ๋ถ„๋“ค + +## 12.119.1 + +Released at: 2022/12/03 + +### Bugfixes + +- Server: Mitigate AP reference chain DoS vector @skehmatics + +## 12.119.0 + +Released at: 2022/09/10 + +### Improvements + +- Client: Add following badge to user preview popup @nvisser +- Client: mobile twitter url can be used as widget @caipira113 +- Client: Improve clock widget @syuilo + +### Bugfixes + +- Fix an issue that can cause migration failures +- Server: Fix an issue that allows marking others' notification as read @syuilo +- Client: Fix an issue where 'Manage access tokens' and 'Manage Accounts' page is not shown @futchitwo + +## 12.118.0 + +Released at: 2022/08/07 + +### Improvements + +- Client: Preference backups feature +- Client: Add vi-VN language support +- Client: Add unix time widget @syuilo + +### Bugfixes + +- Server: Fix blocking users from remote instances @xianonn +- Client: Fix webhook page freeze after webhook is first created @syuilo +- Client: Fix broken MiAuth page @syuilo +- Client: Fix an issue where drag-and-drop to the post form doesn't work with some applications @m-hayabusa + +## 12.117.1 + +Released at: 2022/07/19 + +### Improvements + +- Client: UI brushup @syuilo + +### Bugfixes + +- Server: Fix an issue where upload fails intermittently @acid-chicken +- Client: Fix an issue where reaction picker is shown behind other in-app windows @syuilo +- Client: Fix user information lookup retry feature @xianonn +- Client: Update MFM cheatsheet behavior @syuilo +- Client: Fix an issue that prevents changing 'Receive notifications from this instance' setting @syuilo + +## 12.117.0 + +Released at: 2022/07/18 + +### Improvements + +- Client: Support maximizing windows @syuilo +- Client: Shift-clicking on the link opens it in-app @syuilo +- Client: Ctrl-clicking on the link will force page transition on Deck UI @syuilo +- Client: UI brushup @syuilo + +## 12.116.1 + +Released at: 2022/07/17 + +### Bugfixes + +- Client: Fix an issue that prevents 'Show in page' button from working on Deck UI @syuilo +- Error During Migration Run to 12.111.x + +## 12.116.0 + +Released at: 2022/07/16 + +### Improvements + +- Client: registry editor @syuilo +- Client: UI brushup @syuilo + +### Bugfixes + +- Error During Migration Run to 12.111.x +- Server: TypeError: Cannot convert undefined or null to object @syuilo + +## 12.115.0 + +Released at: 2022/07/16 + +### Improvements + +- Client: Easier account switching on the Deck @syuilo +- Client: UI brushup @syuilo + +## 12.114.0 + +Released at: 2022/07/15 + +### Improvements + +- Add article order shuffle feature to the RSS ticker @syuilo + +### Bugfixes + +- Fix an issue that prevents client from booting @syuilo + +## 12.113.0 + +Released at: 2022/07/13 + +### Improvements + +- Support `` syntax for MFM + +### Bugfixes + +- Server: Fix crash at startup if TensorFlow is not supported @mei23 +- Client: Fix routing of the URL encoded string + +## 12.112.3 + +Released at: 2022/07/09 + +### Improvements + +- Make active email validation configurable + +### Bugfixes + +- Server: Fix Attempts to update all notifications @mei23 + +## 12.112.2 + +Released at: 2022/07/08 + +### Bugfixes + +- Fix Docker doesn't work @mei23 + Still not working on arm64 environment. (See 12.112.0) + +## 12.112.1 + +Released at: 2022/07/07 + +same as 12.112.0 + +## 12.112.0 + +Released at: 2022/07/07 + +### Known issues + +- Installation is currently not working on arm64 environment. This will be fixed in the next version. + +### Changes + +- Highlight menu has been merged into the Explore menu. +- Custom Emoji page has been merged into the Instance Information page. +- Federation page has been merged into the Instance Information page. +- Mentions menu has been merged into the Notification menu. +- Direct notes menu has been merged into the Notifications menu. +- You can now access Antennas via the top icon of the Timeline, instead of the main menu. +- You can now access Lists via the top icon of the Timeline, instead of the main menu. + +### Improvements + +- Server: Allow GET method for some endpoints @syuilo +- Server: Auto NSFW detection @syuilo +- Server: Add rate limit to i/notifications @tamaina +- Client: Improve control panel @syuilo +- Client: Show warning in control panel when there is an unresolved abuse report @syuilo +- Client: Statusbars @syuilo +- Client: Add instance-cloud widget @syuilo +- Client: Add rss-ticker widget @syuilo +- Client: Removing entries from a clip @futchitwo +- Client: Poll highlights in explore page @syuilo +- Client: Improve deck UI @syuilo +- Client: Word mute also checks content warnings @Johann150 +- Client: Page reload from menu @syuilo +- Client: Improve emoji picker performance @syuilo +- Client: For notes with specified visibility, show recipients when hovering over visibility symbol. @Johann150 +- Client: Make widgets available again on a tablet @syuilo +- Add possibility to leave moderation notes on users @syuilo +- Make possible to delete an account by admin @syuilo +- Improve player detection in URL preview @mei23 +- Add Badge Image to Push Notification #8012 @tamaina +- Server: Improve performance +- Server: Supports IPv6 on Redis transport. @mei23 + IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`. +- Server: Add possibility to log IP addresses of users @syuilo +- Add additional drive capacity change support @CyberRex0 + +### Bugfixes + +- Server: Fix GenerateVideoThumbnail failed @mei23 +- Server: Ensure temp directory cleanup @Johann150 +- favicons of federated instances not showing @syuilo +- Admin: The checkbox for blocking an instance works again @Johann150 +- Client: Prevent access to user pages when not logged in @pixeldesu @Johann150 +- Client: Disable some hotkeys (e.g. for creating a post) for not logged in users @pixeldesu +- Client: Ask users that are not logged in to log in when trying to vote in a poll @Johann150 +- Instance mutes also apply in antennas etc. @Johann150 + +## 12.111.1 + +Released at: 2022/06/13 + +### Bugfixes + +- some fixes of multiple notification read @tamaina +- some GenerateVideoThumbnail failed @Johann150 +- Client: fix problem with widget information not being saved in Deck mode @syuilo +- Client: edit screen appears when trying to open gallery posts @futchitwo + +## 12.111.0 + +Released at: 2022/06/11 + +### Note + +- Node.js 16.15.0 or later is required + +### Improvements + +- Supports Unicode Emoji 14.0 @mei23 +- Push notifications for multiple accounts #7667 @tamaina +- Set click and `action` for Push notifications #7667 @tamaina +- Option to discard original image and only keep `WebPublic` one when uploading it to Drive @tamaina +- Server: always remove completed tasks of job queue @Johann150 +- Client: allow cropping of images in avatar settings @syuilo +- Client: make emoji stand out more on reaction button @Johann150 +- Client: display URL of QR code for TOTP registration @tamaina +- Client: render quote renote CWs as MFM @pixeldesu +- API: `notifications/read` also accepts in arrays #7667 @tamaina +- API: if the query meets the `username` condition, `username` is also `LIKE` searched when searching users @tamaina +- MFM: Allow speed changes in all animated MFMs @Johann150 +- The theme color is now better validated. @Johann150 + Your own theme color may be unset if it was in an invalid format. + Admins should check their instance settings if in doubt. +- Perform port diagnosis at startup only when Listen fails @mei23 +- Rate limiting is now also usable for non-authenticated users. @Johann150 @mei23 + Admins should make sure the reverse proxy sets the `X-Forwarded-For` header to the original address. + +### Bugfixes + +- Server: keep file order of note attachement @Johann150 +- Server: fix missing foreign key for reports leading to reports page being unusable @Johann150 +- Server: fix internal in-memory caching @Johann150 +- Server: prevent crash when processing certain PNGs @syuilo +- Server: Fix unable to generate video thumbnails @mei23 +- Server: Fix `Cannot find module` issue @mei23 +- Federation: Add rel attribute to host-meta @mei23 +- Federation: add id for activitypub follows @Johann150 +- Federation: use `source` instead of `_misskey_content` @Johann150 +- Federation: ensure resolver does not fetch local resources via HTTP(S) @Johann150 +- Federation: correctly render empty note text @Johann150 +- Federation: Fix quote renotes containing no text being federated correctly @Johann150 +- Federation: remove duplicate br tag/newline @Johann150 +- Federation: add missing authorization checks @Johann150 +- Client: fix profile picture height in mentions @tamaina +- Client: fix abuse reports page to be able to show all reports @Johann150 +- Client: fix settings page @tamaina +- Client: fix profile tabs @futchitwo +- Client: fix popout URL @futchitwo +- Client: correctly handle MiAuth URLs with query string @sn0w +- Client: correct behavior of the function to display new Note on its details page @xianonn +- MFM: more animated functions support `speed` parameter @futchitwo +- MFM: limit large MFM @Johann150 + +## 12.110.1๏ผˆ2022/04/23๏ผ‰ + +### Bugfixes + +- Fix GOP rendering @syuilo +- Improve performance of antenna, clip, and list @xianonn + +## 12.110.0 + +Released at: 2022/04/11 + +### Improvements + +- Improve webhook @syuilo +- Client: Show loading icon on splash screen @syuilo + +### Bugfixes + +- API: parameter validation of users/show was wrong +- Federation: fixed problem with direct posts to remote instances not reaching @syuilo + +## 12.109.2 + +Released at: 2022/04/03 + +### Bugfixes + +- API: admin/update-meta was not working @syuilo +- Client: fix issue where meta[name="theme-color"] content was undefined when switching or loading themes @tamaina + +## 12.109.1 + +Released at: 2022/04/02 + +### Bugfixes + +- API: Fixed problem with Renote + +## 12.109.0 + +Released at: 2022/04/02 + +### Improvements + +- Webhooks @syuilo +- Bull Dashboard built in to check and manipulate job queues @syuilo + - To open the Bull Dashboard, you must relog (log out and log back in) to misskey once with your admin account +- Check that installed Node.js version fulfils version requirement @ThatOneCalculator +- Server: overall performance improvements @syuilo +- Federation: avoid duplicate activity delivery @Johann150 +- Federation: limit federation of reactions on direct notes @Johann150 +- Client: improved deck handling on touchpad/touchscreen @tamaina + +### Bugfixes. + +- Email address validation was not working @ybw2016v +- API: fix endpoint endpoint @Johann150 +- API: fix admin/meta endpoint @syuilo +- API: improved validation and documentation for endpoints that accept different variants of input @Johann150 +- API: `notes/create`: The `mediaIds` property is now deprecated. + - Use `fileIds` instead, it has the same behaviour. +- Client: fixed problem with URLs not displaying if decodeURIComponent fails due to abnormal URI encoding @tamaina + +## 12.108.1 + +Released at: 2022-03-12 + +### Bugfixes + +- Fixed relay not working @xianonn +- Fixed problem with ulid not working @syuilo +- Fixed a problem that OGP cannot be obtained correctly from outside @syuilo +- Instance can't get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v + +## 12.108.0 + +Released at: 2022-03-09 + +### Note + +- Node v16.14.0 or later is required from this version + +### Changes + +- The ability to set the maximum number of characters in a note has been removed and the default is now a flat 3000 characters @syuilo +- Misskey can no longer terminate HTTPS connections. @Johann150 + - If you did not use a reverse proxy (e.g. nginx) before, you will probably need to adjust your configuration file and set up a reverse proxy. The https configuration key is no longer recognized! + +### Improvements + +- Instance default theme can be set @syuilo +- Allow mute to set expiration date @syuilo +- Create a notification when a survey is closed @syuilo +- Allow up to 16 profile fields to be saved @syuilo +- Add Pub&Sub to federation chart @syuilo +- Add Active to federation chart @syuilo +- Queries to databases that take longer than 10 seconds by default will be aborted @syuilo + - You can change the timeout period by setting `statement_timeout` in the configuration file `db.extra` +- Client: display instance icon on splash screen @syuilo + +### Bugfixes + +- Client: Fixed reaction picker height sometimes remains low and does not return @syuilo +- Client: Fixed username autocomplete not working properly @syuilo +- Client: Fixed difficulty in editing widgets with touch operation @xianonn +- Client: Fixed register_note_view_interruptor() not working @syuilo +- Client: iPhone X or later(?) Fixed: Fixed page content not being fully displayed on iPhone X or later(?) @tamaina +- Client: Fix image caption on mobile @nullobsi + +## 12.107.0 + +Released at: 2022/02/12 + +### Improvements + +- Client: add theme @syuilo + +### Bugfixes + +- API: fixed internal error in stats API @syuilo +- Client: Fixed soft mute sometimes causing everything to match @tamaina +- Client: take screen safe area into account of the device @syuilo +- Client: Fixed issue with sidebar post button not showing in some environments @syuilo + +## 12.106.3 + +Released at: 2022/02/11 + +### Improvements + +- Client: adjust margins on smart phones @syuilo + +### Bugfixes + +- Client: fixed issue with note details not showing @syuilo + +## 12.106.2 + +Released at: 2022/02/11 + +### Bugfixes + +- Client: Fixed an issue where deleted notes did not automatically disappear from the timeline @syuilo +- Client: Fixed an issue where the number of reactions may be incorrect @syuilo +- Fixed problem with migration not working in some environments @syuilo + +## 12.106.1 + +Released at: 2022/02/11 + +### Bugfixes + +- Client: fixed problem with word mute not saving @syuilo + +## 12.106.0 + +Released at: 2022/02/11 + +### Improvements + +- Improve federation chart @syuilo +- Client: Allow to set the size of the reaction picker @syuilo +- Client: Relaxed reaction picker width and height restrictions @syuilo +- Docker: Update to Node v16.13.2 @mei23 +- Update dependencies + +### Bugfixes + +- validate regular expressions in word mutes @Johann150 + +## 12.105.0 + +Released at: 2022/02/09 + +### Improvements + +- Allow to set the theme color of the instance @syuilo + +#### Bugfixes + +- Fixed migration failure in some environments @syuilo + +## 12.104.0 + +Released at: 2022/02/09 + +### Note + +Please run `npm run clean` before building. + +Due to the large scale of migration in this release, migration may take some time for some instances. +If the migration does not finish, you can delete all **records** in the table starting with `__chart__` (do not delete the table itself) and try again, although the chart information will be reset. + +### Improvements + +- Chart engine enhancements @syuilo + - Reduced table size + - Added number of notes with attachments to notes/instance/perUserNotes chart + - Added new entry to activeUsers chart + - Added new entry to federation chart + - Added apRequest chart + - network chart eliminated +- Client: Enable to see the chart on own instance info page @syuilo +- Client: Allow manual specification of device type @syuilo +- Client: updated UI icons @syuilo +- Client: self-hosting UI icons @syuilo +- Review NodeInfo user and post count content @xianonn + +### Bugfixes + +- Client: Fixed "There is a new note" display remains when switching timeline type @tamaina +- Client: fix UI size issue @tamaina +- Client: Setting instance information of notes to always show breaks the timeline @Johann150 +- Client: Fixed an issue where the cursor position was not correct when replying depending on the environment @syuilo +- Client: Fixed a problem that switching the display range of instances does not work in the control panel users and files @syuilo +- Client: Fixed no update notification dialog @syuilo +- Client: Follows/Followers Visibility changes won't be saved unless clicking on an other checkbox @Johann150 +- API: Fix API cast @mei23 +- Add instance favicon where it's missing @solfisher +- Fixed problems with periodic resync of charts not working @syuilo + +## 12.103.1 + +Released at: 2022/02/02 + +### Bugfixes + +- Client: Fixed an issue with tooltip display position being incorrect. + +## 12.103.0 + +Released at: 2022/02/02 + +### Improvements + +- Client: Allow instance information to be reacquired from the coalition instance page. + +### Bugfixes + +- Client: Fixed an issue where images are hidden when reactions are updated after displaying NSFW images of a post. +- Client: Fixed problem with "Clip" page not opening +- Client: Fixed Trends widget not working +- Client: Fixed Federation widget not working +- Client: Fixed emoji picker not opening in reaction settings +- Client: Fixed issue with inclusion of mentions on DM page +- Client: hashtag retention field in submission form not working +- Client: Fixed side view not working +- Client: ensure that specified users does not get duplicates +- Add `img-src` and `media-src` directives to `Content-Security-Policy` for files and media proxy + +## 12.102.1 + +Released at: 2022/01/27 + +### Bugfixes + +- Fixed problem with chat not displaying + +## 12.102.0 + +Released at: 2022/01/27 + +### Note + +After the update, some custom emoji may not be displayed. In this case, batch exporting the emoji from the emoji management page and then batch importing them again from the control panel will fix the problem. + +โš  It is not compatible with zips exported prior to 12.102.0. Please update before exporting. + +### Changes + +- Room functionality has been removed. + - It will be restored as a separate repository at a later date. +- Reversi function has been removed. + - It will be restored as a separate repository at a later date. +- Chat UI has been removed. +- The number of files that can be attached to a note has been increased to 16. +- SVG custom emoji are now converted to PNGs for display + +### Improvments + +- Custom emoji batch editing function +- Batch import of custom emoji +- Posting form now allows temporary switching of posting accounts +- Unifying Misskey-specific IRIs in JSON-LD `@context`. +- Improved client performance +- Security Improvements + +### Bugfixes + +- Fixed handling of upload errors + +## 12.101.1 + +Released at: 2021/12/29 + +### Bugfixes + +- Fixed SVG emoji not displaying +- Fixed a case where the extension of exported emoji is false. + +## 12.101.0 + +Released at: 2021/12/29 + +### Improvements + +- Client: Improved accuracy of note previews +- Client: Improvement of MFM sparkle effect +- Client: Design adjustments +- Security Improvements + +### Bugfixes + +- Client: Fixed some components being hidden behind the scenes +- Fix html blockquote conversion + +## 12.100.2 + +Released at: 2021/12/18 + +### Bugfixes + +- Client: Fixed issue where Deck column increases/decreases were not properly reflected until page was reloaded. +- Client: Fixed some components being hidden behind the scenes +- Client: Fixed heavy load on custom emoji list page + +## 12.100.1 + +Released at: 2021/12/17 + +### Bugfixes + +- Client: Design coordination +- Client: Improved display of various menus and reaction picker on mobile + +## 12.100.0 + +Released at: 2021/12/17 + +### Improvements + +- Client: Improved display of various menus and reaction picker on mobile + +### Bugfixes + +- Client: Fixed some components hiding in the background + +## 12.99.3 + +Released at: 2021/12/14 + +### Bugfixes + +- Client: Fixed problem with autocomplete being hidden behind dialogs + +## 12.99.2 + +Released at: 2021/12/14 + +## 12.99.1 + +Released at: 2021/12/14 + +## 12.99.0 + +Released at: 2021/12/14 + +### Improvements + +- Added a user-level instance mute in user settings +- Added option to not include muted users in follow export +- Added option to not include unused accounts in follow export +- Custom emoji export function +- Chart performance improvements +- Allowed to exit from a group + +### Bugfixes + +- Client: Fixed a problem that prevented some functions from working when using a display with touch functionality and mouse operation. +- Client: Fixed an issue where clip settings could not be edited. +- Client: Fixed a problem with menus etc. being hidden behind windows + +## 12.98.0 + +Released at: 12/03/2021 + +### Improvements + +- API: /antennas/notes API now allows filtering by date +- Client: Confirmation dialog box when voting on a survey +- Client: Renote note detail page to the original note page. +- Client: Image popups can be closed by clicking on them. +- Client: Design adjustments +- Ability to remove followers + +### Bugfixes + +- Client: fixed the issue of tabs being displayed on the UI even when LTL and GTL are disabled +- Client: Fixed problem with incorrect error message for incorrect password in login +- Client: Corrected the order of users in the Reaction tooltip and Renote tooltip. +- Client: Fixed problem with master volume of sound not being saved correctly. +- Client: Fixed an inoperability issue in some environments when notifications are displayed. +- Client: Fixed problem with tooltips when tapped on mobile +- Client: Fixed an issue where, when replying to a note in a remote instance, if the target note contained a mentions to a user in that remote instance, it was sometimes passed on as a mentions to the local user in the reply text. +- Client: Fixed a problem in the image viewer where only a portion of the top image is displayed when the entire image is displayed. +- API: Fixed an internal error when retrieving users depending on conditions + +### Changes + +- Client: Moderator badge no longer displayed in notes + +## 12.97.0 (2021-11-19) + +### Improvements + +- client: auto-folding also applies to renotes +- client: improved display of long threads +- client: also apply MFM to translations, so that it retains the formatting (line breaks, etc.) of the original text. +- client: add a confirmation dialog before deleting an account + +### Bugfixes + +- client: fixed an issue where "All" in user search did not work +- client: fixed the style of the Reaction List and Renote List tooltips + +::: warning +Older releases are not translated yet. If you can, please edit this page to add them from the Japanese changelog on [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). +::: diff --git a/src/ko/docs/tips/disable-timelines.md b/src/ko/docs/tips/disable-timelines.md new file mode 100644 index 0000000000..764584920c --- /dev/null +++ b/src/ko/docs/tips/disable-timelines.md @@ -0,0 +1,10 @@ +# Disabling the LTL/STL/GTL +In Misskey, it's possible to individually deactivate the LTL/STL/GTL.You can enable or disable these individual timelines via the instance control panel. + +As all posts across your instance can be seen in both the LTL and STL, they have the advantage of making it easy for new users to find others that they are interested in without having to use the manual user search. At the same time however, this means that following other users to see their posts is less important and inappropriate posts may be shown to users more frequently. Additionally, the experience becomes more alike that of a Chatroom, which in turn may make it more difficult for new users to join in one conversations with those who have been taking part for a long time. As the weight of these advantages and disadvantages may vary from server to server, the choice of using or not using them has been left to each individual instance. If you feel like the demerits outweigh the merits, please consider deactivating these respective timelines. + +::: warning +Disabling timelines can lead to confusion and possibly to a short-time drop in users.Therefore, please carefully consider the effects of disabling a timeline, and explain the reasoning for doing so in advance, so that your users can prepare by e.g. following users they often talk with on the LTL/STL. +::: + +Additionally, Administrators / Moderators will be able to continue viewing these timelines even after they have been disabled. diff --git a/src/ko/docs/troubleshooting.md b/src/ko/docs/troubleshooting.md new file mode 100644 index 0000000000..0cb4e86b65 --- /dev/null +++ b/src/ko/docs/troubleshooting.md @@ -0,0 +1,71 @@ +--- +description: '๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ์šฐ์„  ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.' +--- + +# ๋ฌธ์ œ ํ•ด๊ฒฐ +::: ํŒ +[์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ](./faq.md)์˜ ๋‚ด์šฉ๋„ ๊ฐ™์ด ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. +::: + +๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ, ๋จผ์ € ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. +ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†๊ฑฐ๋‚˜, ์ด ๋ฌธ์„œ์—์„œ ์ง€์‹œํ•˜๋Š” ๋Œ€๋กœ ์‹คํ–‰ํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๋•Œ์—๋Š” ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜๊ฑฐ๋‚˜ [๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ](./report-issue)ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. + +## ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผœ์ง€์ง€ ์•Š์•„์š”! +๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์˜ค๋ž˜๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค. +๋ธŒ๋ผ์šฐ์ € ๋ฐ ์šด์˜์ฒด์ œ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ๋’ค, ๋‹ค์‹œ ์‹œ๋„ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. + +๊ทธ๋Ÿผ์—๋„ ์‹คํ–‰๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ๋’ค, ๋‹ค์‹œ ์‹œ๋„ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. + +## ํŽ˜์ด์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†์–ด์š”! +์›น ํด๋ผ์ด์–ธํŠธ๋Š” ์ผœ์ง€์ง€๋งŒ ํŽ˜์ด์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค๋ฉด, ๋„คํŠธ์›Œํฌ์— ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ์ง€ ๋จผ์ € ํ™•์ธํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ๋˜ํ•œ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋กœ๋„ ์ ‘์†์„ ์‹œ๋„ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถฐ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹Œ์ง€๋„ ํ™•์ธํ•ด ์ฃผ์‹ญ์‹œ์˜ค. + +๋‚ฎ์€ ํ™•๋ฅ ๋กœ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ๋’ค, ๋‹ค์‹œ ์‹œ๋„ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. + +๊ทธ๋Ÿผ์—๋„ ์‹คํ–‰๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์„œ๋ฒ„์˜ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ์„œ๋ฒ„์˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. + +## ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋งค์šฐ ๋А๋ ค์š”! +์ธํ„ฐ๋„ท ์„œ๋น„์Šค ์ œ๊ณต์ž(ISP)์˜ ํ†ต์‹  ์žฅ์—๋‚˜ ์ ๊ฒ€์ด ์ง„ํ–‰์ค‘์ธ ๊ฒƒ์€ ์•„๋‹Œ์ง€, ๋„คํŠธ์›Œํฌ์˜ ํ†ต์‹  ์†๋„๋‚˜ ๋„คํŠธ์›Œํฌ ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€, ์„œ๋ฒ„ ์ธก์˜ ์žฅ์•  ๋ณด๊ณ ๋‚˜ ์ ๊ฒ€ ์ผ์ •์€ ์—†๋Š” ์ง€ ๋จผ์ € ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. + +1.Misskey ์›น ์„ค์ • +๋ฉ”๋‰ด์˜ '์„ค์ •'์œผ๋กœ ๋“ค์–ด๊ฐ€์…”์„œ, 'ํด๋ผ์ด์–ธํŠธ ์„ค์ •'์˜ '์ผ๋ฐ˜'์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค. + +- '๋ชจ์–‘'์˜ "UI์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ค„์ด๊ธฐ" ์ผœ๊ธฐ +- '๋ชจ์–‘'์˜ "๋ชจ๋‹ฌ์— ํ๋ฆผ ํšจ๊ณผ ์‚ฌ์šฉ" ๋„๊ธฐ +- '๋ชจ์–‘'์˜ "์‹œ์Šคํ…œ ๊ธฐ๋ณธ ๊ธ€๊ผด์„ ์‚ฌ์šฉ" ์ผœ๊ธฐ +- '๋ชจ์–‘'์˜ "OS ๊ธฐ๋ณธ ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉ" ์ผœ๊ธฐ + +์•„๋ž˜ ์„ค์ •์€ Misskey์˜ ๊ธฐ๋Šฅ์„ ์ผ๋ถ€ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. + +- '๋™์ž‘'์˜ "Pages ์—์„œ AiScript ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ" ๋„๊ธฐ +- '๋ชจ์–‘'์˜ "์›€์ง์ž„์ด ์žˆ๋Š” MFM์˜ ๋น„ํ™œ์„ฑํ™”" ์ผœ๊ธฐ + +2.์›น ๋ธŒ๋ผ์šฐ์ € ์„ค์ • +- ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์—์„œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ์ผœ๊ธฐ +- ๋ธŒ๋ผ์šฐ์ €์˜ ์• ๋“œ์˜จ์ด๋‚˜ ํ™•์žฅ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค์ •์„ ์ ๊ฒ€ ํ˜น์€ ๋น„ํ™œ์„ฑํ™” +- ๊ธฐํƒ€ ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์„ ์ ๊ฒ€ + +3.๊ธฐํƒ€ +- ์‚ฌ์šฉ ์ค‘์ธ ๊ธฐ๊ธฐ์˜ ์‹œ์Šคํ…œ ์„ค์ • ์ ๊ฒ€ + +## Misskey ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ƒํ•ด์š”! (๋ฐฐ๊ฒฝ์ด ํˆฌ๋ช…ํ•ด์ง€๊ฑฐ๋‚˜ ๊ธฐํƒ€ ๋ฌธ์ œ) +์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด UI์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ, ํ…Œ๋งˆ ์บ์‹œ ์‹œ์Šคํ…œ์˜ ์˜ํ–ฅ์œผ๋กœ ํ™ˆํŽ˜์ด์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +์„ค์ • ๋ฉ”๋‰ด์—์„œ '์บ์‹œ ๋น„์šฐ๊ธฐ'๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +::: ๊ฒฝ๊ณ  +"์›น ํด๋ผ์ด์–ธํŠธ" ์„ค์ •์˜ ์บ์‹œ ๋น„์šฐ๊ธฐ์ž…๋‹ˆ๋‹ค. "๋ธŒ๋ผ์šฐ์ €"์˜ ์บ์‹œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. +::: + +## ์•Œ๋ฆผ์ด๋‚˜ ์•ˆํ…Œ๋‚˜์˜ ๊นœ๋นก์ž„ ํ‘œ์‹œ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์•„์š”! +๊นœ๋นก์ž„ ํ‘œ์‹œ๋Š” ์ฝ์ง€ ์•Š์€ ์ปจํ…์ธ ๊ฐ€ ์žˆ์„ ๋•Œ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊นœ๋นก์ž„ ํ‘œ์‹œ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ํ˜„์ƒ์€ ๋ณดํ†ต ์ฝ์ง€ ์•Š์€ ์ปจํ…์ธ ๊ฐ€ ๋ชฉ๋ก ์–ด๋”˜๊ฐ€์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. +๋ชจ๋“  ์ปจํ…์ธ ๋ฅผ ์ฝ์€ ๊ฒƒ ๊ฐ™์€๋ฐ๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด (๋ฒ„๊ทธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค), ์„ค์ • - ์•Œ๋ฆผ์—์„œ ๋ชจ๋“  ์•Œ๋ฆผ/๊ธ€/๋Œ€ํ™”๋ฅผ ์ฝ์€ ์ƒํƒœ๋กœ ํ‘œ์‹œํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## ๋ฆฌ๋…ธํŠธํ•  ์ˆ˜ ์—†์–ด์š”! +๊ณต๊ฐœ ๋ฒ”์œ„๊ฐ€ 'ํŒ”๋กœ์›Œ'์ด๊ฑฐ๋‚˜ '๋‹ค์ด๋ ‰ํŠธ'์ธ ๊ฒŒ์‹œ๋ฌผ์€ ๋ฆฌ๋…ธํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. + +## Misskey ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ ํŠน์ • ์š”์†Œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์•„์š”! +์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ด‘๊ณ  ์ฐจ๋‹จ๊ธฐ์™€ ๊ฐ™์€ ์• ๋“œ์˜จ ๋˜๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ๋“œ์˜จ ๋˜๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์˜ ์„ค์ •์„ ์ ๊ฒ€ํ•˜๊ฑฐ๋‚˜, ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. + +## Misskey ์›น ํด๋ผ์ด์–ธํŠธ์— ๋ฒˆ์—ญ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ์žˆ์–ด์š”! +๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Misskey ์›น ํด๋ผ์ด์–ธํŠธ์˜ ๋ฒˆ์—ญ์ด ์ œ๋•Œ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์€ ๊ฒƒ์ด ์›์ธ์ด๋ฏ€๋กœ, ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ถˆํŽธํ•˜์‹œ๊ฒ ์ง€๋งŒ ๋ฒˆ์—ญ์ด ์™„์„ฑ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค ์ฃผ์‹ญ์‹œ์˜ค. + +๋งŒ์•ฝ Misskey์˜ ๋ฒˆ์—ญ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์ง์ ‘ [๋ฒˆ์—ญ์— ์ฐธ๊ฐ€](./misskey)ํ•˜์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. diff --git a/src/ko/help.md b/src/ko/help.md new file mode 100644 index 0000000000..42ebf76bd3 --- /dev/null +++ b/src/ko/help.md @@ -0,0 +1,3 @@ +# ๋„์›€๋ง + +- [๊ธฐ๋Šฅ ์ผ๋žŒ](./docs/features/index.md) diff --git a/src/ko/home.md b/src/ko/home.md new file mode 100644 index 0000000000..4ab984d987 --- /dev/null +++ b/src/ko/home.md @@ -0,0 +1,60 @@ +--- +home: true +title: Misskey Hub +heroImage: /banner.svg +tagline: ์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ, Misskey์˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ +footer: Copyright (c) 2021 syuilo and other contributors +actions: + - text: Misskey ์‹œ์ž‘ํ•˜๊ธฐ + link: ./docs/getting-started + type: primary + - text: ๋” ์•Œ์•„๋ณด๊ธฐ + link: ./docs/misskey + type: secondary +features: + - title: ๋ถ„์‚ฐํ˜•๐Ÿช + details: ๋‹ค์–‘ํ•œ ์„œ๋ฒ„์—์„œ ๋…๋ฆฝ์ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์šด์˜๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋“ค์€ ๋ชจ๋‘ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. + - title: ๊ฐ€๋ฒผ์›€๐Ÿš€ + details: ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” Node.js๋ฅผ ์ด์šฉํ•˜์—ฌ, ๋งŽ์€ ์ˆ˜์˜ ์„œ๋ฒ„์™€ ์—ฐํ•ฉํ•˜๋”๋ผ๋„ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + - title: ์ฆ๊ฑฐ์›€๐Ÿฎ + details: ๋ฆฌ์•ก์…˜์ด๋‚˜ ๊ณ ๋„์˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•œ UI ๋“ฑ, ํŠน์ง•์ ์ธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +--- + + + + + +
+ +# Sponsors +
+ RSS3 +
+
+ + diff --git a/src/ko/instances.md b/src/ko/instances.md new file mode 100644 index 0000000000..c0df917dec --- /dev/null +++ b/src/ko/instances.md @@ -0,0 +1,7 @@ +# List of instances + +::: ํŒ +[join.misskey.page](https://join.misskey.page/)์—์„œ ๋” ๋งŽ์€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”. +::: + + diff --git a/src/ko/plugins.md b/src/ko/plugins.md new file mode 100644 index 0000000000..238cbcb7f7 --- /dev/null +++ b/src/ko/plugins.md @@ -0,0 +1,12 @@ +# ํ”Œ๋Ÿฌ๊ทธ์ธ ์Šคํ† ์–ด +Misskey ์›น UI์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” [ํ”Œ๋Ÿฌ๊ทธ์ธ](./docs/features/plugin.md)์„ ๋ชจ์•„๋‘๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. + +::: tip +์ง์ ‘ ๋งŒ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์Šคํ† ์–ด์— ๋“ฑ๋กํ•˜์‹œ๋ ค๋ฉด [ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ๋กํ•˜๊ธฐ](#ํ”Œ๋Ÿฌ๊ทธ์ธ-๋“ฑ๋กํ•˜๊ธฐ) ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”. +::: + +## ํ”Œ๋Ÿฌ๊ทธ์ธ +- TODO + +## ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ๋กํ•˜๊ธฐ +TODO diff --git a/src/ko/updates.md b/src/ko/updates.md new file mode 100644 index 0000000000..b26729ca77 --- /dev/null +++ b/src/ko/updates.md @@ -0,0 +1,3 @@ +# ๋ณ€๊ฒฝ ์‚ฌํ•ญ + + From fd8ce0ea1bff8acc7b3e4bfae05ae8bb9e078368 Mon Sep 17 00:00:00 2001 From: jdh5968 Date: Fri, 20 Jan 2023 20:59:24 +0900 Subject: [PATCH 112/296] fix: fix config.ts from how Prettier messed up Fixed only line breaks --- src/.vuepress/config.ts | 746 ++++++++++++++-------------------------- 1 file changed, 252 insertions(+), 494 deletions(-) diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index 22189b97e9..decb94955b 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -50,23 +50,10 @@ export default defineUserConfig({ ], locales: { - "/": { - lang: "ja-JP", - description: - "ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ", - }, - "/en/": { - lang: "en-US", - description: "Official website of Misskey project", - }, - "/ko/": { - lang: "ko-KR", - description: "์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ Misskey", - }, - "/it/": { - lang: "it-IT", - description: "Sito ufficiale del progetto Misskey", - }, + "/": {lang: "ja-JP", description: "ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ"}, + "/en/": {lang: "en-US", description: "Official website of Misskey project"}, + "/ko/": {lang: "ko-KR", description: "์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ Misskey"}, + "/it/": {lang: "it-IT", description: "Sito ufficiale del progetto Misskey"}, }, theme: localTheme({ @@ -82,125 +69,69 @@ export default defineUserConfig({ relatedPagesText: "้–ข้€ฃใ™ใ‚‹ใƒšใƒผใ‚ธ", readThisArticle: "ใ“ใฎ่จ˜ไบ‹ใ‚’่ชญใ‚€", navbar: [ - { - text: "ใƒ–ใƒญใ‚ฐ", - link: "/blog/", - }, - { - text: "ใŠๆฅฝใ—ใฟ", - children: ["/instances", "/plugins/", "/appendix/assets"], - }, - { - text: "ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ", - children: [ - "/docs/misskey", - "/docs/releases", - "/docs/misskey-hub", - "/docs/faq", - "/docs/glossary", - "/docs/troubleshooting", - { - text: "ๆฉŸ่ƒฝ", - children: [ - "/docs/features/note", - "/docs/features/reaction", - "/docs/features/timeline", - "/docs/features/mfm", - "/docs/features/custom-emoji", - "/docs/features/drive", - "/docs/features/deck", - "/docs/features/charts", - "/docs/features/online-status", - "/docs/features/share-form", - "/docs/features/ads", - "/docs/features/thread-mute", - "/docs/features/word-mute", - "/docs/features/mute-and-block", - "/docs/features/plugin", - "/docs/features/antenna", - "/docs/features/clip", - "/docs/features/favorite", - "/docs/features/follow", - "/docs/features/pages", - "/docs/features/theme", - "/docs/features/thread-mute", - "/docs/features/widgets", - ], - }, - { - text: "้–‹็™บ่€…", - children: [ - "/docs/api", - "/docs/api/streaming", - "/docs/api/endpoints.html", - "/docs/features/webhook", - ], - }, - { - text: "้‹ๅ–ถ่€…ๅ‘ใ‘", - children: [ - "/docs/install", - "/docs/admin/cdn", - "/docs/admin/nginx", - "/docs/admin/push-docker-hub", - "/docs/admin/troubleshooting", - "/docs/tips/disable-timelines", - "/docs/features/silence", - ], - }, - ], - }, - { - text: "ใƒชใƒณใ‚ฏ", - children: [ - { - text: "ๅ…ฌๅผDiscord", - link: "https://discord.gg/Wp8gVStHW3", - }, - { - text: "ๅฏ„ไป˜ (Patreon)", - link: "https://www.patreon.com/syuilo", - }, - { - text: "็ฟป่จณ (Crowdin)", - link: "https://crowdin.com/project/misskey", - }, - { - text: "่—.moe", - link: "https://xn--931a.moe", - }, - { - text: "ใ‚ขใ‚ซใ‚ฆใƒณใƒˆ", - children: [ - { - text: "@repo@p1.a9z.dev", - link: "https://p1.a9z.dev/@repo", - }, - ], - }, - { - text: "ใƒชใƒใ‚ธใƒˆใƒช", - children: [ - { - text: "misskey", - link: "https://github.com/misskey-dev/misskey", - }, - { - text: "misskey.js", - link: "https://github.com/misskey-dev/misskey.js", - }, - { - text: "mfm.js", - link: "https://github.com/misskey-dev/mfm.js", - }, - { - text: "misskey-hub", - link: "https://github.com/misskey-dev/misskey-hub", - }, - ], - }, - ], - }, + {text: "ใƒ–ใƒญใ‚ฐ", link: "/blog/"}, + {text: "ใŠๆฅฝใ—ใฟ", children: ["/instances", "/plugins/", "/appendix/assets"]}, + {text: "ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ", children: [ + "/docs/misskey", + "/docs/releases", + "/docs/misskey-hub", + "/docs/faq", + "/docs/glossary", + "/docs/troubleshooting", + {text: "ๆฉŸ่ƒฝ", children: [ + "/docs/features/note", + "/docs/features/reaction", + "/docs/features/timeline", + "/docs/features/mfm", + "/docs/features/custom-emoji", + "/docs/features/drive", + "/docs/features/deck", + "/docs/features/charts", + "/docs/features/online-status", + "/docs/features/share-form", + "/docs/features/ads", + "/docs/features/thread-mute", + "/docs/features/word-mute", + "/docs/features/mute-and-block", + "/docs/features/plugin", + "/docs/features/antenna", + "/docs/features/clip", + "/docs/features/favorite", + "/docs/features/follow", + "/docs/features/pages", + "/docs/features/theme", + "/docs/features/thread-mute", + "/docs/features/widgets", + ]}, + {text: "้–‹็™บ่€…", children: [ + "/docs/api", + "/docs/api/streaming", + "/docs/api/endpoints.html", + "/docs/features/webhook", + ]}, + {text: "้‹ๅ–ถ่€…ๅ‘ใ‘", children: [ + "/docs/install", + "/docs/admin/cdn", + "/docs/admin/nginx", + "/docs/admin/push-docker-hub", + "/docs/admin/troubleshooting", + "/docs/tips/disable-timelines", + "/docs/features/silence", + ]}, + ]}, + {text: "ใƒชใƒณใ‚ฏ", children: [ + {text: "ๅ…ฌๅผDiscord", link: "https://discord.gg/Wp8gVStHW3"}, + {text: "ๅฏ„ไป˜ (Patreon)", link: "https://www.patreon.com/syuilo"}, + {text: "็ฟป่จณ (Crowdin)", link: "https://crowdin.com/project/misskey"}, + {text: "่—.moe", link: "https://xn--931a.moe"}, + {text: "ใ‚ขใ‚ซใ‚ฆใƒณใƒˆ", children: [{ text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, + {text: "ใƒชใƒใ‚ธใƒˆใƒช", children: [ + {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, + {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, + {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, + {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, + ]}, + ]}, ], }, "/en/": { @@ -211,127 +142,71 @@ export default defineUserConfig({ relatedPagesText: "Related pages", readThisArticle: "Read this article", navbar: [ - { - text: "Blog", - link: "/en/blog/", - }, - { - text: "Taking part", - children: ["/en/instances", "/en/plugins/", "/en/appendix/assets"], - }, - { - text: "Documentation", - children: [ - "/en/docs/misskey", - "/en/docs/releases", - "/en/docs/misskey-hub", - "/en/docs/faq", - "/en/docs/glossary", - "/en/docs/troubleshooting", - { - text: "Features", - children: [ - "/en/docs/features/note", - "/en/docs/features/reaction", - "/en/docs/features/timeline", - "/en/docs/features/mfm", - "/en/docs/features/custom-emoji", - "/en/docs/features/drive", - "/en/docs/features/deck", - "/en/docs/features/charts", - "/en/docs/features/online-status", - "/en/docs/features/share-form", - "/en/docs/features/ads", - "/en/docs/features/thread-mute", - "/en/docs/features/word-mute", - "/en/docs/features/mute-and-block", - "/en/docs/features/plugin", - "/en/docs/features/antenna", - "/en/docs/features/clip", - "/en/docs/features/favorite", - "/en/docs/features/follow", - "/en/docs/features/pages", - "/en/docs/features/theme", - "/en/docs/features/thread-mute", - "/en/docs/features/widgets", - ], - }, - { - text: "for Developers", - children: [ - "/en/docs/api", - "/en/docs/api/streaming", - "/en/docs/api/endpoints.html", - "/en/docs/features/webhook", - ], - }, - { - text: "for Admins", - children: [ - "/en/docs/install", - "/en/docs/admin/emoji", - "/en/docs/admin/cdn", - "/en/docs/admin/nginx", - "/en/docs/admin/push-docker-hub", - "/en/docs/admin/troubleshooting", - "/en/docs/tips/disable-timelines", - "/en/docs/admin/default-reaction", - "/en/docs/features/silence", - ], - }, - ], - }, - { - text: "Links", - children: [ - { - text: "Official Discord", - link: "https://discord.gg/Wp8gVStHW3", - }, - { - text: "Donations (Patreon)", - link: "https://www.patreon.com/syuilo", - }, - { - text: "Translation (Crowdin)", - link: "https://crowdin.com/project/misskey", - }, - { - text: "่—.moe (Mascot art site)", - link: "https://xn--931a.moe", - }, - { - text: "Accounts", - children: [ - { - text: "@repo@p1.a9z.dev", - link: "https://p1.a9z.dev/@repo", - }, - ], - }, - { - text: "Repository", - children: [ - { - text: "misskey", - link: "https://github.com/misskey-dev/misskey", - }, - { - text: "misskey.js", - link: "https://github.com/misskey-dev/misskey.js", - }, - { - text: "mfm.js", - link: "https://github.com/misskey-dev/mfm.js", - }, - { - text: "misskey-hub", - link: "https://github.com/misskey-dev/misskey-hub", - }, - ], - }, - ], - }, + {text: "Blog", link: "/en/blog/"}, + {text: "Taking part", children: ["/en/instances", "/en/plugins/", "/en/appendix/assets"]}, + {text: "Documentation", children: [ + "/en/docs/misskey", + "/en/docs/releases", + "/en/docs/misskey-hub", + "/en/docs/faq", + "/en/docs/glossary", + "/en/docs/troubleshooting", + {text: "Features", children: [ + "/en/docs/features/note", + "/en/docs/features/reaction", + "/en/docs/features/timeline", + "/en/docs/features/mfm", + "/en/docs/features/custom-emoji", + "/en/docs/features/drive", + "/en/docs/features/deck", + "/en/docs/features/charts", + "/en/docs/features/online-status", + "/en/docs/features/share-form", + "/en/docs/features/ads", + "/en/docs/features/thread-mute", + "/en/docs/features/word-mute", + "/en/docs/features/mute-and-block", + "/en/docs/features/plugin", + "/en/docs/features/antenna", + "/en/docs/features/clip", + "/en/docs/features/favorite", + "/en/docs/features/follow", + "/en/docs/features/pages", + "/en/docs/features/theme", + "/en/docs/features/thread-mute", + "/en/docs/features/widgets", + ]}, + {text: "for Developers", children: [ + "/en/docs/api", + "/en/docs/api/streaming", + "/en/docs/api/endpoints.html", + "/en/docs/features/webhook", + ]}, + {text: "for Admins", children: [ + "/en/docs/install", + "/en/docs/admin/emoji", + "/en/docs/admin/cdn", + "/en/docs/admin/nginx", + "/en/docs/admin/push-docker-hub", + "/en/docs/admin/troubleshooting", + "/en/docs/tips/disable-timelines", + "/en/docs/admin/default-reaction", + "/en/docs/features/silence", + ]}, + ]}, + {text: "Links", children: [ + {text: "Official Discord", link: "https://discord.gg/Wp8gVStHW3"}, + {text: "Donations (Patreon)", link: "https://www.patreon.com/syuilo"}, + {text: "Translation (Crowdin)", link: "https://crowdin.com/project/misskey"}, + {text: "่—.moe (Mascot art site)", link: "https://xn--931a.moe"}, + {text: "Accounts", children: [{ text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, + {text: "Repository", children: [ + {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, + {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, + {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, + {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, + ]}, + ]}, ], }, "/ko/": { @@ -342,113 +217,57 @@ export default defineUserConfig({ relatedPagesText: "๊ด€๋ จ ํŽ˜์ด์ง€", readThisArticle: "์ด ๋ฌธ์„œ ์ฝ๊ธฐ", navbar: [ - { - text: "๋ธ”๋กœ๊ทธ", - link: "/ko/blog/", - }, - { - text: "๋‘˜๋Ÿฌ๋ณด๊ธฐ", - children: ["/ko/instances", "/ko/plugins/", "/ko/appendix/assets"], - }, - { - text: "์„ค๋ช…์„œ", - children: [ - "/ko/docs/misskey", - "/ko/docs/releases", - "/ko/docs/misskey-hub", - "/ko/docs/faq", - "/ko/docs/glossary", - "/ko/docs/troubleshooting", - { - text: "๊ธฐ๋Šฅ", - children: [ - "/ko/docs/features/note", - "/ko/docs/features/reaction", - "/ko/docs/features/mfm", - "/ko/docs/features/custom-emoji", - "/ko/docs/features/drive", - "/ko/docs/features/online-status", - "/ko/docs/features/share-form", - "/ko/docs/features/thread-mute", - "/ko/docs/features/word-mute", - "/ko/docs/features/mute-and-block", - "/ko/docs/features/plugin", - ], - }, - { - text: "๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•˜์—ฌ", - children: [ - "/ko/docs/api", - "/ko/docs/api/streaming", - "/ko/docs/api/entity", - "/ko/docs/api/endpoints.html", - ], - }, - { - text: "์ธ์Šคํ„ด์Šค ์šด์˜์ž๋ฅผ ์œ„ํ•˜์—ฌ", - children: [ - "/ko/docs/install", - "/ko/docs/admin/cdn", - "/ko/docs/admin/nginx", - "/ko/docs/admin/push-docker-hub", - "/ko/docs/admin/troubleshooting", - "/ko/docs/tips/disable-timelines", - "/ko/docs/admin/default-reaction", - ], - }, - ], - }, - { - text: "๋ฐ”๊นฅ ๋งํฌ", - children: [ - { - text: "๊ณต์‹ Discord", - link: "https://discord.gg/Wp8gVStHW3", - }, - { - text: "๊ธฐ๋ถ€ํ•˜๊ธฐ (Patreon)", - link: "https://www.patreon.com/syuilo", - }, - { - text: "๋ฒˆ์—ญํ•˜๊ธฐ (Crowdin)", - link: "https://crowdin.com/project/misskey", - }, - { - text: "่—.moe (๋งˆ์Šค์ฝ”ํŠธ ์ •๋ณด)", - link: "https://xn--931a.moe", - }, - { - text: "๊ณ„์ •", - children: [ - { - text: "@repo@p1.a9z.dev", - link: "https://p1.a9z.dev/@repo", - }, - ], - }, - { - text: "๋ฆฌํฌ์ง€ํ† ๋ฆฌ", - children: [ - { - text: "misskey", - link: "https://github.com/misskey-dev/misskey", - }, - { - text: "misskey.js", - link: "https://github.com/misskey-dev/misskey.js", - }, - { - text: "mfm.js", - link: "https://github.com/misskey-dev/mfm.js", - }, - { - text: "misskey-hub", - link: "https://github.com/misskey-dev/misskey-hub", - }, - ], - }, - ], - }, + {text: "๋ธ”๋กœ๊ทธ", link: "/ko/blog/"}, + {text: "๋‘˜๋Ÿฌ๋ณด๊ธฐ", children: ["/ko/instances", "/ko/plugins/", "/ko/appendix/assets"]}, + {text: "์„ค๋ช…์„œ", children: [ + "/ko/docs/misskey", + "/ko/docs/releases", + "/ko/docs/misskey-hub", + "/ko/docs/faq", + "/ko/docs/glossary", + "/ko/docs/troubleshooting", + {text: "๊ธฐ๋Šฅ", children: [ + "/ko/docs/features/note", + "/ko/docs/features/reaction", + "/ko/docs/features/mfm", + "/ko/docs/features/custom-emoji", + "/ko/docs/features/drive", + "/ko/docs/features/online-status", + "/ko/docs/features/share-form", + "/ko/docs/features/thread-mute", + "/ko/docs/features/word-mute", + "/ko/docs/features/mute-and-block", + "/ko/docs/features/plugin", + ]}, + {text: "๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•˜์—ฌ", children: [ + "/ko/docs/api", + "/ko/docs/api/streaming", + "/ko/docs/api/entity", + "/ko/docs/api/endpoints.html", + ]}, + {text: "์ธ์Šคํ„ด์Šค ์šด์˜์ž๋ฅผ ์œ„ํ•˜์—ฌ", children: [ + "/ko/docs/install", + "/ko/docs/admin/cdn", + "/ko/docs/admin/nginx", + "/ko/docs/admin/push-docker-hub", + "/ko/docs/admin/troubleshooting", + "/ko/docs/tips/disable-timelines", + "/ko/docs/admin/default-reaction", + ]}, + ]}, + {text: "๋ฐ”๊นฅ ๋งํฌ", children: [ + {text: "๊ณต์‹ Discord", link: "https://discord.gg/Wp8gVStHW3"}, + {text: "๊ธฐ๋ถ€ํ•˜๊ธฐ (Patreon)", link: "https://www.patreon.com/syuilo"}, + {text: "๋ฒˆ์—ญํ•˜๊ธฐ (Crowdin)", link: "https://crowdin.com/project/misskey"}, + {text: "่—.moe (๋งˆ์Šค์ฝ”ํŠธ ์ •๋ณด)", link: "https://xn--931a.moe",}, + {text: "๊ณ„์ •", children: [{text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, + {text: "๋ฆฌํฌ์ง€ํ† ๋ฆฌ", children: [ + {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, + {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, + {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, + {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, + ]}, + ]}, ], }, "/it/": { @@ -474,123 +293,70 @@ export default defineUserConfig({ toggleColorMode: "cambia i colori", toggleSidebar: "menu laterale di navigazione", navbar: [ + {text: "Blog Giapponese", link: "/blog"}, + {text: "Partecipa", children: ["/it/instances", "/it/plugins", "/it/appendix/assets"]}, + {text: "Documentazione", children: [ + "/it/docs/misskey", + "/it/docs/releases", + "/it/docs/misskey-hub", + "/it/docs/faq", + "/it/docs/glossary", + "/it/docs/troubleshooting", + {text: "Caratteristiche", children: [ + "/it/docs/features/note", + "/it/docs/features/reaction", + "/it/docs/features/timeline", + "/it/docs/features/mfm", + "/it/docs/features/custom-emoji", + "/it/docs/features/drive", + "/it/docs/features/deck", + "/it/docs/features/charts", + "/it/docs/features/online-status", + "/it/docs/features/share-form", + "/it/docs/features/ads", + "/it/docs/features/thread-mute", + "/it/docs/features/word-mute", + "/it/docs/features/mute-and-block", + "/it/docs/features/plugin", + "/it/docs/features/antenna", + "/it/docs/features/clip", + "/it/docs/features/favorite", + "/it/docs/features/follow", + "/it/docs/features/pages", + "/it/docs/features/theme", + "/it/docs/features/thread-mute", + "/it/docs/features/widgets", + ]}, + {text: "Per gli sviluppatori", children: [ + "/it/docs/api", + "/it/docs/api/streaming", + "/it/docs/api/endpoints.html", + ]}, + {text: "Per gli amministratori", children: [ + "/it/docs/install", + "/it/docs/admin/emoji", + "/it/docs/admin/cdn", + "/it/docs/admin/nginx", + "/it/docs/admin/push-docker-hub", + "/it/docs/admin/troubleshooting", + "/it/docs/tips/disable-timelines", + "/it/docs/admin/default-reaction", + ]}, + ]}, { - text: "Blog Giapponese", - link: "/blog", - }, - { - text: "Partecipa", - children: ["/it/instances", "/it/plugins", "/it/appendix/assets"], - }, - { - text: "Documentazione", + text: "Collegamenti", children: [ - "/it/docs/misskey", - "/it/docs/releases", - "/it/docs/misskey-hub", - "/it/docs/faq", - "/it/docs/glossary", - "/it/docs/troubleshooting", - { - text: "Caratteristiche", - children: [ - "/it/docs/features/note", - "/it/docs/features/reaction", - "/it/docs/features/timeline", - "/it/docs/features/mfm", - "/it/docs/features/custom-emoji", - "/it/docs/features/drive", - "/it/docs/features/deck", - "/it/docs/features/charts", - "/it/docs/features/online-status", - "/it/docs/features/share-form", - "/it/docs/features/ads", - "/it/docs/features/thread-mute", - "/it/docs/features/word-mute", - "/it/docs/features/mute-and-block", - "/it/docs/features/plugin", - "/it/docs/features/antenna", - "/it/docs/features/clip", - "/it/docs/features/favorite", - "/it/docs/features/follow", - "/it/docs/features/pages", - "/it/docs/features/theme", - "/it/docs/features/thread-mute", - "/it/docs/features/widgets", - ], - }, - { - text: "Per gli sviluppatori", - children: [ - "/it/docs/api", - "/it/docs/api/streaming", - "/it/docs/api/endpoints.html", - ], - }, - { - text: "Per gli amministratori", - children: [ - "/it/docs/install", - "/it/docs/admin/emoji", - "/it/docs/admin/cdn", - "/it/docs/admin/nginx", - "/it/docs/admin/push-docker-hub", - "/it/docs/admin/troubleshooting", - "/it/docs/tips/disable-timelines", - "/it/docs/admin/default-reaction", - ], - }, - ], - }, - { - text: "Collegamenti", - children: [ - { - text: "Discord ufficiale", - link: "https://discord.gg/Wp8gVStHW3", - }, - { - text: "Donazioni (Patreon)", - link: "https://www.patreon.com/syuilo", - }, - { - text: "Traduzioni (Crowdin)", - link: "https://crowdin.com/project/misskey", - }, - { - text: "่—.moe (la mascotte: Ai)", - link: "https://xn--931a.moe", - }, - { - text: "Profili", - children: [ - { - text: "@repo@p1.a9z.dev", - link: "https://p1.a9z.dev/@repo", - }, - ], - }, - { - text: "Il codice sorgente", - children: [ - { - text: "misskey (la piattaforma)", - link: "https://github.com/misskey-dev/misskey", - }, - { - text: "misskey.js (la SDK in NodeJS)", - link: "https://github.com/misskey-dev/misskey.js", - }, - { - text: "mfm.js (il parser MFM)", - link: "https://github.com/misskey-dev/mfm.js", - }, - { - text: "misskey-hub (il sito)", - link: "https://github.com/misskey-dev/misskey-hub", - }, - ], - }, + {text: "Discord ufficiale", link: "https://discord.gg/Wp8gVStHW3"}, + {text: "Donazioni (Patreon)", link: "https://www.patreon.com/syuilo"}, + {text: "Traduzioni (Crowdin)", link: "https://crowdin.com/project/misskey"}, + {text: "่—.moe (la mascotte: Ai)", link: "https://xn--931a.moe"}, + {text: "Profili", children: [{text: "@repo@p1.a9z.dev",link: "https://p1.a9z.dev/@repo"}]}, + {text: "Il codice sorgente", children: [ + {text: "misskey (la piattaforma)", link: "https://github.com/misskey-dev/misskey"}, + {text: "misskey.js (la SDK in NodeJS)", link: "https://github.com/misskey-dev/misskey.js"}, + {text: "mfm.js (il parser MFM)", link: "https://github.com/misskey-dev/mfm.js"}, + {text: "misskey-hub (il sito)", link: "https://github.com/misskey-dev/misskey-hub"}, + ]}, ], // Fine: menu links }, ], // Fine: navbar italiana @@ -602,29 +368,21 @@ export default defineUserConfig({ plugins: [ ["@vuepress/plugin-search"], - registerComponentsPlugin({ - componentsDir: path.resolve(__dirname, "./components/"), - }), - containerPlugin({ - type: "tip", - before: (info: string, type): string => - `
${ + registerComponentsPlugin({componentsDir: path.resolve(__dirname, "./components/")}), + containerPlugin({type: "tip", + before: (info: string, type): string => `
${ info ? `

${info}

` : "" }\n`, after: (): string => "
\n", }), - containerPlugin({ - type: "warning", - before: (info: string, type): string => - `
${ + containerPlugin({type: "warning", + before: (info: string, type): string => `
${ info ? `

${info}

` : "" }\n`, after: (): string => "
\n", }), - containerPlugin({ - type: "danger", - before: (info: string, type): string => - `
${ + containerPlugin({type: "danger", + before: (info: string, type): string => `
${ info ? `

${info}

` : "" }\n`, after: (): string => "
\n", From db86c5ee61a06ac68ecd467b8b396552e02f7637 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 21 Jan 2023 18:57:43 +0900 Subject: [PATCH 113/296] Update releases.md --- src/docs/releases.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 91f8b9fb0f..213a435228 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,24 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.1.0 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/21 + +### Improvements +- ๅฎŸ็ธพๆฉŸ่ƒฝ +- Playใฎใƒ—ใƒชใ‚ปใƒƒใƒˆใ‚’่ฟฝๅŠ  +- Playใฎscriptใฎๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใ‚’็ทฉๅ’Œ +- AiScript GUIใฎๅผทๅŒ– +- ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณไธ€่ฆง่ฉณ็ดฐใƒ€ใ‚คใ‚ขใƒญใ‚ฐใ‚’่กจ็คบใงใใ‚‹ใ‚ˆใ†ใซ +- ๅญ˜ๅœจใ—ใชใ„ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใ‚’ใƒ†ใ‚ญใ‚นใƒˆใง่กจ็คบใ™ใ‚‹ใ‚ˆใ†ใซ +- Alt text in image viewer +- ใ‚ธใƒงใƒ–ใ‚ญใƒฅใƒผใฎใƒ—ใƒญใ‚ปใ‚นใจWebใ‚ตใƒผใƒใƒผใฎใƒ—ใƒญใ‚ปใ‚นใ‚’ๅˆ†้›ข + +### Bugfixes +- playใ‚’ๅ‰Š้™คใ™ใ‚‹ๆ‰‹ๆฎตใŒใชใ‹ใฃใŸใฎใ‚’ไฟฎๆญฃ +- The โ€ฆ button on notes does nothing when not logged in +- twitterใจ้€ฃๆบใ™ใ‚‹ใจใใซ autwh is not a function ใซใชใ‚‹ใฎใ‚’ไฟฎๆญฃ + ## 13.0.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/16 From f73ee2a83f57bb9790523f7a9e7a2522c802febc Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 21 Jan 2023 19:00:38 +0900 Subject: [PATCH 114/296] Update faq.md --- src/docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/faq.md b/src/docs/faq.md index 527a7ba236..7bffd1c3ba 100644 --- a/src/docs/faq.md +++ b/src/docs/faq.md @@ -50,7 +50,7 @@ Misskey APIใ‚’ๅˆฉ็”จใ—ใŸBotใฎ้–‹็™บใŒๅฏ่ƒฝใงใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰]( ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ้‹ๅ–ถใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใŒใ‚ใ‚Œใฐใ€**ใฏใ„**ใ€‚็„กใ‘ใ‚Œใฐใ€**ใ„ใ„ใˆ**ใ€‚ ### ้•ทใ„็ญ”ใˆ -ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใงใชใ‘ใ‚Œใฐใ€ๅฑŠๅ‡บใฏๅฟ…่ฆ็„กใ„ใจ่€ƒใˆใ‚‰ใ‚Œใพใ™ใ€‚ใŸใ ใ—ใ€็›ดๆŽฅ็š„ใชๅพดๅŽใงใชใใฆใ‚‚ใ€ใŸใจใˆใฐใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใซๅบƒๅ‘Šใ‚’ๆŽฒ่ผ‰ใ—ใ€ใใ‚Œใซใ‚ˆใฃใฆๅŽๅ…ฅใŒใ‚ใ‚‹ๅ ดๅˆใฏใ€ŒๅฎŸ่ณช็š„ใซใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ไธŠใ’ใฆใ„ใ‚‹ใ€ใจใฟใชใ•ใ‚Œใ‚‹ใŸใ‚ใ€ๅฑŠๅ‡บใŒๅฟ…่ฆใซใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚
+ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ใƒ“ใ‚ธใƒใ‚น็›ฎ็š„ใงใชใ‘ใ‚ŒใฐๅฑŠๅ‡บใฏๅฟ…่ฆใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใพใŸใ€ๅฏ„ไป˜ใชใฉใงๅŽ็›ŠใŒใ‚ใ‚‹ๅ ดๅˆใงใ‚‚ๅฑŠๅ‡บใŒๅฟ…่ฆใชไบ‹ๆฅญ่€…ใซใฏ่ฉฒๅฝ“ใ—ใชใ„ใจใ„ใ†็ทๅ‹™็œใ‹ใ‚‰ใฎๅ›ž็ญ”ใŒใ‚ใ‚Šใพใ™ใ€‚
่ฉณใ—ใใฏ็ทๅ‹™็œใฎ[้›ปๆฐ—้€šไฟกไบ‹ๆฅญๅ‚ๅ…ฅใƒžใƒ‹ใƒฅใ‚ขใƒซ](https://www.soumu.go.jp/main_content/000477428.pdf)ใชใฉใฎ่ณ‡ๆ–™ใ‚’ใ”่ฆงใ„ใŸใ ใใ‹ใ€็ทๅ‹™็œใพใงใŠๅ•ใ„ๅˆใ‚ใ›ใใ ใ•ใ„ใ€‚ ## ๅ็งฐใซใ€ŒMisskeyใ€ใ‚’ๅซใ‚€ใ‚ตใƒผใƒ“ใ‚นใ‚’ๅ…ฌ้–‹ใ—ใฆใ‚‚่‰ฏใ„ใงใ™ใ‹๏ผŸ From 537f11028be507d3d6937e1334e028942e3eea50 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 21 Jan 2023 19:05:28 +0900 Subject: [PATCH 115/296] Update faq.md --- src/docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/faq.md b/src/docs/faq.md index 7bffd1c3ba..596a69a252 100644 --- a/src/docs/faq.md +++ b/src/docs/faq.md @@ -47,7 +47,7 @@ Misskey APIใ‚’ๅˆฉ็”จใ—ใŸBotใฎ้–‹็™บใŒๅฏ่ƒฝใงใ™ใ€‚่ฉณใ—ใใฏ[ใ“ใกใ‚‰]( ## ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใ‚’ไฝœๆˆใ—ใพใ—ใŸใŒใ€้›ปๆฐ—้€šไฟกไบ‹ๆฅญใฎๅฑŠๅ‡บใฏๅฟ…่ฆใงใ™ใ‹๏ผŸ ### ็Ÿญใ„็ญ”ใˆ -ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎ้‹ๅ–ถใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚‹็›ฎ็š„ใŒใ‚ใ‚Œใฐใ€**ใฏใ„**ใ€‚็„กใ‘ใ‚Œใฐใ€**ใ„ใ„ใˆ**ใ€‚ +ใƒ“ใ‚ธใƒใ‚น็›ฎ็š„ใง้‹ๅ–ถใ™ใ‚‹ใฎใงใ‚ใ‚Œใฐใ€**ใฏใ„**ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐใ€**ใ„ใ„ใˆ**ใ€‚ ### ้•ทใ„็ญ”ใˆ ใ€Œไบ‹ๆฅญ่€…ใ€ใฎๅฎš็พฉใฏใ€[็ทๅ‹™็œใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ](https://www.soumu.go.jp/main_content/000477428.pdf)ใซใ‚ˆใ‚‹ใจใ€Œใ‚ตใƒผใƒ“ใ‚นใฎๆไพ›ใซใ‚ˆใ‚Šใ€ใใฎๅฏพไพกใจใ—ใฆๆ–™โพฆใ‚’ๅพดๅŽใ™ใ‚‹ใ“ใจใซใ‚ˆใ‚ŠๅŽ็›Šใ‚’ๅพ—ใ‚ˆใ†ใจใ™ใ‚‹่€…ใ€ใจใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใ—ใŸใŒใฃใฆใ€ใƒ“ใ‚ธใƒใ‚น็›ฎ็š„ใงใชใ‘ใ‚ŒใฐๅฑŠๅ‡บใฏๅฟ…่ฆใ‚ใ‚Šใพใ›ใ‚“ใ€‚ใพใŸใ€ๅฏ„ไป˜ใชใฉใงๅŽ็›ŠใŒใ‚ใ‚‹ๅ ดๅˆใงใ‚‚ๅฑŠๅ‡บใŒๅฟ…่ฆใชไบ‹ๆฅญ่€…ใซใฏ่ฉฒๅฝ“ใ—ใชใ„ใจใ„ใ†็ทๅ‹™็œใ‹ใ‚‰ใฎๅ›ž็ญ”ใŒใ‚ใ‚Šใพใ™ใ€‚
From 8ee99d062e18021029565b5566c2aa9b6a00a4a0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 22 Jan 2023 04:29:35 +0900 Subject: [PATCH 116/296] Update releases.md --- src/docs/releases.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 213a435228..21756af585 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,16 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.1.1 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/22 + +### Improvements +- ใƒญใƒผใ‚ซใƒซใฎใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใ‚’่กจ็คบใ™ใ‚‹้š›ใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ +- Client: ็žฌ้–“็š„ใซๅคง้‡ใฎๅฎŸ็ธพใ‚’่งฃ้™คใ—ใŸ้š›ใฎๆŒ™ๅ‹•ใ‚’ๆ”นๅ–„ + +### Bugfixes +- Client: ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ™‚ใซใƒญใƒผใ‚ซใƒชใ‚ผใƒผใ‚ทใƒงใƒณใƒ‡ใƒผใ‚ฟใŒๆ›ดๆ–ฐใ•ใ‚Œใชใ„ใ“ใจใŒใ‚ใ‚‹ใฎใ‚’ไฟฎๆญฃ + ## 13.1.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/21 From c07ef1d471985f4223cafc5aa7ed64637b5e5df8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 22 Jan 2023 17:06:53 +0900 Subject: [PATCH 117/296] Update releases.md --- src/docs/releases.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 21756af585..4b86e29e7a 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -50,6 +50,7 @@ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ - Node.js 18.x or later is required - PostgreSQL 15.x is required - Misskey not using 15 specific features at 13.0.0, but may do so in the future. + - Docker็’ฐๅขƒใงPostgreSQLใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ‚’่กŒใ†้š›ใฎใ‚ฌใ‚คใƒ‰ใฏใ“ใกใ‚‰: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchใฎใ‚ตใƒใƒผใƒˆใŒๅ‰Š้™คใ•ใ‚Œใพใ—ใŸ - ไปฃใ‚ใ‚ŠใซไปŠๅพŒไปปๆ„ใฎๆคœ็ดขใƒ—ใƒญใƒใ‚คใƒ€ใ‚’่จญๅฎšใงใใ‚‹ไป•็ต„ใฟใ‚’ๆง‹ๆƒณใ—ใฆใ„ใพใ™ใ€‚ใใฎไป•็ต„ใฟใ‚’ไฝฟใˆใฐไปŠใพใง้€šใ‚ŠElasticsearchใ‚‚ๅˆฉ็”จใงใใพใ™ - Yarnใ‹ใ‚‰pnpmใซ็งป่กŒใ•ใ‚Œใพใ—ใŸ From 9b71c59c59a870e9c3cf9af78d731cb920ec7b8b Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 23 Jan 2023 20:16:35 +0900 Subject: [PATCH 118/296] Update releases.md --- src/docs/releases.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 4b86e29e7a..031b0e2c4d 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,18 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.2.0 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/23 + +### Improvements +- onlyServer / onlyQueue ใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ๅพฉๆดป +- ไป–ไบบใฎๅฎŸ็ธพ้–ฒ่ฆงๆ™‚ใฏ็ฒๅพ—ๆกไปถใ‚’่กจ็คบใ—ใชใ„ใ‚ˆใ†ใซ +- ใ‚ขใƒ‹ใƒกใƒผใ‚ทใƒงใƒณๆธ›ใ‚‰ใ™ใ‚ชใƒ—ใ‚ทใƒงใƒณๆœ‰ๅŠนๆ™‚ใฏใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณใฎใ‚ขใƒ‹ใƒกใƒผใ‚ทใƒงใƒณใ‚’็„กๅŠนใซ +- ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ไธ€่ฆงใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ + +### Bugfixes +- Aiscript: button is not defined + ## 13.1.1 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/22 From 3ebcf6d1e04de54e1b0a7ca664a1264f18e55a89 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 25 Jan 2023 15:17:26 +0900 Subject: [PATCH 119/296] Update releases.md --- src/docs/releases.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 031b0e2c4d..0754036e45 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,23 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.2.2 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/25 + +### Improvements +- ใ‚ตใƒผใƒใƒผใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ + +### Bugfixes +- ใ‚ตใ‚คใƒณใ‚คใƒณๆ™‚ใซ่ชคใฃใŸใƒฌใƒผใƒˆใƒชใƒŸใƒƒใƒˆใŒใ‹ใ‹ใ‚‹ใ“ใจใŒใ‚ใ‚‹ๅ•้กŒใ‚’ไฟฎๆญฃ +- MFMใฎpositionใ€rotateใ€scaleใงๅฐๆ•ฐใŒไฝฟใˆใชใ„ๅ•้กŒใ‚’ไฟฎๆญฃ + +## 13.2.1 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/24 + +### Improvements +- ใƒ‡ใ‚ถใ‚คใƒณใฎ่ชฟๆ•ด +- ใ‚ตใƒผใƒใƒผใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ + ## 13.2.0 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/23 From 971540e6955fc6e8f19f8b701513f884b7cddaac Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 27 Jan 2023 11:45:10 +0900 Subject: [PATCH 120/296] Update releases.md --- src/docs/releases.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 0754036e45..77802c3dcf 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,30 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.2.4 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/27 + +### Improvements +- ใƒชใƒขใƒผใƒˆใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—่กจ็คบๆ™‚ใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ +- Default to `animation: false` when prefers-reduced-motion is set +- ใƒชใ‚ขใ‚ฏใ‚ทใƒงใƒณๅฑฅๆญดใŒๅ…ฌ้–‹ใชใ‚‰ใ€ใƒญใ‚ฐใ‚คใƒณใ—ใฆใ„ใชใใฆใ‚‚่กจ็คบใงใใ‚‹ใ‚ˆใ†ใซ +- tweak blur setting +- tweak custom emoji cache + +### Bugfixes +- fix aggregation of retention +- ใƒ€ใƒƒใ‚ทใƒฅใƒœใƒผใƒ‰ใงใ‚ชใƒณใƒฉใ‚คใƒณใƒฆใƒผใ‚ถใƒผๆ•ฐใŒ่กจ็คบใ•ใ‚Œใชใ„ๅ•้กŒใ‚’ไฟฎๆญฃ +- ใƒ•ใ‚ฉใƒญใƒผ็”ณ่ซ‹ใƒปใƒ•ใ‚ฉใƒญใƒผใฎใƒœใ‚ฟใƒณใŒใ€้€š็Ÿฅใ‹ใ‚‰ๆถˆใˆใฆใ„ใ‚‹ๅ•้กŒใ‚’ไฟฎๆญฃ + +## 13.2.3 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/26 + +### Improvements +- ใ‚ซใ‚นใ‚ฟใƒ ็ตตๆ–‡ๅญ—ใฎๆ›ดๆ–ฐใ‚’ใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ใงๅๆ˜ ใ™ใ‚‹ใ‚ˆใ†ใซ + +### Bugfixes +- turnstile-failed: missing-input-secret + ## 13.2.2 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/25 From e601fcf38ab8b75c0f9c599de59ade4abdd829ae Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 28 Jan 2023 11:42:43 +0000 Subject: [PATCH 121/296] Update installation with docker --- src/docs/install/docker.md | 7 ++++++- src/en/docs/install/docker.md | 23 ++++++++++++----------- src/it/docs/install/docker.md | 23 ++++++++++++----------- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/docs/install/docker.md b/src/docs/install/docker.md index b13b6dcdee..488b82d653 100644 --- a/src/docs/install/docker.md +++ b/src/docs/install/docker.md @@ -7,8 +7,12 @@ Dockerใ‚’ไฝฟใฃใŸMisskeyๆง‹็ฏ‰ ใ“ใฎใ‚ฌใ‚คใƒ‰ใฏDockerใ‚’ไฝฟใฃใŸMisskeyใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ–นๆณ•ใ‚’่ชฌๆ˜Žใ—ใพใ™ใ€‚ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + ::: tip ๅ‰ๆๆกไปถ -- dockerใŠใ‚ˆใณdocker-composeใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ€‚ +- DockerใŠใ‚ˆใณDocker ComposeใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ€‚ ::: ใƒชใƒใ‚ธใƒˆใƒชใฎๅ–ๅพ— @@ -26,6 +30,7 @@ git checkout master ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env +cp ./docker-compose.yml.example ./docker-compose.yml ``` `default.yml`ใจ`docker.env`ใ‚’ใƒ•ใ‚กใ‚คใƒซๅ†…ใฎ่ชฌๆ˜Žใซๅพ“ใฃใฆ็ทจ้›†ใ—ใฆใใ ใ•ใ„ใ€‚ diff --git a/src/en/docs/install/docker.md b/src/en/docs/install/docker.md index eb5abaa61a..1f569522a8 100644 --- a/src/en/docs/install/docker.md +++ b/src/en/docs/install/docker.md @@ -3,8 +3,12 @@ Create Misskey instance with Docker This guide describes how to install and setup Misskey with Docker. +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ::: tip Requirement -- docker and docker-compose installed +- docker and dockercompose installed ::: Get the repository @@ -22,14 +26,11 @@ Copy example configuration files with following: ```sh cp .config/example.yml .config/default.yml cp .config/docker_example.env .config/docker.env +cp ./docker-compose.yml.example ./docker-compose.yml ``` Edit `default.yml` and `docker.env` according to the instructions in the files. -::: warning -In the `default.yml`, the hosts that set with `localhost` from Postgresql/Redis should be set to `db`/`redis` respectively. -::: - Edit `docker-compose.yml` if necessary. (e.g. if you want to change the port). Build and initialize @@ -38,8 +39,8 @@ The following command will build Misskey and initialize the database. This will take some time. ``` shell -sudo docker-compose build -sudo docker-compose run --rm web pnpm run init +sudo docker compose build +sudo docker compose run --rm web pnpm run init ``` Launch @@ -48,7 +49,7 @@ Well done! You can start Misskey with the following command. ```sh -sudo docker-compose up -d +sudo docker compose up -d ``` GLHFโœจ @@ -65,8 +66,8 @@ git checkout master git pull git submodule update --init git stash pop -sudo docker-compose build -sudo docker-compose stop && sudo docker-compose up -d +sudo docker compose build +sudo docker compose stop && sudo docker compose up -d ``` It may take some time depending on the contents of the update and the size of the database. @@ -74,5 +75,5 @@ It may take some time depending on the contents of the update and the size of th How to execute CLI command ---------------------------------------------------------------- ```sh -sudo docker-compose run --rm web node packages/backend/built/tools/foo bar +sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` diff --git a/src/it/docs/install/docker.md b/src/it/docs/install/docker.md index 7025c69da6..f2e349375c 100644 --- a/src/it/docs/install/docker.md +++ b/src/it/docs/install/docker.md @@ -6,8 +6,12 @@ description: "Questa guida spiega come installare Misskey dentro Docker" Questa guida spiega come installare Misskey dentro Docker +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ::: tip -Requisiti iniziali: installare **Docker** e **docker-compose** +Requisiti iniziali: installare **Docker** e **Docker Compose** ::: ## Ottieni il codice sorgente @@ -25,14 +29,11 @@ Copia la configurazione d'esempio, su quella di default. ```sh cp .config/example.yml .config/default.yml cp .config/docker_example.env .config/docker.env +cp ./docker-compose.yml.example ./docker-compose.yml ``` Modificare sia `default.yml` che `docker.env` come indicato nei file. -::: warning -Il file `default.yml` imposta PostgreSQL e Redis come container `db` e `redis` -::: - Modificare `docker-compose.yml` secondo le necessitร  (ad esempio se intendi cambiare porta) ## Costruzione e inizializzazione @@ -40,8 +41,8 @@ Modificare `docker-compose.yml` secondo le necessitร  (ad esempio se intendi cam Costruisci i container necessari e popola il database. ```shell -sudo docker-compose build -sudo docker-compose run --rm web pnpm run init +sudo docker compose build +sudo docker compose run --rm web pnpm run init ``` ## Avvio @@ -49,7 +50,7 @@ sudo docker-compose run --rm web pnpm run init Questo comando avvia i container e li imposta come servizio al riavvio. ```sh -sudo docker-compose up -d +sudo docker compose up -d ``` ## Aggiornare Misskey in Docker @@ -64,8 +65,8 @@ git checkout master git pull git submodule update --init git stash pop -sudo docker-compose build -sudo docker-compose stop && sudo docker-compose up -d +sudo docker compose build +sudo docker compose stop && sudo docker compose up -d ``` L'attivitร  potrebbe richiedere del tempo, a seconda della grandezza del database e del contenuto dell'aggiornamento. @@ -75,5 +76,5 @@ L'attivitร  potrebbe richiedere del tempo, a seconda della grandezza del databas Per eseguire uno script nel container `web` ```sh -sudo docker-compose run --rm web node packages/backend/built/tools/foo bar +sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` From 30f2bb33d2686974628a966158c26fe24140efa4 Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 28 Jan 2023 11:52:11 +0000 Subject: [PATCH 122/296] =?UTF-8?q?=E4=B8=80=E5=BA=A6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=82=92=E5=A7=8B=E3=82=81=E3=81=9F=E3=82=A4=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E3=82=BF=E3=83=B3=E3=82=B9=E3=81=AE=E3=83=89=E3=83=A1=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=83=BB=E3=83=9B=E3=82=B9=E3=83=88=E5=90=8D=E3=81=AF?= =?UTF-8?q?=E3=80=81=E6=B1=BA=E3=81=97=E3=81=A6=E5=A4=89=E6=9B=B4=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=A7=E3=81=8F=E3=81=A0=E3=81=95=E3=81=84?= =?UTF-8?q?=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docs/install.md | 4 ++++ src/docs/install/bash.md | 4 ++++ src/docs/install/manual.md | 4 ++++ src/docs/install/ubuntu-manual.md | 21 ++++++++++----------- src/en/docs/install.md | 6 +++++- src/en/docs/install/bash.md | 4 ++++ src/en/docs/install/kubernetes.md | 3 +++ src/en/docs/install/manual.md | 4 ++++ src/it/docs/install.md | 4 ++++ src/it/docs/install/manual.md | 4 ++++ src/it/docs/install/ubuntu-manual.md | 4 ++++ 11 files changed, 50 insertions(+), 12 deletions(-) diff --git a/src/docs/install.md b/src/docs/install.md index 18b42ccfae..6b9afb2dcc 100644 --- a/src/docs/install.md +++ b/src/docs/install.md @@ -5,6 +5,10 @@ description: 'Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎไฝœๆˆๆ–นๆณ•ใซใคใ„ใฆใฎๆกˆๅ†…ใง # Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎไฝœๆˆ Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๆง‹็ฏ‰ใซ้–ขๅฟƒใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎไฝœๆˆๆ–นๆณ•ใฏใ„ใใคใ‹ใ‚ใ‚‹ใฎใงใ€ไธ‹่จ˜ใ‹ใ‚‰้ธใ‚“ใงใ‚ฌใ‚คใƒ‰ใ‚’ใŠ่ชญใฟใใ ใ•ใ„ใ€‚ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + ## Dockerใ‚’ไฝฟใฃใŸใ‚คใƒณใ‚นใƒˆใƒผใƒซ(ใŠใ™ใ™ใ‚) [ใ“ใกใ‚‰](./install/docker.html) diff --git a/src/docs/install/bash.md b/src/docs/install/bash.md index 942563a419..bce4af39d2 100644 --- a/src/docs/install/bash.md +++ b/src/docs/install/bash.md @@ -17,6 +17,10 @@ Misskeyใ‚’็ฐกๅ˜ใซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใŸใ‚ใฎใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒ 2. UbuntuใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚ŒใŸใ‚ตใƒผใƒใƒผ 3. Cloudflareใ‚ขใ‚ซใ‚ฆใƒณใƒˆ๏ผˆๆŽจๅฅจ๏ผ‰ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + Let's Encryptใฎ่ช่จผใ‚’่ฉฆ่กŒใงใใ‚‹ๅ›žๆ•ฐใŒๅฐ‘ใชใ„ใฎใงใ€ใ‚ตใƒผใƒใƒผใฎใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚„DNSใฎ่จญๅฎšใ‚’ๅๅˆ†็ขบ่ชใ—ใฆใ‹ใ‚‰ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’้–‹ๅง‹ใ—ใฆใใ ใ•ใ„ใ€‚ ## Cloudflareใฎ่จญๅฎš diff --git a/src/docs/install/manual.md b/src/docs/install/manual.md index 40b67b1cb1..c810553430 100644 --- a/src/docs/install/manual.md +++ b/src/docs/install/manual.md @@ -7,6 +7,10 @@ Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ ใ“ใฎใ‚ฌใ‚คใƒ‰ใงใฏMisskeyใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒปใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ–นๆณ•ใซใคใ„ใฆ่งฃ่ชฌใ—ใพใ™ใ€‚ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + ::: tip ๅ‰ๆๆกไปถ ไปฅไธ‹ใฎใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒป่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจ - **[Node.js](https://nodejs.org/en/)** (18.13.xไปฅไธŠ) diff --git a/src/docs/install/ubuntu-manual.md b/src/docs/install/ubuntu-manual.md index 5c534c2330..3d36154380 100644 --- a/src/docs/install/ubuntu-manual.md +++ b/src/docs/install/ubuntu-manual.md @@ -7,11 +7,8 @@ ## ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎใŠ็Ÿฅใ‚‰ใ› -ใ‚ณใƒ”ใƒšใฐใ‹ใ‚Šใงใคใพใ‚‰ใชใ„๏ผๆ™‚้–“ใŒใ‹ใ‹ใ‚‹๏ผใจใซใ‹ใ้ขๅ€’๏ผ -โ€ฆโ€ฆใ‚ใ‚Œใ€ใ‚ณใƒ”ใƒšใ ใ‘ใงใงใใ‚‹ใชใ‚‰ใ€ๅฎŒๅ…จ่‡ชๅ‹•ๅŒ–ใงใใ‚‹ใฎใงใฏ๏ผŸ - -ใจใ„ใ†ใ‚ใ‘ใงใ€**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใปใผๅ…จ้ƒจใ‚„ใฃใฆใใ‚Œใ‚‹ใ‚„ใคใ‚’ไฝœใฃใฆใฟใพใ—ใŸ๏ผ**\ -[**่ฉณ็ดฐใจไฝฟ็”จๆ–นๆณ•ใฏใ“ใกใ‚‰ใ‹ใ‚‰๏ผ**](./bash.html) +ใ‚ณใƒ”ใƒšใฐใ‹ใ‚Šใชใ‚‰ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใ„ใ„ใ˜ใ‚ƒใ‚“ใ€ใจ่จ€ใ†ใ“ใจใง**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใปใผๅ…จ้ƒจใ‚„ใฃใฆใใ‚Œใ‚‹ใ‚„ใคใ‚’ไฝœใฃใฆใฟใพใ—ใŸ๏ผ**\ +[**ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎ่ฉณ็ดฐใจไฝฟ็”จๆ–นๆณ•ใฏใ“ใกใ‚‰ใ‹ใ‚‰๏ผ**](./bash.html) ::: tip ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงใฎ้–‹็™บ็’ฐๅขƒใธใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใฏๆƒณๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ @@ -29,14 +26,16 @@ [docker-compose](./docker.html)ใชใ‚‰ใ€ๆ‰‹ไฝœๆฅญใงใ‚‚ใ‚‚ใ†ใกใ‚‡ใฃใจ็ฐกๅ˜ใซๅฎŸ่กŒใงใใ‚‹ใฏใšใงใ™ใ€‚ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + ## ใฏใ˜ใ‚ใซ ใ“ใฎ่จ˜ไบ‹ใงใฏใ€[Misskeyๆง‹็ฏ‰ใฎๆ‰‹ๅผ•ใ (manual.html)](./manual.html)ใ‚’ๅŸบใซใ€ไธ€่ˆฌ็š„ใชUbuntuใ‚ตใƒผใƒใƒผใธMisskeyใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ๅ…ฌ้–‹ใ™ใ‚‹ๆ–นๆณ•ใฎไธ€ๆŒ™ๆ‰‹ไธ€ๆŠ•่ถณใ‚’่งฃ่ชฌใ™ใ‚‹ใ€‚ Bashใฎใ‚ณใƒžใƒณใƒ‰ๅ…ฅๅŠ›ใ€ใ„ใใคใ‹ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ็ทจ้›†ใ€ใใ—ใฆใƒ–ใƒฉใ‚ฆใ‚ถใฎๆ“ไฝœใ ใ‘ใง่จญๅฎšใŒๅฎŒไบ†ใ™ใ‚‹ใ‚ˆใ†ใซใ—ใฆใ„ใ‚‹ใ€‚ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใซใคใ„ใฆ็ฐกๅ˜ใซ่ชฌๆ˜Žใ—ใฆใ„ใ‚‹ใŒใ€ๆฐ—ใซใ™ใ‚‹ๅฟ…่ฆใฏใชใ„ใ€‚ -ๅคงใพใ‹ใชๆตใ‚ŒใฏไธŠใฎ**็›ฎๆฌก**ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ๅฑ•้–‹ใ™ใ‚‹ใ“ใจใง็ขบ่ชใงใใ‚‹ใ€‚ - ใ“ใฎ่จ˜ไบ‹ใงใฏใ€ๅ…ทไฝ“ๆ€งใ‚’้‡่ฆ–ใ—ใ€็‰นๅฎšใฎ็’ฐๅขƒใซ็‰นๅŒ–ใ—ใŸ่จ˜่ฟฐใ‚’ใ—ใฆใ„ใ‚‹ใ€‚ OSใฎ้•ใ„ใ€Misskeyๆœฌไฝ“ใ‚„ไพๅญ˜ใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใƒใƒผใ‚ธใƒงใƒณใ‚ขใƒƒใƒ—ใงๅค‰ใ‚ใฃใฆใ—ใพใฃใŸ้ƒจๅˆ†็ญ‰ใŒใ‚ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใŒใ€ใ”ๅฎน่ตฆใ„ใŸใ ใใŸใๆ€ใ†ใ€‚ @@ -52,6 +51,10 @@ OSใฎ้•ใ„ใ€Misskeyๆœฌไฝ“ใ‚„ไพๅญ˜ใ™ใ‚‹ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใƒใƒผใ‚ธใƒงใƒณ * ใƒ‰ใƒกใ‚คใƒณใฏ[Google Domains](https://domains.google/intl/ja_jp/)ใชใฉใงไบˆใ‚็”จๆ„ใ—ใฆใŠใใ“ใจใ€‚ * ใ“ใ“ใงใฏใƒ‰ใƒกใ‚คใƒณใ‚’example.tldใจใ—ใฆ่งฃ่ชฌใ‚’้€ฒใ‚ใ‚‹ใฎใงใ€่‡ชๅˆ†ใŒ่ฒทใฃใŸใƒ‰ใƒกใ‚คใƒณใซ้ฉๅฎœ็ฝฎใๆ›ใˆใฆ่ชญใ‚€ใ“ใจใ€‚้–‹็™บ็’ฐๅขƒใฎๅ ดๅˆใฏlocalhostใจ่ชญใฟๆ›ฟใˆใพใ™๏ผˆ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ้ …ใงๅˆฅ้€”่ชฌๆ˜Ž๏ผ‰ +::: danger +ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ +::: + ## nanoใฎไฝฟใ„ๆ–น ไปŠๅ›žใฏใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒ‡ใ‚ฃใ‚ฟใƒผใซnanoใ‚’ไฝฟใ†ใ€‚ๆฌกใฎใ‚ˆใ†ใซ่ตทๅ‹•ใ™ใ‚‹ใ€‚ @@ -498,10 +501,6 @@ Misskeyใ‚ตใƒผใƒใƒผใซ่‡ชๅˆ†ใฎใ‚ขใ‚ซใ‚ฆใƒณใƒˆใ‚’็™ป้Œฒใƒปใƒญใ‚ฐใ‚คใƒณใ—ใ€่จญ ## Misskeyใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ -ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใซใคใ„ใฆใ‚‚ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚\ - - -ๆ‰‹ไฝœๆฅญใงใ‚„ใ‚‹ๅ ดๅˆใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚\ [โ†’ manual.html#Misskeyใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆๆ–นๆณ•](https://misskey-hub.net/docs/install/manual.html#misskey%E3%81%AE%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%E3%83%86%E3%82%99%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95) ไฝœๆฅญไธญใฏMisskeyใ‚’ไฝฟใ†ใ“ใจใŒใงใใพใ›ใ‚“ใ€‚ diff --git a/src/en/docs/install.md b/src/en/docs/install.md index 658f95ec58..bb48ba0f1b 100644 --- a/src/en/docs/install.md +++ b/src/en/docs/install.md @@ -2,7 +2,11 @@ Thank you for your interest in building a Misskey instance ๐Ÿš€ There are several ways to create an instance, so please choose one below and read the guide. -## Using Docker (recommended) +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + +## Using Docker [See here](./install/docker.html) ## Using Bash Script diff --git a/src/en/docs/install/bash.md b/src/en/docs/install/bash.md index 82ae67c245..e51561b529 100644 --- a/src/en/docs/install/bash.md +++ b/src/en/docs/install/bash.md @@ -16,6 +16,10 @@ There is also an update script. 2. An Ubuntu Server 3. A Cloudflare Account (recommended) +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ## Configure Cloudflare If you are using nginx and Cloudflare, you must configure Cloudflare: diff --git a/src/en/docs/install/kubernetes.md b/src/en/docs/install/kubernetes.md index 5b5a0eaed0..46affefa9b 100644 --- a/src/en/docs/install/kubernetes.md +++ b/src/en/docs/install/kubernetes.md @@ -1,6 +1,9 @@ # Create Misskey Instance with Kubernetes/TrueNAS This guide describes how to install and setup Misskey using Kubernetes and Helm charts. +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: ## TrueCharts and TrueNAS Scale The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/docs/charts/incubator/misskey) site has a list of all the charts available as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the *incubator* train. diff --git a/src/en/docs/install/manual.md b/src/en/docs/install/manual.md index ee112742ae..8379c21630 100644 --- a/src/en/docs/install/manual.md +++ b/src/en/docs/install/manual.md @@ -6,6 +6,10 @@ This guide describes how to install and setup Misskey. ---------------------------------------------------------------- +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + *1.* Install dependencies ---------------------------------------------------------------- Please install and setup these softwares: diff --git a/src/it/docs/install.md b/src/it/docs/install.md index 94f8b537ed..7517c59926 100644 --- a/src/it/docs/install.md +++ b/src/it/docs/install.md @@ -4,6 +4,10 @@ Grazie per il tuo interesse nel costruire una istanza Misskey ๐Ÿš€ Ci sono vari modi per crearne una, scegli tra quelli elencati e segui la relativa guida. +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ## Usando Docker (raccomandato) Se vuoi eseguire l'istanza in un container segui la [guida di installazione con Docker](./install/docker.html) diff --git a/src/it/docs/install/manual.md b/src/it/docs/install/manual.md index a0ece4b74f..8fe84dcfc0 100644 --- a/src/it/docs/install/manual.md +++ b/src/it/docs/install/manual.md @@ -6,6 +6,10 @@ description: "Questa guida spiega come installare e configurare Misskey" Questa guida spiega come installare e configurare Misskey +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ::: tip Occorre installare il seguente software diff --git a/src/it/docs/install/ubuntu-manual.md b/src/it/docs/install/ubuntu-manual.md index 7067da152b..ff280e9296 100644 --- a/src/it/docs/install/ubuntu-manual.md +++ b/src/it/docs/install/ubuntu-manual.md @@ -42,6 +42,10 @@ Le indicazioni sono specifiche per il sistema operativo Ubuntu, alcune parti pot Se prepari un ambiente di sviluppo, dominio e Cloudflare non servono ::: +::: danger +Never change the domain name (hostname) of an instance once you start using it! +::: + ## Come usare l'editor Nano L'editor di testo si apre con questo comando. `nano /percorso/al/file`. Il cursore si muove coi tasti freccia, home, end ecc... Per uscire, premi `CTRL+x`, successivamente, decidi se salvare le modifiche, premi `Y` per accettare. From 8ad2e54f04a4e6dae5f8d69e7b1e41a4027ea8c2 Mon Sep 17 00:00:00 2001 From: tamaina Date: Sat, 28 Jan 2023 11:55:32 +0000 Subject: [PATCH 123/296] =?UTF-8?q?Docker=20Compose=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB=E3=81=AF=E3=81=8A=E3=81=99?= =?UTF-8?q?=E3=81=99=E3=82=81=E3=81=AB=E3=81=97=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docs/install.md | 2 +- src/docs/install/docker.md | 4 ++-- src/en/docs/install/docker.md | 4 ++-- src/it/docs/install.md | 2 +- src/it/docs/install/docker.md | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/docs/install.md b/src/docs/install.md index 6b9afb2dcc..55f06743c1 100644 --- a/src/docs/install.md +++ b/src/docs/install.md @@ -9,7 +9,7 @@ Misskeyใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎๆง‹็ฏ‰ใซ้–ขๅฟƒใ‚’ใŠๅฏ„ใ›ใ„ใŸใ ใใ‚ใ‚ŠใŒใจ ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ ::: -## Dockerใ‚’ไฝฟใฃใŸใ‚คใƒณใ‚นใƒˆใƒผใƒซ(ใŠใ™ใ™ใ‚) +## Docker Composeใ‚’ไฝฟใฃใŸใ‚คใƒณใ‚นใƒˆใƒผใƒซ [ใ“ใกใ‚‰](./install/docker.html) ## bashใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ไฝฟใฃใŸใ‚คใƒณใ‚นใƒˆใƒผใƒซ diff --git a/src/docs/install/docker.md b/src/docs/install/docker.md index 488b82d653..4b9350818d 100644 --- a/src/docs/install/docker.md +++ b/src/docs/install/docker.md @@ -2,10 +2,10 @@ description: 'ใ“ใฎใ‚ฌใ‚คใƒ‰ใฏDockerใ‚’ไฝฟใฃใŸMisskeyใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ–นๆณ•ใ‚’่ชฌๆ˜Žใ—ใพใ™ใ€‚' --- -Dockerใ‚’ไฝฟใฃใŸMisskeyๆง‹็ฏ‰ +Docker Composeใ‚’ไฝฟใฃใŸMisskeyๆง‹็ฏ‰ ================================================================ -ใ“ใฎใ‚ฌใ‚คใƒ‰ใฏDockerใ‚’ไฝฟใฃใŸMisskeyใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ–นๆณ•ใ‚’่ชฌๆ˜Žใ—ใพใ™ใ€‚ +ใ“ใฎใ‚ฌใ‚คใƒ‰ใฏDocker Composeใ‚’ไฝฟใฃใŸMisskeyใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ๆ–นๆณ•ใ‚’่ชฌๆ˜Žใ—ใพใ™ใ€‚ ::: danger ไธ€ๅบฆไฝฟ็”จใ‚’ๅง‹ใ‚ใŸใ‚คใƒณใ‚นใ‚ฟใƒณใ‚นใฎใƒ‰ใƒกใ‚คใƒณใƒปใƒ›ใ‚นใƒˆๅใฏใ€ๆฑบใ—ใฆๅค‰ๆ›ดใ—ใชใ„ใงใใ ใ•ใ„๏ผ diff --git a/src/en/docs/install/docker.md b/src/en/docs/install/docker.md index 1f569522a8..363b3e409d 100644 --- a/src/en/docs/install/docker.md +++ b/src/en/docs/install/docker.md @@ -1,7 +1,7 @@ -Create Misskey instance with Docker +Create Misskey instance with Docker Compose ================================================================ -This guide describes how to install and setup Misskey with Docker. +This guide describes how to install and setup Misskey with Docker Compose. ::: danger Never change the domain name (hostname) of an instance once you start using it! diff --git a/src/it/docs/install.md b/src/it/docs/install.md index 7517c59926..f31fa7e467 100644 --- a/src/it/docs/install.md +++ b/src/it/docs/install.md @@ -8,7 +8,7 @@ Ci sono vari modi per crearne una, scegli tra quelli elencati e segui la relativ Never change the domain name (hostname) of an instance once you start using it! ::: -## Usando Docker (raccomandato) +## Usando Docker Compose Se vuoi eseguire l'istanza in un container segui la [guida di installazione con Docker](./install/docker.html) diff --git a/src/it/docs/install/docker.md b/src/it/docs/install/docker.md index f2e349375c..a88b3d02ce 100644 --- a/src/it/docs/install/docker.md +++ b/src/it/docs/install/docker.md @@ -2,9 +2,9 @@ description: "Questa guida spiega come installare Misskey dentro Docker" --- -# Costruire Misskey tramite Docker +# Costruire Misskey tramite Docker Compose -Questa guida spiega come installare Misskey dentro Docker +Questa guida spiega come installare Misskey dentro Docker Compose ::: danger Never change the domain name (hostname) of an instance once you start using it! From 8df615e6c2d964a69ee35b96bd7d8a62a4d6d376 Mon Sep 17 00:00:00 2001 From: Dohyeon Jeon Date: Sat, 28 Jan 2023 23:52:40 +0900 Subject: [PATCH 124/296] Fix: grammar on .vuepress/config.ts Great sorry of the file messed up I didn't realize. --- src/.vuepress/config.ts | 461 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index decb94955b..be98b16402 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -1,3 +1,464 @@ +import { path } from '@vuepress/utils'; +import { defineUserConfig } from 'vuepress'; +import type { DefaultThemeOptions } from 'vuepress'; +import { registerComponentsPlugin } from '@vuepress/plugin-register-components'; +import { containerPlugin } from '@vuepress/plugin-container'; +import { generateRecentUpdatesPage } from './recent-updates-page'; +import { getRelatedPages } from './related-pages'; +import { getChildPages } from './child-pages'; +import { generateEndpointPages } from './generate-endpoint-pages'; +import { getInstances } from './get-instances'; +import localTheme from './mitheme/src/node'; + +const ssrTransformCustomDir = () => { + return { + props: [], + needRuntime: true, + }; +}; + +export default defineUserConfig({ + // ็‹ฌ่‡ชใƒ‰ใƒกใ‚คใƒณไฝฟใ†ๅ ดๅˆ '/' ใซใ™ใ‚‹ + // ็‹ฌ่‡ชใƒ‰ใƒกใ‚คใƒณไฝฟใ‚ใชใ„ๅ ดๅˆ '/misskey-hub/' ใซใ™ใ‚‹ + base: '/', + + lang: 'ja-JP', + title: 'Misskey Hub', + + head: [ + [ + 'link', + { + rel: 'stylesheet', + href: 'https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c', + }, + ], + [ + 'link', + { + rel: 'stylesheet', + href: 'https://fonts.googleapis.com/css2?family=Kosugi+Maru', + }, + ], + [ + 'link', + { + rel: 'stylesheet', + href: 'https://use.fontawesome.com/releases/v5.15.3/css/all.css', + }, + ], + ], + + locales: { + '/': { lang: 'ja-JP', description: 'ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ' }, + '/en/': { lang: 'en-US', description: 'Official website of Misskey project' }, + '/ko/': { lang: 'ko-KR', description: '์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ Misskey' }, + '/it/': { lang: 'it-IT', description: 'Sito ufficiale del progetto Misskey' }, + }, + + theme: localTheme({ + repo: 'misskey-dev/misskey-hub', + docsDir: 'src', + logo: 'https://raw.githubusercontent.com/misskey-dev/assets/main/favicon.png', + locales: { + '/': { + selectLanguageName: 'ๆ—ฅๆœฌ่ชž', + contributorsText: '็ทจ้›†่€…', + lastUpdatedText: '็ทจ้›†ๆ—ฅๆ™‚', + editLinkText: 'ใƒšใƒผใ‚ธใ‚’็ทจ้›†', + relatedPagesText: '้–ข้€ฃใ™ใ‚‹ใƒšใƒผใ‚ธ', + readThisArticle: 'ใ“ใฎ่จ˜ไบ‹ใ‚’่ชญใ‚€', + navbar: [ + { text: 'ใƒ–ใƒญใ‚ฐ', link: '/blog/' }, + { text: 'ใŠๆฅฝใ—ใฟ', children: ['/instances', '/plugins/', '/appendix/assets'] }, + { + text: 'ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ', children: [ + '/docs/misskey', + '/docs/releases', + '/docs/misskey-hub', + '/docs/faq', + '/docs/glossary', + '/docs/troubleshooting', + { + text: 'ๆฉŸ่ƒฝ', children: [ + '/docs/features/note', + '/docs/features/reaction', + '/docs/features/timeline', + '/docs/features/mfm', + '/docs/features/custom-emoji', + '/docs/features/drive', + '/docs/features/deck', + '/docs/features/charts', + '/docs/features/online-status', + '/docs/features/share-form', + '/docs/features/ads', + '/docs/features/thread-mute', + '/docs/features/word-mute', + '/docs/features/mute-and-block', + '/docs/features/plugin', + '/docs/features/antenna', + '/docs/features/clip', + '/docs/features/favorite', + '/docs/features/follow', + '/docs/features/pages', + '/docs/features/theme', + '/docs/features/thread-mute', + '/docs/features/widgets', + ] + }, + { + text: '้–‹็™บ่€…', children: [ + '/docs/api', + '/docs/api/streaming', + '/docs/api/endpoints.html', + '/docs/features/webhook', + ] + }, + { + text: '้‹ๅ–ถ่€…ๅ‘ใ‘', children: [ + '/docs/install', + '/docs/admin/cdn', + '/docs/admin/nginx', + '/docs/admin/push-docker-hub', + '/docs/admin/troubleshooting', + '/docs/tips/disable-timelines', + '/docs/features/silence', + ] + }, + ] + }, + { + text: 'ใƒชใƒณใ‚ฏ', children: [ + { text: 'ๅ…ฌๅผDiscord', link: 'https://discord.gg/Wp8gVStHW3' }, + { text: 'ๅฏ„ไป˜ (Patreon)', link: 'https://www.patreon.com/syuilo' }, + { text: '็ฟป่จณ (Crowdin)', link: 'https://crowdin.com/project/misskey' }, + { text: '่—.moe', link: 'https://xn--931a.moe' }, + { text: 'ใ‚ขใ‚ซใ‚ฆใƒณใƒˆ', children: [{ text: '@repo@p1.a9z.dev', link: 'https://p1.a9z.dev/@repo' }] }, + { + text: 'ใƒชใƒใ‚ธใƒˆใƒช', children: [ + { text: 'misskey', link: 'https://github.com/misskey-dev/misskey' }, + { text: 'misskey.js', link: 'https://github.com/misskey-dev/misskey.js' }, + { text: 'mfm.js', link: 'https://github.com/misskey-dev/mfm.js' }, + { text: 'misskey-hub', link: 'https://github.com/misskey-dev/misskey-hub' }, + ] + }, + ] + }, + ], + }, + '/en/': { + selectLanguageName: 'English', + contributorsText: 'Contributors', + lastUpdatedText: 'Last Updated', + editLinkText: 'Edit this page', + relatedPagesText: 'Related pages', + readThisArticle: 'Read this article', + navbar: [ + { text: 'Blog', link: '/en/blog/' }, + { text: 'Taking part', children: ['/en/instances', '/en/plugins/', '/en/appendix/assets'] }, + { + text: 'Documentation', children: [ + '/en/docs/misskey', + '/en/docs/releases', + '/en/docs/misskey-hub', + '/en/docs/faq', + '/en/docs/glossary', + '/en/docs/troubleshooting', + { + text: 'Features', children: [ + '/en/docs/features/note', + '/en/docs/features/reaction', + '/en/docs/features/timeline', + '/en/docs/features/mfm', + '/en/docs/features/custom-emoji', + '/en/docs/features/drive', + '/en/docs/features/deck', + '/en/docs/features/charts', + '/en/docs/features/online-status', + '/en/docs/features/share-form', + '/en/docs/features/ads', + '/en/docs/features/thread-mute', + '/en/docs/features/word-mute', + '/en/docs/features/mute-and-block', + '/en/docs/features/plugin', + '/en/docs/features/antenna', + '/en/docs/features/clip', + '/en/docs/features/favorite', + '/en/docs/features/follow', + '/en/docs/features/pages', + '/en/docs/features/theme', + '/en/docs/features/thread-mute', + '/en/docs/features/widgets', + ] + }, + { + text: 'for Developers', children: [ + '/en/docs/api', + '/en/docs/api/streaming', + '/en/docs/api/endpoints.html', + '/en/docs/features/webhook', + ] + }, + { + text: 'for Admins', children: [ + '/en/docs/install', + '/en/docs/admin/emoji', + '/en/docs/admin/cdn', + '/en/docs/admin/nginx', + '/en/docs/admin/push-docker-hub', + '/en/docs/admin/troubleshooting', + '/en/docs/tips/disable-timelines', + '/en/docs/admin/default-reaction', + '/en/docs/features/silence', + ] + }, + ] + }, + { + text: 'Links', children: [ + { text: 'Official Discord', link: 'https://discord.gg/Wp8gVStHW3' }, + { text: 'Donations (Patreon)', link: 'https://www.patreon.com/syuilo' }, + { text: 'Translation (Crowdin)', link: 'https://crowdin.com/project/misskey' }, + { text: '่—.moe (Mascot art site)', link: 'https://xn--931a.moe' }, + { text: 'Accounts', children: [{ text: '@repo@p1.a9z.dev', link: 'https://p1.a9z.dev/@repo' }] }, + { + text: 'Repository', children: [ + { text: 'misskey', link: 'https://github.com/misskey-dev/misskey' }, + { text: 'misskey.js', link: 'https://github.com/misskey-dev/misskey.js' }, + { text: 'mfm.js', link: 'https://github.com/misskey-dev/mfm.js' }, + { text: 'misskey-hub', link: 'https://github.com/misskey-dev/misskey-hub' }, + ] + }, + ] + }, + ], + }, + '/ko/': { + selectLanguageName: 'ํ•œ๊ตญ์–ด', + contributorsText: '๊ธฐ์—ฌ์ž', + lastUpdatedText: '๋งˆ์ง€๋ง‰ ์ˆ˜์ •', + editLinkText: '์ด ํŽ˜์ด์ง€ ์ˆ˜์ •ํ•˜๊ธฐ', + relatedPagesText: '๊ด€๋ จ ํŽ˜์ด์ง€', + readThisArticle: '์ด ๋ฌธ์„œ ์ฝ๊ธฐ', + navbar: [ + { text: '๋ธ”๋กœ๊ทธ', link: '/ko/blog/' }, + { text: '๋‘˜๋Ÿฌ๋ณด๊ธฐ', children: ['/ko/instances', '/ko/plugins/', '/ko/appendix/assets'] }, + { + text: '์„ค๋ช…์„œ', children: [ + '/ko/docs/misskey', + '/ko/docs/releases', + '/ko/docs/misskey-hub', + '/ko/docs/faq', + '/ko/docs/glossary', + '/ko/docs/troubleshooting', + { + text: '๊ธฐ๋Šฅ', children: [ + '/ko/docs/features/note', + '/ko/docs/features/reaction', + '/ko/docs/features/mfm', + '/ko/docs/features/custom-emoji', + '/ko/docs/features/drive', + '/ko/docs/features/online-status', + '/ko/docs/features/share-form', + '/ko/docs/features/thread-mute', + '/ko/docs/features/word-mute', + '/ko/docs/features/mute-and-block', + '/ko/docs/features/plugin', + ] + }, + { + text: '๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•˜์—ฌ', children: [ + '/ko/docs/api', + '/ko/docs/api/streaming', + '/ko/docs/api/entity', + '/ko/docs/api/endpoints.html', + ] + }, + { + text: '์ธ์Šคํ„ด์Šค ์šด์˜์ž๋ฅผ ์œ„ํ•˜์—ฌ', children: [ + '/ko/docs/install', + '/ko/docs/admin/cdn', + '/ko/docs/admin/nginx', + '/ko/docs/admin/push-docker-hub', + '/ko/docs/admin/troubleshooting', + '/ko/docs/tips/disable-timelines', + '/ko/docs/admin/default-reaction', + ] + }, + ] + }, + { + text: '๋ฐ”๊นฅ ๋งํฌ', children: [ + { text: '๊ณต์‹ Discord', link: 'https://discord.gg/Wp8gVStHW3' }, + { text: '๊ธฐ๋ถ€ํ•˜๊ธฐ (Patreon)', link: 'https://www.patreon.com/syuilo' }, + { text: '๋ฒˆ์—ญํ•˜๊ธฐ (Crowdin)', link: 'https://crowdin.com/project/misskey' }, + { text: '่—.moe (๋งˆ์Šค์ฝ”ํŠธ ์ •๋ณด)', link: 'https://xn--931a.moe', }, + { text: '๊ณ„์ •', children: [{ text: '@repo@p1.a9z.dev', link: 'https://p1.a9z.dev/@repo' }] }, + { + text: '๋ฆฌํฌ์ง€ํ† ๋ฆฌ', children: [ + { text: 'misskey', link: 'https://github.com/misskey-dev/misskey' }, + { text: 'misskey.js', link: 'https://github.com/misskey-dev/misskey.js' }, + { text: 'mfm.js', link: 'https://github.com/misskey-dev/mfm.js' }, + { text: 'misskey-hub', link: 'https://github.com/misskey-dev/misskey-hub' }, + ] + }, + ] + }, + ], + }, + '/it/': { + selectLanguageText: 'Lingua', + selectLanguageName: 'Italiano', + selectLanguageAriaLabel: 'Scegli la lingua del sito', + contributorsText: 'Co-autori', + lastUpdatedText: 'Ultimo aggiornamento', + editLinkText: 'Modifica questa pagina', + relatedPagesText: 'Pagine correlate', + readThisArticle: 'Leggi questo articolo', + // 404 page messages + notFound: [ + `Purtroppo qui non c'รจ niente`, + `Perchรฉ manca questa pagina?`, + `Pagina non trovata`, + `Sembra che il link sia rotto...`, + `Mah? Qui non c'รจ nulla`, + ], + backToHome: 'Torna alla pagina iniziale', + // a11y + openInNewWindow: 'si apre in una nuova finestra', + toggleColorMode: 'cambia i colori', + toggleSidebar: 'menu laterale di navigazione', + navbar: [ + { text: 'Blog Giapponese', link: '/blog' }, + { text: 'Partecipa', children: ['/it/instances', '/it/plugins', '/it/appendix/assets'] }, + { + text: 'Documentazione', children: [ + '/it/docs/misskey', + '/it/docs/releases', + '/it/docs/misskey-hub', + '/it/docs/faq', + '/it/docs/glossary', + '/it/docs/troubleshooting', + { + text: 'Caratteristiche', children: [ + '/it/docs/features/note', + '/it/docs/features/reaction', + '/it/docs/features/timeline', + '/it/docs/features/mfm', + '/it/docs/features/custom-emoji', + '/it/docs/features/drive', + '/it/docs/features/deck', + '/it/docs/features/charts', + '/it/docs/features/online-status', + '/it/docs/features/share-form', + '/it/docs/features/ads', + '/it/docs/features/thread-mute', + '/it/docs/features/word-mute', + '/it/docs/features/mute-and-block', + '/it/docs/features/plugin', + '/it/docs/features/antenna', + '/it/docs/features/clip', + '/it/docs/features/favorite', + '/it/docs/features/follow', + '/it/docs/features/pages', + '/it/docs/features/theme', + '/it/docs/features/thread-mute', + '/it/docs/features/widgets', + ] + }, + { + text: 'Per gli sviluppatori', children: [ + '/it/docs/api', + '/it/docs/api/streaming', + '/it/docs/api/endpoints.html', + ] + }, + { + text: 'Per gli amministratori', children: [ + '/it/docs/install', + '/it/docs/admin/emoji', + '/it/docs/admin/cdn', + '/it/docs/admin/nginx', + '/it/docs/admin/push-docker-hub', + '/it/docs/admin/troubleshooting', + '/it/docs/tips/disable-timelines', + '/it/docs/admin/default-reaction', + ] + }, + ] + }, + { + text: 'Collegamenti', + children: [ + { text: 'Discord ufficiale', link: 'https://discord.gg/Wp8gVStHW3' }, + { text: 'Donazioni (Patreon)', link: 'https://www.patreon.com/syuilo' }, + { text: 'Traduzioni (Crowdin)', link: 'https://crowdin.com/project/misskey' }, + { text: '่—.moe (la mascotte: Ai)', link: 'https://xn--931a.moe' }, + { text: 'Profili', children: [{ text: '@repo@p1.a9z.dev', link: 'https://p1.a9z.dev/@repo' }] }, + { + text: 'Il codice sorgente', children: [ + { text: 'misskey (la piattaforma)', link: 'https://github.com/misskey-dev/misskey' }, + { text: 'misskey.js (la SDK in NodeJS)', link: 'https://github.com/misskey-dev/misskey.js' }, + { text: 'mfm.js (il parser MFM)', link: 'https://github.com/misskey-dev/mfm.js' }, + { text: 'misskey-hub (il sito)', link: 'https://github.com/misskey-dev/misskey-hub' }, + ] + }, + ], // Fine: menu links + }, + ], // Fine: navbar italiana + }, + }, + themePlugins: { + activeHeaderLinks: false, + }, + }), + + plugins: [ + ['@vuepress/plugin-search'], + registerComponentsPlugin({ componentsDir: path.resolve(__dirname, './components/') }), + containerPlugin({ + type: 'tip', + before: (info: string, type): string => `
${info ? `

${info}

` : ''}\n`, + after: (): string => '
\n', + }), + containerPlugin({ + type: 'warning', + before: (info: string, type): string => `
${info ? `

${info}

` : ''}\n`, + after: (): string => '
\n', + }), + containerPlugin({ + type: 'danger', + before: (info: string, type): string => `
${info ? `

${info}

` : ''}\n`, + after: (): string => '
\n', + }), + ], + + clientConfigFile: path.resolve(__dirname, './client.ts'), + + async onInitialized(app) { + await getInstances(app); + await generateEndpointPages(app); + await generateRecentUpdatesPage(app); + await getRelatedPages(app); + await getChildPages(app); + }, + + bundlerConfig: { + vuePluginOptions: { + template: { + ssr: true, + compilerOptions: { + directiveTransforms: { + 'parallax': ssrTransformCustomDir, + 'fade-in': ssrTransformCustomDir, + }, + }, + }, + }, + }, + + shouldPrefetch: false, +}); import { path } from "@vuepress/utils"; import { defineUserConfig } from "vuepress"; import type { DefaultThemeOptions } from "vuepress"; From 50ed745fec060c85e6fe0d6cff8a6d427530b246 Mon Sep 17 00:00:00 2001 From: Dohyeon Jeon Date: Sat, 28 Jan 2023 23:56:59 +0900 Subject: [PATCH 125/296] Fix: remove duplication on config --- src/.vuepress/config.ts | 420 +--------------------------------------- 1 file changed, 1 insertion(+), 419 deletions(-) diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index be98b16402..542996f3d4 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -458,422 +458,4 @@ export default defineUserConfig({ }, shouldPrefetch: false, -}); -import { path } from "@vuepress/utils"; -import { defineUserConfig } from "vuepress"; -import type { DefaultThemeOptions } from "vuepress"; -import { registerComponentsPlugin } from "@vuepress/plugin-register-components"; -import { containerPlugin } from "@vuepress/plugin-container"; -import { generateRecentUpdatesPage } from "./recent-updates-page"; -import { getRelatedPages } from "./related-pages"; -import { getChildPages } from "./child-pages"; -import { generateEndpointPages } from "./generate-endpoint-pages"; -import { getInstances } from "./get-instances"; -import localTheme from "./mitheme/src/node"; - -const ssrTransformCustomDir = () => { - return { - props: [], - needRuntime: true, - }; -}; - -export default defineUserConfig({ - // ็‹ฌ่‡ชใƒ‰ใƒกใ‚คใƒณไฝฟใ†ๅ ดๅˆ '/' ใซใ™ใ‚‹ - // ็‹ฌ่‡ชใƒ‰ใƒกใ‚คใƒณไฝฟใ‚ใชใ„ๅ ดๅˆ '/misskey-hub/' ใซใ™ใ‚‹ - base: "/", - - lang: "ja-JP", - title: "Misskey Hub", - - head: [ - [ - "link", - { - rel: "stylesheet", - href: "https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c", - }, - ], - [ - "link", - { - rel: "stylesheet", - href: "https://fonts.googleapis.com/css2?family=Kosugi+Maru", - }, - ], - [ - "link", - { - rel: "stylesheet", - href: "https://use.fontawesome.com/releases/v5.15.3/css/all.css", - }, - ], - ], - - locales: { - "/": {lang: "ja-JP", description: "ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใฎๅˆ†ๆ•ฃๅž‹ใƒžใ‚คใ‚ฏใƒญใƒ–ใƒญใ‚ฐใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใ€Misskeyใฎๅ…ฌๅผใ‚ตใ‚คใƒˆ"}, - "/en/": {lang: "en-US", description: "Official website of Misskey project"}, - "/ko/": {lang: "ko-KR", description: "์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ๋ธ”๋กœ๊น… ํ”Œ๋žซํผ Misskey"}, - "/it/": {lang: "it-IT", description: "Sito ufficiale del progetto Misskey"}, - }, - - theme: localTheme({ - repo: "misskey-dev/misskey-hub", - docsDir: "src", - logo: "https://raw.githubusercontent.com/misskey-dev/assets/main/favicon.png", - locales: { - "/": { - selectLanguageName: "ๆ—ฅๆœฌ่ชž", - contributorsText: "็ทจ้›†่€…", - lastUpdatedText: "็ทจ้›†ๆ—ฅๆ™‚", - editLinkText: "ใƒšใƒผใ‚ธใ‚’็ทจ้›†", - relatedPagesText: "้–ข้€ฃใ™ใ‚‹ใƒšใƒผใ‚ธ", - readThisArticle: "ใ“ใฎ่จ˜ไบ‹ใ‚’่ชญใ‚€", - navbar: [ - {text: "ใƒ–ใƒญใ‚ฐ", link: "/blog/"}, - {text: "ใŠๆฅฝใ—ใฟ", children: ["/instances", "/plugins/", "/appendix/assets"]}, - {text: "ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ", children: [ - "/docs/misskey", - "/docs/releases", - "/docs/misskey-hub", - "/docs/faq", - "/docs/glossary", - "/docs/troubleshooting", - {text: "ๆฉŸ่ƒฝ", children: [ - "/docs/features/note", - "/docs/features/reaction", - "/docs/features/timeline", - "/docs/features/mfm", - "/docs/features/custom-emoji", - "/docs/features/drive", - "/docs/features/deck", - "/docs/features/charts", - "/docs/features/online-status", - "/docs/features/share-form", - "/docs/features/ads", - "/docs/features/thread-mute", - "/docs/features/word-mute", - "/docs/features/mute-and-block", - "/docs/features/plugin", - "/docs/features/antenna", - "/docs/features/clip", - "/docs/features/favorite", - "/docs/features/follow", - "/docs/features/pages", - "/docs/features/theme", - "/docs/features/thread-mute", - "/docs/features/widgets", - ]}, - {text: "้–‹็™บ่€…", children: [ - "/docs/api", - "/docs/api/streaming", - "/docs/api/endpoints.html", - "/docs/features/webhook", - ]}, - {text: "้‹ๅ–ถ่€…ๅ‘ใ‘", children: [ - "/docs/install", - "/docs/admin/cdn", - "/docs/admin/nginx", - "/docs/admin/push-docker-hub", - "/docs/admin/troubleshooting", - "/docs/tips/disable-timelines", - "/docs/features/silence", - ]}, - ]}, - {text: "ใƒชใƒณใ‚ฏ", children: [ - {text: "ๅ…ฌๅผDiscord", link: "https://discord.gg/Wp8gVStHW3"}, - {text: "ๅฏ„ไป˜ (Patreon)", link: "https://www.patreon.com/syuilo"}, - {text: "็ฟป่จณ (Crowdin)", link: "https://crowdin.com/project/misskey"}, - {text: "่—.moe", link: "https://xn--931a.moe"}, - {text: "ใ‚ขใ‚ซใ‚ฆใƒณใƒˆ", children: [{ text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, - {text: "ใƒชใƒใ‚ธใƒˆใƒช", children: [ - {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, - {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, - {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, - {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, - ]}, - ]}, - ], - }, - "/en/": { - selectLanguageName: "English", - contributorsText: "Contributors", - lastUpdatedText: "Last Updated", - editLinkText: "Edit this page", - relatedPagesText: "Related pages", - readThisArticle: "Read this article", - navbar: [ - {text: "Blog", link: "/en/blog/"}, - {text: "Taking part", children: ["/en/instances", "/en/plugins/", "/en/appendix/assets"]}, - {text: "Documentation", children: [ - "/en/docs/misskey", - "/en/docs/releases", - "/en/docs/misskey-hub", - "/en/docs/faq", - "/en/docs/glossary", - "/en/docs/troubleshooting", - {text: "Features", children: [ - "/en/docs/features/note", - "/en/docs/features/reaction", - "/en/docs/features/timeline", - "/en/docs/features/mfm", - "/en/docs/features/custom-emoji", - "/en/docs/features/drive", - "/en/docs/features/deck", - "/en/docs/features/charts", - "/en/docs/features/online-status", - "/en/docs/features/share-form", - "/en/docs/features/ads", - "/en/docs/features/thread-mute", - "/en/docs/features/word-mute", - "/en/docs/features/mute-and-block", - "/en/docs/features/plugin", - "/en/docs/features/antenna", - "/en/docs/features/clip", - "/en/docs/features/favorite", - "/en/docs/features/follow", - "/en/docs/features/pages", - "/en/docs/features/theme", - "/en/docs/features/thread-mute", - "/en/docs/features/widgets", - ]}, - {text: "for Developers", children: [ - "/en/docs/api", - "/en/docs/api/streaming", - "/en/docs/api/endpoints.html", - "/en/docs/features/webhook", - ]}, - {text: "for Admins", children: [ - "/en/docs/install", - "/en/docs/admin/emoji", - "/en/docs/admin/cdn", - "/en/docs/admin/nginx", - "/en/docs/admin/push-docker-hub", - "/en/docs/admin/troubleshooting", - "/en/docs/tips/disable-timelines", - "/en/docs/admin/default-reaction", - "/en/docs/features/silence", - ]}, - ]}, - {text: "Links", children: [ - {text: "Official Discord", link: "https://discord.gg/Wp8gVStHW3"}, - {text: "Donations (Patreon)", link: "https://www.patreon.com/syuilo"}, - {text: "Translation (Crowdin)", link: "https://crowdin.com/project/misskey"}, - {text: "่—.moe (Mascot art site)", link: "https://xn--931a.moe"}, - {text: "Accounts", children: [{ text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, - {text: "Repository", children: [ - {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, - {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, - {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, - {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, - ]}, - ]}, - ], - }, - "/ko/": { - selectLanguageName: "ํ•œ๊ตญ์–ด", - contributorsText: "๊ธฐ์—ฌ์ž", - lastUpdatedText: "๋งˆ์ง€๋ง‰ ์ˆ˜์ •", - editLinkText: "์ด ํŽ˜์ด์ง€ ์ˆ˜์ •ํ•˜๊ธฐ", - relatedPagesText: "๊ด€๋ จ ํŽ˜์ด์ง€", - readThisArticle: "์ด ๋ฌธ์„œ ์ฝ๊ธฐ", - navbar: [ - {text: "๋ธ”๋กœ๊ทธ", link: "/ko/blog/"}, - {text: "๋‘˜๋Ÿฌ๋ณด๊ธฐ", children: ["/ko/instances", "/ko/plugins/", "/ko/appendix/assets"]}, - {text: "์„ค๋ช…์„œ", children: [ - "/ko/docs/misskey", - "/ko/docs/releases", - "/ko/docs/misskey-hub", - "/ko/docs/faq", - "/ko/docs/glossary", - "/ko/docs/troubleshooting", - {text: "๊ธฐ๋Šฅ", children: [ - "/ko/docs/features/note", - "/ko/docs/features/reaction", - "/ko/docs/features/mfm", - "/ko/docs/features/custom-emoji", - "/ko/docs/features/drive", - "/ko/docs/features/online-status", - "/ko/docs/features/share-form", - "/ko/docs/features/thread-mute", - "/ko/docs/features/word-mute", - "/ko/docs/features/mute-and-block", - "/ko/docs/features/plugin", - ]}, - {text: "๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•˜์—ฌ", children: [ - "/ko/docs/api", - "/ko/docs/api/streaming", - "/ko/docs/api/entity", - "/ko/docs/api/endpoints.html", - ]}, - {text: "์ธ์Šคํ„ด์Šค ์šด์˜์ž๋ฅผ ์œ„ํ•˜์—ฌ", children: [ - "/ko/docs/install", - "/ko/docs/admin/cdn", - "/ko/docs/admin/nginx", - "/ko/docs/admin/push-docker-hub", - "/ko/docs/admin/troubleshooting", - "/ko/docs/tips/disable-timelines", - "/ko/docs/admin/default-reaction", - ]}, - ]}, - {text: "๋ฐ”๊นฅ ๋งํฌ", children: [ - {text: "๊ณต์‹ Discord", link: "https://discord.gg/Wp8gVStHW3"}, - {text: "๊ธฐ๋ถ€ํ•˜๊ธฐ (Patreon)", link: "https://www.patreon.com/syuilo"}, - {text: "๋ฒˆ์—ญํ•˜๊ธฐ (Crowdin)", link: "https://crowdin.com/project/misskey"}, - {text: "่—.moe (๋งˆ์Šค์ฝ”ํŠธ ์ •๋ณด)", link: "https://xn--931a.moe",}, - {text: "๊ณ„์ •", children: [{text: "@repo@p1.a9z.dev", link: "https://p1.a9z.dev/@repo"}]}, - {text: "๋ฆฌํฌ์ง€ํ† ๋ฆฌ", children: [ - {text: "misskey", link: "https://github.com/misskey-dev/misskey"}, - {text: "misskey.js", link: "https://github.com/misskey-dev/misskey.js"}, - {text: "mfm.js", link: "https://github.com/misskey-dev/mfm.js"}, - {text: "misskey-hub", link: "https://github.com/misskey-dev/misskey-hub"}, - ]}, - ]}, - ], - }, - "/it/": { - selectLanguageText: "Lingua", - selectLanguageName: "Italiano", - selectLanguageAriaLabel: "Scegli la lingua del sito", - contributorsText: "Co-autori", - lastUpdatedText: "Ultimo aggiornamento", - editLinkText: "Modifica questa pagina", - relatedPagesText: "Pagine correlate", - readThisArticle: "Leggi questo articolo", - // 404 page messages - notFound: [ - `Purtroppo qui non c'รจ niente`, - `Perchรฉ manca questa pagina?`, - `Pagina non trovata`, - `Sembra che il link sia rotto...`, - `Mah? Qui non c'รจ nulla`, - ], - backToHome: "Torna alla pagina iniziale", - // a11y - openInNewWindow: "si apre in una nuova finestra", - toggleColorMode: "cambia i colori", - toggleSidebar: "menu laterale di navigazione", - navbar: [ - {text: "Blog Giapponese", link: "/blog"}, - {text: "Partecipa", children: ["/it/instances", "/it/plugins", "/it/appendix/assets"]}, - {text: "Documentazione", children: [ - "/it/docs/misskey", - "/it/docs/releases", - "/it/docs/misskey-hub", - "/it/docs/faq", - "/it/docs/glossary", - "/it/docs/troubleshooting", - {text: "Caratteristiche", children: [ - "/it/docs/features/note", - "/it/docs/features/reaction", - "/it/docs/features/timeline", - "/it/docs/features/mfm", - "/it/docs/features/custom-emoji", - "/it/docs/features/drive", - "/it/docs/features/deck", - "/it/docs/features/charts", - "/it/docs/features/online-status", - "/it/docs/features/share-form", - "/it/docs/features/ads", - "/it/docs/features/thread-mute", - "/it/docs/features/word-mute", - "/it/docs/features/mute-and-block", - "/it/docs/features/plugin", - "/it/docs/features/antenna", - "/it/docs/features/clip", - "/it/docs/features/favorite", - "/it/docs/features/follow", - "/it/docs/features/pages", - "/it/docs/features/theme", - "/it/docs/features/thread-mute", - "/it/docs/features/widgets", - ]}, - {text: "Per gli sviluppatori", children: [ - "/it/docs/api", - "/it/docs/api/streaming", - "/it/docs/api/endpoints.html", - ]}, - {text: "Per gli amministratori", children: [ - "/it/docs/install", - "/it/docs/admin/emoji", - "/it/docs/admin/cdn", - "/it/docs/admin/nginx", - "/it/docs/admin/push-docker-hub", - "/it/docs/admin/troubleshooting", - "/it/docs/tips/disable-timelines", - "/it/docs/admin/default-reaction", - ]}, - ]}, - { - text: "Collegamenti", - children: [ - {text: "Discord ufficiale", link: "https://discord.gg/Wp8gVStHW3"}, - {text: "Donazioni (Patreon)", link: "https://www.patreon.com/syuilo"}, - {text: "Traduzioni (Crowdin)", link: "https://crowdin.com/project/misskey"}, - {text: "่—.moe (la mascotte: Ai)", link: "https://xn--931a.moe"}, - {text: "Profili", children: [{text: "@repo@p1.a9z.dev",link: "https://p1.a9z.dev/@repo"}]}, - {text: "Il codice sorgente", children: [ - {text: "misskey (la piattaforma)", link: "https://github.com/misskey-dev/misskey"}, - {text: "misskey.js (la SDK in NodeJS)", link: "https://github.com/misskey-dev/misskey.js"}, - {text: "mfm.js (il parser MFM)", link: "https://github.com/misskey-dev/mfm.js"}, - {text: "misskey-hub (il sito)", link: "https://github.com/misskey-dev/misskey-hub"}, - ]}, - ], // Fine: menu links - }, - ], // Fine: navbar italiana - }, - }, - themePlugins: { - activeHeaderLinks: false, - }, - - plugins: [ - ["@vuepress/plugin-search"], - registerComponentsPlugin({componentsDir: path.resolve(__dirname, "./components/")}), - containerPlugin({type: "tip", - before: (info: string, type): string => `
${ - info ? `

${info}

` : "" - }\n`, - after: (): string => "
\n", - }), - containerPlugin({type: "warning", - before: (info: string, type): string => `
${ - info ? `

${info}

` : "" - }\n`, - after: (): string => "
\n", - }), - containerPlugin({type: "danger", - before: (info: string, type): string => `
${ - info ? `

${info}

` : "" - }\n`, - after: (): string => "
\n", - }), - ], - - clientConfigFile: path.resolve(__dirname, "./client.ts"), - - async onInitialized(app) { - await getInstances(app); - await generateEndpointPages(app); - await generateRecentUpdatesPage(app); - await getRelatedPages(app); - await getChildPages(app); - }, - - bundlerConfig: { - vuePluginOptions: { - template: { - ssr: true, - compilerOptions: { - directiveTransforms: { - parallax: ssrTransformCustomDir, - "fade-in": ssrTransformCustomDir, - }, - }, - }, - }, - }, - - shouldPrefetch: false, - }), -}); +}); \ No newline at end of file From 6e0b0a1e3aedc499091a09ed528261b9f6ee9518 Mon Sep 17 00:00:00 2001 From: Dohyeon Jeon Date: Sat, 28 Jan 2023 23:59:46 +0900 Subject: [PATCH 126/296] add: common.json5 for ko since the build process requested. - Copied from en --- src/ko/docs/api/common.json5 | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/ko/docs/api/common.json5 diff --git a/src/ko/docs/api/common.json5 b/src/ko/docs/api/common.json5 new file mode 100644 index 0000000000..4bcf58ad2c --- /dev/null +++ b/src/ko/docs/api/common.json5 @@ -0,0 +1,40 @@ +{ + refs: {}, + errors: { + '1384574d-a912-4b81-8601-c7b1c4085df1': { + id: '1384574d-a912-4b81-8601-c7b1c4085df1', + code: 'CREDENTIAL_REQUIRED', + description: 'Credential-required endpoint requested without credentials.', + }, + 'd5826d14-3982-4d2e-8011-b9e9f02499ef': { + id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', + code: 'RATE_LIMIT_EXCEEDED', + description: 'Temporarily unavailable due to rate limit restrictions.', + }, + '56f35758-7dd5-468b-8439-5d6fb8ec9b8e': { + id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', + code: 'ACCESS_DENIED', + description: 'You do not have access privileges.', + }, + '1370e5b7-d4eb-4566-bb1d-7748ee6a1838': { + id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', + code: 'PERMISSION_DENIED', + description: 'The given credential does not have the required permissions.', + }, + 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': { + id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', + code: 'YOUR_ACCOUNT_SUSPENDED', + description: 'Unavailable due to your account has been suspended.', + }, + '3d81ceae-475f-4600-b2a8-2bc116157532': { + id: '3d81ceae-475f-4600-b2a8-2bc116157532', + code: 'INVALID_PARAM', + description: 'The request contains incorrect parameters.', + }, + '5d37dbcb-891e-41ca-a3d6-e690c97775ac': { + id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', + code: 'INTERNAL_ERROR', + description: 'Internal error occurred. Please contact the administrator if the error persists.', + }, + }, +} From 0d4a046679f9926d8382fdfe163deb6b534fea63 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 1 Feb 2023 11:30:39 +0900 Subject: [PATCH 127/296] Update releases.md --- src/docs/releases.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/docs/releases.md b/src/docs/releases.md index 77802c3dcf..333139e660 100644 --- a/src/docs/releases.md +++ b/src/docs/releases.md @@ -1,6 +1,21 @@ # ใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆ Misskeyใฎใƒชใƒชใƒผใ‚นใƒŽใƒผใƒˆใ‚’ๆŽฒ่ผ‰ใ—ใฆใ„ใพใ™ใ€‚ +## 13.2.6 +ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/02/01 + +### Changes +- docker-compose.ymlใ‚’docker-compose.yml.exampleใซใ—ใพใ—ใŸใ€‚docker-compose.ymlใจใ—ใฆใ‚ณใƒ”ใƒผใ—ใฆใ‹ใ‚‰ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚ + +### Improvements +- ็ตตๆ–‡ๅญ—ใƒ”ใƒƒใ‚ซใƒผใฎใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใ‚’ๆ”นๅ–„ +- AiScriptใ‚’0.12.4ใซๆ›ดๆ–ฐ + +### Bugfixes +- Server: ใƒชใƒฌใƒผใจ้€šไฟกใงใใชใ„ๅ•้กŒใ‚’ไฟฎๆญฃ +- Client: classicใƒขใƒผใƒ‰ไฝฟ็”จๆ™‚ใซwindowใ‚ตใ‚คใ‚บใซใ‚ˆใฃใฆdefaultใซๅค‰ๆ›ดใ•ใ‚ŒใŸๅพŒใซใ€windowใ‚ตใ‚คใ‚บใŒๅ…ƒใซๆˆปใฃใŸใ‚‰classicใซๆˆปใ™ใ‚ˆใ†ใซไฟฎๆญฃ #9669 +- Client: Chromeใงๆคœ็ดขใƒ€ใ‚คใ‚ขใƒญใ‚ฐใงๅค‰ๆ›็ขบๅฎšใ™ใ‚‹ใจใใฎใพใพๆคœ็ดขใ•ใ‚Œใฆใ—ใพใ†ๅ•้กŒใ‚’ไฟฎๆญฃ + ## 13.2.4 ใƒชใƒชใƒผใ‚นๆ—ฅ๏ผš 2023/01/27 From b073f5823faca0e10106e42a76283eaadc06b684 Mon Sep 17 00:00:00 2001 From: tamaina Date: Thu, 2 Feb 2023 09:26:41 +0000 Subject: [PATCH 128/296] Fix landing page sidebar Fix https://github.com/misskey-dev/misskey-hub/issues/125 --- .../mitheme/src/client/components/Navbar.vue | 4 +- .../client/components/ToggleSidebarButton.vue | 4 +- .../mitheme/src/client/layouts/Landing.vue | 118 +++++++++++++++++- .../mitheme/src/client/layouts/Layout.vue | 30 ++--- 4 files changed, 136 insertions(+), 20 deletions(-) diff --git a/src/.vuepress/mitheme/src/client/components/Navbar.vue b/src/.vuepress/mitheme/src/client/components/Navbar.vue index 4b4602a637..5de7faade2 100644 --- a/src/.vuepress/mitheme/src/client/components/Navbar.vue +++ b/src/.vuepress/mitheme/src/client/components/Navbar.vue @@ -6,7 +6,7 @@ import ToggleSidebarButton from '@theme/ToggleSidebarButton.vue' import { computed, onBeforeUnmount, onMounted, ref } from 'vue' import { useThemeLocaleData } from '../composables' -defineEmits(['toggle-sidebar']) +const emit = defineEmits(['toggle-sidebar']) const themeLocale = useThemeLocaleData() @@ -70,7 +70,7 @@ function getCssValue(el: HTMLElement | null, property: string): number {

<9gOoh_bW+ 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¤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