diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-13 12:23:49 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-13 12:23:49 +0900 |
| commit | 2795fe457909c687f668d020ef65d52abc3182fb (patch) | |
| tree | 0a52e4e4d854333496fcc487560c93c3de5d5eb5 /src/docs/en-US | |
| parent | Merge branch 'develop' (diff) | |
| parent | 12.96.0 (diff) | |
| download | misskey-2795fe457909c687f668d020ef65d52abc3182fb.tar.gz misskey-2795fe457909c687f668d020ef65d52abc3182fb.tar.bz2 misskey-2795fe457909c687f668d020ef65d52abc3182fb.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/docs/en-US')
50 files changed, 0 insertions, 2241 deletions
diff --git a/src/docs/en-US/admin/disable-timelines.md b/src/docs/en-US/admin/disable-timelines.md deleted file mode 100644 index 94ba3dd174..0000000000 --- a/src/docs/en-US/admin/disable-timelines.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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. - -<div class="warn">⚠️ 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.</div> - -Additionally, Administrators / Moderators will be able to continue viewing these timelines even after they have been disabled. diff --git a/src/docs/en-US/admin/faq.md b/src/docs/en-US/admin/faq.md deleted file mode 100644 index a7fbc66a75..0000000000 --- a/src/docs/en-US/admin/faq.md +++ /dev/null @@ -1,5 +0,0 @@ -# Frequently Asked Questions -This document is aimed at server administrators and will list answers for frequently asked questions. - -## "I want to set a default theme for my instance" -There is currently no feature allowing you to set a default theme for your instance. diff --git a/src/docs/en-US/advanced/aiscript.md b/src/docs/en-US/advanced/aiscript.md deleted file mode 100644 index cfcdfebf96..0000000000 --- a/src/docs/en-US/advanced/aiscript.md +++ /dev/null @@ -1,7 +0,0 @@ -# AiScript -AiScript is a scripting language for Misskey. - -<div class="info">ℹ️ AiScript is open source and hosted in a separate repository from Misskey. </a></div> - -## Usage -AiScript documentation such as syntax and built-in functions can be found [here](https://github.com/syuilo/aiscript/tree/master/docs). diff --git a/src/docs/en-US/advanced/api.md b/src/docs/en-US/advanced/api.md deleted file mode 100644 index ef1995b18e..0000000000 --- a/src/docs/en-US/advanced/api.md +++ /dev/null @@ -1,58 +0,0 @@ -# Misskey API - -MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 - -APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 - -## Obtain an access token -基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 - -* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む -* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む - -### 自分自身のアクセストークンを手動発行する -「設定 > API」で、自分のアクセストークンを発行できます。 - -[「APIの使い方」へ進む](#APIの使い方) - -### アプリケーション利用者にアクセストークンの発行をリクエストする -アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 - -#### Step 1 - -Generate UUID.以後これをセッションIDと呼びます。 - -> このセッションIDは毎回生成し、使いまわさないようにしてください。 - -#### Step 2 - -`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 -> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` - -表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: -* `name` ... App name - * > 例: `MissDeck` -* `icon` ... App icon URL - * > 例: `https://missdeck.example.com/icon.png` -* `callback` ... 認証が終わった後にリダイレクトするURL - * > 例: `https://missdeck.example.com/callback` - * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます -* `permission` ... App permissions - * > 例: `write:notes,write:following,read:drive` - * 要求する権限を`,`で区切って列挙します - * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます - -#### Step 3 -ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 - -レスポンスに含まれるプロパティ: -* `token` ... User access token -* `user` ... User info - -[「APIの使い方」へ進む](#APIの使い方) - -## API usage -**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。There is no REST support.** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 - -* [API Reference](/api-doc) -* [Streaming API](./stream) diff --git a/src/docs/en-US/advanced/create-plugin.md b/src/docs/en-US/advanced/create-plugin.md deleted file mode 100644 index 3b8763dfd8..0000000000 --- a/src/docs/en-US/advanced/create-plugin.md +++ /dev/null @@ -1,74 +0,0 @@ -# New Plugin -Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 - -## Metadata -プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 - -### name -Plugin name - -### author -Plugin author - -### version -プラグインバージョン。A number must be specified. - -### description -Plugin description - -### permissions -プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 - -### config -プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 - -#### type -設定値の種類を表す文字列。以下から選択します。 string number boolean - -#### label -ユーザーに表示する設定名 - -#### description -設定の説明 - -#### default -設定のデフォルト値 - -## API Reference -AiScript標準で組み込まれているAPIは掲載しません。 - -### 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/docs/en-US/advanced/develop-bot.md b/src/docs/en-US/advanced/develop-bot.md deleted file mode 100644 index c6a312e79e..0000000000 --- a/src/docs/en-US/advanced/develop-bot.md +++ /dev/null @@ -1,6 +0,0 @@ -# Create a bot -[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - -- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 - -Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/en-US/advanced/reversi-bot.md b/src/docs/en-US/advanced/reversi-bot.md deleted file mode 100644 index f1be888cb6..0000000000 --- a/src/docs/en-US/advanced/reversi-bot.md +++ /dev/null @@ -1,160 +0,0 @@ -# MisskeyリバーシBotの開発 -Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 - -1. `games/reversi`ストリームに以下のパラメータを付けて接続する: - * `i`: botアカウントのAPIキー - -2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる - * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている - -3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する - -4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: - * `i`: botアカウントのAPIキー - * `game`: `game`の`id` - -5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う - -6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する - -7. ゲームが開始すると、`started`イベントが流れてくる - * イベントの中身にはゲーム情報が含まれている - -8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) - -9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる - * `color`として石の色が含まれている - * `pos`として位置情報が含まれている - -## 位置の計算法 -8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: -``` -+--+--+--+--+--+--+--+--+ -| 0| 1| 2| 3| 4| 5| 6| 7| -+--+--+--+--+--+--+--+--+ -| 8| 9|10|11|12|13|14|15| -+--+--+--+--+--+--+--+--+ -|16|17|18|19|20|21|22|23| -... -``` - -### X,Y座標 から インデックス に変換する -``` -pos = x + (y * mapWidth) -``` -`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: -``` -mapWidth = map[0].length -``` - -### インデックス から X,Y座標 に変換する -``` -x = pos % mapWidth -y = Math.floor(pos / mapWidth) -``` - -## マップ情報 -マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: -* `(スペース)` ... マス無し -* `-` ... マス -* `b` ... 初期配置される黒石 -* `w` ... 初期配置される白石 - -例えば、4*4の次のような単純なマップがあるとします: -```text -+---+---+---+---+ -| | | | | -+---+---+---+---+ -| | ○ | ● | | -+---+---+---+---+ -| | ● | ○ | | -+---+---+---+---+ -| | | | | -+---+---+---+---+ -``` - -この場合、マップデータはこのようになります: -```javascript -['----', '-wb-', '-bw-', '----'] -``` - -## ユーザーにフォームを提示して対話可能Botを作成する -ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 - -フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: -```javascript -{ - type: 'init-form', - body: [フォームコントロールの配列] -} -``` - -フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: -```javascript -{ - id: 'switch1', - type: 'switch', - label: 'Enable hoge', - value: false -} -``` -`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 - -### フォームの操作を受け取る -ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: -```javascript -{ - id: 'switch1', - value: true -} -``` - -### フォームコントロールの種類 -#### Switch -type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 - -##### プロパティ -`label` ... スイッチに表記するテキスト。 - -#### ラジオボタン -type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 - -##### プロパティ -`items` ... ラジオボタンの選択肢。例: -```javascript -items: [{ - label: '弱', - value: 1 -}, { - label: '中', - value: 2 -}, { - label: '強', - value: 3 -}] -``` - -#### スライダー -type: `slider` スライダーを表示します。 - -##### プロパティ -`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 - -#### テキストボックス -type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 - -## ユーザーにメッセージを表示する -設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: -```javascript -{ - type: 'message', - body: { - text: 'メッセージ内容', - type: 'メッセージの種類' - } -} -``` -メッセージの種類: `success`, `info`, `warning`, `error`。 - -## 投了する -投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 diff --git a/src/docs/en-US/advanced/share-page.md b/src/docs/en-US/advanced/share-page.md deleted file mode 100644 index 9bec559cda..0000000000 --- a/src/docs/en-US/advanced/share-page.md +++ /dev/null @@ -1,54 +0,0 @@ -# シェアページ -`/share`を開くと、共有用の投稿フォームを開くことができます。 ここではシェアページで利用できるクエリ文字列の一覧を示します。 - -## クエリ文字列一覧 -### Text - -<dl> -<dt>title</dt> -<dd>タイトルです。本文の先頭に[ … ]と挿入されます。</dd> -<dt>text</dt> -<dd>本文です。</dd> -<dt>url</dt> -<dd>URLです。末尾に挿入されます。</dd> -</dl> - -### リプライ情報 -以下のいずれか - -<dl> -<dt>replyId</dt> -<dd>リプライ先のノートid</dd> -<dt>replyUri</dt> -<dd>リプライ先のUrl(リモートのノートオブジェクトを指定)</dd> -</dl> - -### Renote情報 -以下のいずれか - -<dl> -<dt>renoteId</dt> -<dd>Renote先のノートid</dd> -<dt>renoteUri</dt> -<dd>Renote先のUrl(リモートのノートオブジェクトを指定)</dd> -</dl> - -### Visiblility -※specifiedに相当する値はvisibility=specifiedとvisibleAccts/visibleUserIdsで指定する - -<dl> -<dt>visibility</dt> -<dd>公開範囲 ['public' | 'home' | 'followers' | 'specified']</dd> -<dt>localOnly</dt> -<dd>0(false) or 1(true)</dd> -<dt>visibleUserIds</dt> -<dd>specified時のダイレクト先のユーザーid カンマ区切りで</dd> -<dt>visibleAccts</dt> -<dd>specified時のダイレクト先のacct(@?username[@host]) カンマ区切りで</dd> -</dl> - -### Files -<dl> -<dt>fileIds</dt> -<dd>添付したいファイルのid(カンマ区切りで)</dd> -</dl> diff --git a/src/docs/en-US/advanced/stream.md b/src/docs/en-US/advanced/stream.md deleted file mode 100644 index 16b15c7619..0000000000 --- a/src/docs/en-US/advanced/stream.md +++ /dev/null @@ -1,350 +0,0 @@ -# Streaming API - -ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 - -## ストリームに接続する - -ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 - -以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: -``` -%WS_URL%/streaming?i=xxxxxxxxxxxxxxx -``` - -認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 - -<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> - ---- - -認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: - -``` -%WS_URL%/streaming -``` - ---- - -ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 - -**ストリームでのやり取りはすべてJSONです。** - -## Channels -MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 - -ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 - -### チャンネルに接続する -チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: - -```json -{ - type: 'connect', - body: { - channel: 'xxxxxxxx', - id: 'foobar', - params: { - ... - } - } -} -``` - -ここで、 -* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 -* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 -* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 - -<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> - -### チャンネルからのメッセージを受け取る -例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 - -チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 -* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 -* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 - -### チャンネルに向けてメッセージを送信する -チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 - -チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 -* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 -* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 - -### チャンネルから切断する -チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: - -```json -{ - type: 'disconnect', - body: { - id: 'foobar' - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 - -## ストリームを経由してAPIリクエストする - -ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 - -ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: -```json -{ - type: 'api', - body: { - id: 'xxxxxxxxxxxxxxxx', - endpoint: 'notes/create', - data: { - text: 'yee haw!' - } - } -} -``` - -ここで、 -* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 -* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 -* `data`には、エンドポイントのパラメータを含めます。 - -<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> - -### レスポンスの受信 - -APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 - -```json -{ - type: 'api:xxxxxxxxxxxxxxxx', - body: { - ... - } -} -``` - -ここで、 -* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 -* `body`には、レスポンスが含まれています。 - -## 投稿のキャプチャ - -Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 - -例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 - -しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 - -この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 - -### 投稿をキャプチャする - -投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: - -```json -{ - type: 'subNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -ここで、 -* `id`にキャプチャしたい投稿の`id`を設定します。 - -このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 - -例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: - -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -ここで、 -* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 -* `body`内の`type`に、イベントの種類が設定されます。 -* `body`内の`body`に、イベントの詳細が設定されます。 - -#### イベントの種類 - -##### `reacted` -その投稿にリアクションがされた時に発生します。 - -* `reaction`に、リアクションの種類が設定されます。 -* `userId`に、リアクションを行ったユーザーのIDが設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -##### `deleted` -その投稿が削除された時に発生します。 - -* `deletedAt`に、削除日時が設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'deleted', - body: { - deletedAt: '2018-10-22T02:17:09.703Z' - } - } -} -``` - -##### `pollVoted` -その投稿に添付されたアンケートに投票された時に発生します。 - -* `choice`に、選択肢IDが設定されます。 -* `userId`に、投票を行ったユーザーのIDが設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'pollVoted', - body: { - choice: 2, - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -### 投稿のキャプチャを解除する - -その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 - -次のメッセージを送信します: - -```json -{ - type: 'unsubNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -ここで、 -* `id`にキャプチャを解除したい投稿の`id`を設定します。 - -このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 - -# チャンネル一覧 -## `main` -アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `renote` -自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 - -#### `mention` -誰かからメンションされたときに発生するイベントです。 - -#### `readAllNotifications` -自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 - -#### `meUpdated` -自分の情報が更新されたことを表すイベントです。 - -#### `follow` -自分が誰かをフォローしたときに発生するイベントです。 - -#### `unfollow` -自分が誰かのフォローを解除したときに発生するイベントです。 - -#### `followed` -自分が誰かにフォローされたときに発生するイベントです。 - -## `homeTimeline` -ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -タイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `localTimeline` -ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `hybridTimeline` -ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `globalTimeline` -グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/en-US/aiscript.md b/src/docs/en-US/aiscript.md deleted file mode 100644 index 20bd18f6e4..0000000000 --- a/src/docs/en-US/aiscript.md +++ /dev/null @@ -1,4 +0,0 @@ -# AiScript - -## Functions -Behave as pass by value by default. diff --git a/src/docs/en-US/api.md b/src/docs/en-US/api.md deleted file mode 100644 index adec20ec61..0000000000 --- a/src/docs/en-US/api.md +++ /dev/null @@ -1,58 +0,0 @@ -# Misskey API - -Using the Misskey API you can develop Misskey clients, Webservices integrating with Misskey, Bots (later called "Applications" here) etc. The streaming API also exists, so it is also possible to create real-time applications. - -To starting using the API, you first need to get an access token. This page will explain how to acquire an access token and then give basic API usage instructions. - -## Obtaining an access token -Fundamentally, all API requests require an access token. The method of acquiring such an access token will vary depending on whether you yourself are sending API requests or requests are being sent through an application used by an end-user. - -* In case of the former: Move on to [ "Manually issuing an access token for your own account" ](#自分自身のアクセストークンを手動発行する) -* In case of the latter: Move on to [ "Requesting the application user to generate an access token" ](#アプリケーション利用者にアクセストークンの発行をリクエストする) - -### Manually issuing your own access token -You can create an access token for your own account in Settings > API. - -[Proceed to using the API.](#APIの使い方) - -### Requesting the application user to generate an access token -To obtain an access token of the end user's account for your app, request permissions for it via the below process. - -#### Step 1 - -Generate a UUID.We will call it the session ID from here on. - -> The same session ID should not be used for multiple plugins, so please generate a new UUID for each access token. - -#### Step 2 - -Open the URL `{_URL_}/miauth/{session}` in the user's browser.Replace the `{session}` part with your previously generated session ID. -> E.g.: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` - -When opening this URL, you can set various settings via query prameters: -* `name` ... Application name - * > E.g.: `MissDeck` -* `icon` ... Icon URL of the application - * > E.g.: `https://missdeck.example.com/icon.png` -* `callback` ... URL to redirect to after authorization - * > E.g.: `https://missdeck.example.com/callback` - * In the redirect a `session` query parameter containing the session ID will be attached. -* `permission` ... Permissions requested by the application - * > E.g.: `write:notes,write:following,read:drive` - * List the requested permissions separated with a `,` character. - * You can check all available permissions at the [API Reference](/api-doc) - -#### Step 3 -If you send a POST request to `{_URL_}/api/miauth/{session}/check` after the user has authorized the access token, the response will be a JSON object containing said token. - -Properties included in the response: -* `token` ... Access token of the user -* `user` ... User data - -[Proceed to using the API.](#APIの使い方) - -## Using the API -**All API requests are POST, and all request and response data is formatted in JSON.There is no REST support.** The access token must be included in the request parameter called `i`. - -* [API Reference](/api-doc) -* [Streaming API](./stream) diff --git a/src/docs/en-US/create-plugin.md b/src/docs/en-US/create-plugin.md deleted file mode 100644 index 1544c0d850..0000000000 --- a/src/docs/en-US/create-plugin.md +++ /dev/null @@ -1,74 +0,0 @@ -# New Plugin -If you use the plugin function of the Misskey web client, you can expand the web client with a variety of different functionality. This page will list metadata definitions for plugin creation as well as an AiScript API reference for plugins. - -## Metadata -Plugins must define default plugin metadata via the AiScript metadata format. Metadata is an object containing the following properties: - -### name -Plugin name - -### author -Plugin author - -### version -Plugin version.Please enter a number. - -### description -Plugin description - -### permissions -Permissions required by the plugin.Used when making requests to the Misskey API. - -### config -An object representing the plugin's settings. Keys represent setting names and values are any of the below properties. - -#### type -A string representing the setting's value type.Selected from one of the below types. string number boolean - -#### label -Setting name to do display to the user - -#### description -Description of the setting - -#### default -Default value of the setting - -## API Reference -API built directly into the AiScript standard itself will not be listed. - -### Mk:dialog(title text type) -Display a dialog.You can select one of the below types. info success warn error question If no type is selected, "info" is chosen by default. - -### Mk:confirm(title text type) -Display a confirmation dialog.You can select one of the below types. info success warn error question If no type is selected, "question" is chosen by default. If the user presses "OK" true will be returned, if they press "Cancel" false will be returned. - -### Mk:api(endpoint params) -Sends a request to the Misskey API.Specify the endpoint name as the first parameter and the request parameters as the second argument. - -### Mk:save(key value) -Persistently saves any given value under a given key.The saved value will remain even after the AiScript context ends and can be loaded with Mk:load. - -### Mk:load(key) -Reads the value of the given key that was previously saved with Mk:save. - -### Plugin:register_post_form_action(title fn) -Add an action to the post form.Enter an action name as the first parameter, and a callback function for when the action is executed as second parameter. A post form object is passed to the callback function as first argument. - -### Plugin:register_note_action(title fn) -Add an item to the note menu.Enter an item name as the first parameter, and a callback function for when the menu item is pressed as second parameter. A note object of the targeted note is passed to the callback function as first parameter. - -### Plugin:register_user_action(title fn) -Add an item to the user menu.Enter an item name as the first parameter, and a callback function for when the menu item is pressed as second parameter. A user object of the selected user is passed to the callback function as first parameter. - -### Plugin:register_note_view_interruptor(fn) -Modify the data of notes displayed in the UI. A note object is passed to the callback function as first parameter. The note will be modified based on the note object returned by the callback function. - -### Plugin:register_note_post_interruptor(fn) -Modify the data of notes about to be posted. A note object is passed to the callback function as first parameter. The note to be posted will be modified based on the note object returned by the callback function. - -### Plugin:open_url(url) -Opens the URL given as first argument in a new browser tab. - -### Plugin:config -An object containing the plugin settings.The values entered in the plugin definition are saved under the setting keys. diff --git a/src/docs/en-US/custom-emoji.md b/src/docs/en-US/custom-emoji.md deleted file mode 100644 index 0bc94296d4..0000000000 --- a/src/docs/en-US/custom-emoji.md +++ /dev/null @@ -1,2 +0,0 @@ -# Custom Emoji -Custom emojis are a function that allows images uploaded to the server to be used like emojis. They can be used in notes, reactions, chat, your profile, your username as well as other places. To use custom emojis in the above mentioned places, press the Emoji picker button (if present) or type a `:` and emoji suggestions will appear. If a string that looks like `:foo:` is found in any text, then the `foo` portion is interpreted as a custom emoji name and will be replaced with said custom emoji picture when displayed. diff --git a/src/docs/en-US/deck.md b/src/docs/en-US/deck.md deleted file mode 100644 index a35f3cad96..0000000000 --- a/src/docs/en-US/deck.md +++ /dev/null @@ -1,18 +0,0 @@ -# Deck - -Deck is one of the available UI types.By displaying several views called "Columns" next to another, it provides high customizability and can display high amounts of information at once. - -## Adding columns -You can add additional columns by right-clicking the Deck background and pressing "Add column". - -## Moving columns -You can switch the positions of two columns via drag-and-dropping them or change a column's position from its column menu (accesible by right-clicking the column header). - -## Horizontally dividing columns -Columns can not only be arranged vertically, but also horizontally. If you click "Stack on left column" when opening the column menu, the column will be moved below the column to the left of the current one. To cancel the stacking, press the "Pop to the right" button in the column menu. - -## Column settings -You can edit individual column settings by clicking "Edit" in the column menu.You can edit a column's name and width. - -## Deck settings -Deck-related settings can be found in [settings/deck](/settings/deck). diff --git a/src/docs/en-US/features/antenna.md b/src/docs/en-US/features/antenna.md deleted file mode 100644 index 6c4fd8ad66..0000000000 --- a/src/docs/en-US/features/antenna.md +++ /dev/null @@ -1,4 +0,0 @@ -# Antennas -Antennas are a feature through which you can automatically collect notes meeting freely specified conditions. - -If a note meeting the conditions of an existing antenna is posted, this note will be added to the timeline of that antenna in real-time. diff --git a/src/docs/en-US/features/custom-emoji.md b/src/docs/en-US/features/custom-emoji.md deleted file mode 100644 index 2bef4a563e..0000000000 --- a/src/docs/en-US/features/custom-emoji.md +++ /dev/null @@ -1,2 +0,0 @@ -# Custom Emoji -カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/en-US/features/deck.md b/src/docs/en-US/features/deck.md deleted file mode 100644 index 73e9efdaaf..0000000000 --- a/src/docs/en-US/features/deck.md +++ /dev/null @@ -1,18 +0,0 @@ -# Deck - -デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 - -## カラムの追加 -デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 - -## カラムの移動 -カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 - -## カラムの水平分割 -カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 - -## カラムの設定 -カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 - -## デッキの設定 -デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/en-US/features/drive.md b/src/docs/en-US/features/drive.md deleted file mode 100644 index c4a51f6e8e..0000000000 --- a/src/docs/en-US/features/drive.md +++ /dev/null @@ -1,17 +0,0 @@ -# Drive -Drive is a feature to manage the files you have uploaded to Misskey. - -In addition to being able to upload files to your Drive from the [Drive page](/my/drive), any images set as your avatar or those included in your notes will be added to your Drive. - -<div class="warn">⚠️ By deleting a file from your Drive, any note it is attached to will also be deleted.</div> - -You can always download any file uploaded to your Drive, and also reuse it during the composition of new notes by selecting "Attach from Drive" before posting. - -In addition, you can create folders within your Drive to easen the organization multiple files. - -## NSFW -<div class="info">ℹ️ This text section itself is not NSFW</div> - -NSFW ("Not Safe For Work") is a setting that can be applied to files in your Drive. Images with this setting will not be displayed unless explicitly requested by the viewing user. This setting is for example used to prevent an image that would not be suitable at places like one's workplace or in public from being abrubtly displayed to other users. - -This flag can be switched off and on, and may be manually set for images by the discretion of a Moderator. diff --git a/src/docs/en-US/features/favorite.md b/src/docs/en-US/features/favorite.md deleted file mode 100644 index 39e3ceadf4..0000000000 --- a/src/docs/en-US/features/favorite.md +++ /dev/null @@ -1,4 +0,0 @@ -# Favorites -A feature to register a [note](./node) as part of favorites. These notes can then be viewed in a list in your [Favorites page](./my/favorites). Setting a note as favorite does not notify the author of the note, and your favorites are only visible to you. - -To register a note as part of your favorites, click the "Favorit" button in the menu of the respective note.To remove a note from your favorites, click the "Unfavorite" button in the same menu. diff --git a/src/docs/en-US/features/follow.md b/src/docs/en-US/features/follow.md deleted file mode 100644 index 3e71012b5f..0000000000 --- a/src/docs/en-US/features/follow.md +++ /dev/null @@ -1,2 +0,0 @@ -# Following -ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/en-US/features/keyboard-shortcut.md b/src/docs/en-US/features/keyboard-shortcut.md deleted file mode 100644 index 75018e81f2..0000000000 --- a/src/docs/en-US/features/keyboard-shortcut.md +++ /dev/null @@ -1,66 +0,0 @@ -# Keyboard shortcuts - -## Global -These shortcuts are usually available anywhere. -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Why this key?</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>Create a note</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> - <tr><td><kbd class="key">T</kbd></td><td>Focus the latest note</td><td><b>T</b>imeline, <b>T</b>op</td></tr> - <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>Show/hide notifications</td><td><b>N</b>otifications</td></tr> - <tr><td><kbd class="key">S</kbd></td><td>Search</td><td><b>S</b>earch</td></tr> - <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>Show help</td><td><b>H</b>elp</td></tr> - </tbody> -</table> - -## 投稿にフォーカスされた状態 -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Why this key?</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> - <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> - <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> - <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> - <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> - <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> - <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> - <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> - <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> - </tbody> -</table> - -## Renoteフォーム -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Why this key?</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">Enter</kbd></td><td>Renote</td><td>-</td></tr> - <tr><td><kbd class="key">Q</kbd></td><td>Expand form</td><td><b>Q</b>uote</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>Close form</td><td>-</td></tr> - </tbody> -</table> - -## リアクションフォーム -デフォルトで「👍」にフォーカスが当たっている状態です。 -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Why this key?</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> - <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> - <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> - </tbody> -</table> diff --git a/src/docs/en-US/features/mfm.md b/src/docs/en-US/features/mfm.md deleted file mode 100644 index 5be2df4f30..0000000000 --- a/src/docs/en-US/features/mfm.md +++ /dev/null @@ -1,12 +0,0 @@ -# MFM -MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 - -## MFMが使用可能な場所の例 -- ノート本文 -- CW注釈 -- ユーザーの名前 -- ユーザーの自己紹介 - -## 開発者向け情報 -MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 -- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/en-US/features/mute-and-block.md b/src/docs/en-US/features/mute-and-block.md deleted file mode 100644 index a9e8fcc1cd..0000000000 --- a/src/docs/en-US/features/mute-and-block.md +++ /dev/null @@ -1,41 +0,0 @@ -# Mutes and Blocks -好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 - -<div class="info">ℹ️ ミュートとブロックは併用できます。</div> - -<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div> - -設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 - -## Mute -ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - -- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) -- そのユーザーからの通知 -- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 -- など - -ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 - -<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div> - -## Block -ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - -- フォローする -- ユーザーリストに追加する -- 返信する、Renoteする -- リアクションする、アンケートに投票する -- メッセージを送信する -- など - -また、 - -- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 -- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 - -ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 - -<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div> - -<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div> diff --git a/src/docs/en-US/features/mute.md b/src/docs/en-US/features/mute.md deleted file mode 100644 index 306beee570..0000000000 --- a/src/docs/en-US/features/mute.md +++ /dev/null @@ -1,13 +0,0 @@ -# Mute - -ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - -* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) -* そのユーザーからの通知 -* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - -ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 - -ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 - -設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/en-US/features/note.md b/src/docs/en-US/features/note.md deleted file mode 100644 index a835cf09a4..0000000000 --- a/src/docs/en-US/features/note.md +++ /dev/null @@ -1,54 +0,0 @@ -# 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. - -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). -<div class="info">ℹ️ 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.</div> -<div class="info">ℹ️You can also press <kbd class="key">Ctrl + Enter</kbd> within the text box to publish your note.</div> - -## 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. -<div class="warn">⚠️If you've set your note's visibility to Followers-only or Direct, then renoting it will not be possible</div> - -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). -<div class="warn">⚠️ This visibility will be unavailable if your account is <a href="./silence">silenced</a>.</div> - -### 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 -<table> - <tr><th></th><th>Public</th><th>Home</th><th>Followers</th><th>Direct</th></tr> - <tr><th>LTL/STL/GTL of Followers</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> - <tr><th>LTL/STL/GTL of Others</th><td>✔</td><td></td><td></td><td></td></tr> -</table> - -## 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". 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/docs/en-US/features/pages.md b/src/docs/en-US/features/pages.md deleted file mode 100644 index dc5134b940..0000000000 --- a/src/docs/en-US/features/pages.md +++ /dev/null @@ -1,10 +0,0 @@ -# Pages - -## Variables -Use variables to create dynamic pages. Put <b>{ variable-name }</b> in your content to embed the value. For example, if a variable named "thing" has the value <b>ai</b>, the string <b>Hello { thing } world!</b> turns into <b>Hello ai world!</b>. - -Variables are evaluated from top to bottom, so referencing variables before declaring is not possible. For example, when declaring the three variables <b>A, B, C</b> in this order, you can use <b>A</b> or <b>B</b> in <b>C</b>, but you cannot use <b>B</b> or <b>C</b> in <b>A</b>. - -ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 - -関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/en-US/features/reaction.md b/src/docs/en-US/features/reaction.md deleted file mode 100644 index 41e9339234..0000000000 --- a/src/docs/en-US/features/reaction.md +++ /dev/null @@ -1,11 +0,0 @@ -# Reactions -他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 - -## リアクションピッカーのカスタマイズ -ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 - -## リモート投稿へのリアクションについて -リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 - -## リモートからのリアクションについて -リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/en-US/features/silence.md b/src/docs/en-US/features/silence.md deleted file mode 100644 index fb588247ae..0000000000 --- a/src/docs/en-US/features/silence.md +++ /dev/null @@ -1,6 +0,0 @@ -# Silence -"Silence" refers to one of the statuses an account may be in. - -If an account is silenced, the visibility of their notes cannot be set to "Public" anymore. A silenced user will still be able to use the "Home", "Followers" and "Direct" visibility, so their posts will still be visible to their followers in addition to being able to directly visit their profile page, but their posts will not show up on the GTL (Federated timeline) or LTL (Local timeline) anymore. - -Whether an account is silenced or not can be controlled by the moderators of a server. diff --git a/src/docs/en-US/features/theme.md b/src/docs/en-US/features/theme.md deleted file mode 100644 index e9b3406c4c..0000000000 --- a/src/docs/en-US/features/theme.md +++ /dev/null @@ -1,68 +0,0 @@ -# Themes - -テーマを設定して、Misskeyクライアントの見た目を変更できます。 - -## Configuring the theme -設定 > テーマ - -## Creating a theme -テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 -``` 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` ... A unique theme ID. UUID Recommended. -* `name` ... Theme name -* `author` ... The author of the theme (you!) -* `desc` ... The description of the theme (optional) -* `base` ... 明るいテーマか、暗いテーマか - * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - * The theme will be inheriting the default values of the theme specified here. -* `props` ... テーマのスタイル定義。これから説明します。 - -### テーマのスタイル定義 -`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`があると見なされます。 - -#### バリューで使える構文 -* 16進数で表された色 - * 例: `#00ff00` -* `rgb(r, g, b)`形式で表された色 - * 例: `rgb(0, 255, 0)` -* `rgb(r, g, b, a)`形式で表された透明度を含む色 - * 例: `rgba(0, 255, 0, 0.5)` -* 他のキーの値の参照 - * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - * 例: `@panel` -* 定数(後述)の参照 - * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - * 例: `$main` -* 関数(後述) - * `:{関数名}<{引数}<{色}` - -#### Constant -「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 - -#### Functions -wip diff --git a/src/docs/en-US/features/timeline.md b/src/docs/en-US/features/timeline.md deleted file mode 100644 index a98d2b8a29..0000000000 --- a/src/docs/en-US/features/timeline.md +++ /dev/null @@ -1,31 +0,0 @@ -# Timeline -[Notes](./note) are shown in the timelines. There are several kinds of timelines as mentioned below and each of them displays the different set of notes. Servers might disable some of them. - -## Home -This is where you see posts from users you follow. Often abbreviated as HTL. - -## Local -This is where you see all the posts from the local users, except those with "Home" visibility. Often abbreviated as LTL. - -## Social -This is where you see the posts from users you follow AND all the posts from the local users, except those with "Home" visibility. Often abbreviated as STL. - -## Global -This is where you see the posts from the local users and the remote users in federated servers, except those with "Home" visibility. Often abbreviated as GTL. - -## Comparison -| Source | | | Timeline | | | -| ----------------------------- | ----------- | ---- | -------- | ------ | ------ | -| Users | Visiblility | Home | Local | Social | Global | -| Local users you follow | Publish | ✔ | ✔ | ✔ | ✔ | -| | Home | ✔ | | ✔ | | -| | Followers | ✔ | ✔ | ✔ | ✔ | -| Remote users you follow | Publish | ✔ | | ✔ | ✔ | -| | Home | ✔ | | ✔ | | -| | Followers | ✔ | | ✔ | ✔ | -| Local users you don't follow | Publish | | ✔ | ✔ | ✔ | -| | Home | | | | | -| | Followers | | | | | -| Remote users you don't follow | Publish | | | | ✔ | -| | Home | | | | | -| | Followers | | | | | diff --git a/src/docs/en-US/features/widgets.md b/src/docs/en-US/features/widgets.md deleted file mode 100644 index ba301273c5..0000000000 --- a/src/docs/en-US/features/widgets.md +++ /dev/null @@ -1,7 +0,0 @@ -# Widgets -Widgets are small information displays or operational parts that can be added to the Misskey UI. - -To edit which widgets are displayed, enter the Widget editing mode.Entering this mode can differ based on the used UI. In it you can add, delete, reorganize or change the configuration of individual widgets. - -## List of available widgets -todo diff --git a/src/docs/en-US/features/word-mute.md b/src/docs/en-US/features/word-mute.md deleted file mode 100644 index 77283c8620..0000000000 --- a/src/docs/en-US/features/word-mute.md +++ /dev/null @@ -1,20 +0,0 @@ -# Word mute -Through setting up word mutes, you can make notes satisfying set 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 -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. - -## 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: - -* Only new notes created after configuration will be affected by the mute. -* If the conditions are changed, previously hard muted notes will still remain muted. -* Timelines will not be filled with "(...) said something". -* Hard mutes will function even for apps without functionality for soft mutes. diff --git a/src/docs/en-US/follow.md b/src/docs/en-US/follow.md deleted file mode 100644 index 781729ebfb..0000000000 --- a/src/docs/en-US/follow.md +++ /dev/null @@ -1,2 +0,0 @@ -# Following -If you follow a user, the posts of that user will appear on your timeline.However, replies from them to other users will not be displayed. To follow a user, click the "Follow" button on their user page.To stop following a user, click the button once more. diff --git a/src/docs/en-US/general/apps.md b/src/docs/en-US/general/apps.md deleted file mode 100644 index 5be276ff35..0000000000 --- a/src/docs/en-US/general/apps.md +++ /dev/null @@ -1,6 +0,0 @@ -# List of third-party applications -## Clients -todo - -## Linked services -todo diff --git a/src/docs/en-US/general/changelog.md b/src/docs/en-US/general/changelog.md deleted file mode 100644 index 5a14f9d18e..0000000000 --- a/src/docs/en-US/general/changelog.md +++ /dev/null @@ -1,5 +0,0 @@ -# Changelog -<div class="info">ℹ️ This changelog reflects this server's latest version only.To read the changelog for the newest release of Misskey, please check out <a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>.</div> - -<!-- For translators: Do not edit these comments. --> -<!--[CHANGELOG]--> diff --git a/src/docs/en-US/general/faq.md b/src/docs/en-US/general/faq.md deleted file mode 100644 index 32d3632983..0000000000 --- a/src/docs/en-US/general/faq.md +++ /dev/null @@ -1,28 +0,0 @@ -# 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). - -## "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). - -However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). - -## "Can't I log in through a Mastodon client?" -As Misskey is not compatible with the Mastodon API, barring some exceptions, using Mastodon clients to log into Misskey is not possible. - -## "What do I do when I want to follow users from other servers?" -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). - -## "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. - -## "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). - -## Which service does the note translation function use? -[DeepL](https://www.deepl.com/) is being used for this. diff --git a/src/docs/en-US/general/glossary.md b/src/docs/en-US/general/glossary.md deleted file mode 100644 index 12156134a1..0000000000 --- a/src/docs/en-US/general/glossary.md +++ /dev/null @@ -1,89 +0,0 @@ -# Glossary -A glossary about terms related to Misskey. - -## ActivityPub -The protocol (method) used for enabling the distributed nature of Misskey.By adhering to this protocol, communication with other servers that also follow it becomes possible, forming what is known as the Fediverse. - -## AiScript -A programming language available for use on Misskey.For details, see [here.](../advanced/aiscript) - -## API -An interface that can be used for interacting with Misskey through a program, available for each individiual instance.For details, see [here.](../advanced/api) - -## Bot -An account that is being controlled by a program. - -## CW -An abbreviation of "Content Warning".A feature to hide the content of a note unless explicitly requested to be shown by a user.Mainly used to hide the content of long notes or to prevent posting spoilers publicly. - -## Fediverse -A network of servers composed of various different platforms that communicate with each other, including Misskey. - -## GTL -An abbreviation for "Global TimeLine".For details about timelines, please see [here](../features/timeline). - -## HTL -An abbreviation for "Home TimeLine".For details about timelines, please see [here](../features/timeline) - -## LTL -An abbreviation for "Local TimeLine".For details about timelines, please see [here](../features/timeline) - -## MFM -An abbreviation for "Misskey Flavored Markdown", a markdown language available for use on Misskey.For details, see [here.](../features/mfm) - -## NSFW -An abbreviation for "Not Safe For Work".A feature to tag an image as "NSFW" and hide it unless explicitly requested to be shown by a user. - -## Renote -The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts.For details, see [here.](../features/note) - -## STL -An abbreviation for "Social TimeLine".For details about timelines, please see [here](../features/timeline) - -## Ai -Ai is Misskey's official mascot. - -## Active users -Those users amongst all existing ones who are continually using their account. - -## Instance -todo - -## Custom Emoji -Emoji provided by your server.Emoji that are not specifically provided by your server but are available by default are called "Unicode Emoji". - -## Control Panel -todo - -## Server -todo - -## Silence -A state in which the visibility of the notes by said user cannot be set to "Public" anymore.Can be set for individual users by the discretion of Moderators.For details, see [here.](../features/silence) - -## Job Queue -A system used for sequentially broadcasting activities to other servers etc. - -## Suspend -A state which makes the account of a user unusable. - -## Drive -A feature allowing users to organize the files they have uploaded to Misskey.For details, see [here.](../features/drive) - -## Notes -Content which may include text, images, surveys and others that has been posted to Misskey.For details, see [here.](../features/note) - -## Misskeyist -Users of Misskey. - -## Moderator -Users with the authority to manage the community of a server by deactivating spam accounts, silencing users, deleting inappropriate posts, etc. - -## Remote -Used in context of servers separate from your own.Also used as prefix in other words like "Remote user".The opposite of "Local". - -## Federation -The act of sharing information created on one's server with other servers. - -## Local -Used in context of your own server.Also used as prefix in other words like "Local users", "local timeline".The opposite of "Remote". diff --git a/src/docs/en-US/general/links.md b/src/docs/en-US/general/links.md deleted file mode 100644 index 11a44e894f..0000000000 --- a/src/docs/en-US/general/links.md +++ /dev/null @@ -1,12 +0,0 @@ -# Links - -## Websites -- [Official Discord](https://discord.gg/Wp8gVStHW3) - The official Discord server for Misskey -- [Misskey Forum](https://forum.misskey.io/) - A forum used for questions surrounding Misskey - -## Accounts -- [@repo@misskey.io](https://misskey.io/@repo) - A bot that publishes posts about updates to the Misskey repository - -## Libraries -- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - A Misskey SDK for JavaScript -- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - A JavaScript implementation of an MFM Parser diff --git a/src/docs/en-US/general/misskey.md b/src/docs/en-US/general/misskey.md deleted file mode 100644 index 8ae8982444..0000000000 --- a/src/docs/en-US/general/misskey.md +++ /dev/null @@ -1,86 +0,0 @@ -# About Misskey - -Misskey is an open-source and distributed platform for microblogging. Development was started in 2014 by syuilo in Japan. It features an abundance of features such as Drive or Reactions as well as a very high UI customizability. - -## History -While Misskey started centered around Bulletin Boards as its main feature, the growth in popularity due to the addition of a timeline that let users post short messages and view them in chronological order lead to a gradual shift in the main focus of development towards this kind of functionality. Misskey was not always a decentralized service, but became decentralized through the adoption of ActivityPub in 2018. Since then, it has become a service that is acknowledged and used by many. -<div class="info">ℹ️ The name "Misskey" comes from a song called "Brain Diver" by a band that syuilo used to listen to at the time called May'n.</div> - -With anyone being able to join its development, Misskey is still continually being actively developed. - -## What does "Distributed" mean? -A <b>Distributed</b> service, also called a <b>Decentralized</b> service, refers to a service which features the division of a community into many servers that all mutually <b>communicate (federate)</b> with each other to share their contents, building a <b>network (Fediverse)</b>. Services for which only one server exists, or for which many independent server exist, are called centralized. Most services fall under the category of centralized, some examples for this are Twitter or Facebook. The advantage of distributed services is being able to select the administration or server theme that suits you freely.It's also possible for you to make your own server.Thanks to the federated nature, you will be able to access the same community, no matter which server you choose. - -## Always Open-Source -Misskey has always been, and will always be, open source.Open source means, simply speaking, <b>making the source code of software (a program) publicly available</b>.This also includes being able to adjust or redistribute the source code in its definition. The entirety of Misskey's source code is [being licensed](https://github.com/misskey-dev) under an open-source license called [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), which means anyone can freely inspect, use, adjust, change or redistribute as they see fit. Open source has many merits, including allowing anyone being able to make changes as they like, to make sure the code does not include any harmful components and being able to easily participate in its development. For realizing the distributed nature of Misskey, this concept of open source is indispensable. Using the same example as before, most profit-oriented services like Twitter, Facebook etc. are not open source. - -<div class="info">ℹ️ Technically speaking, Misskey's source code is being managed via Git, and its repository is being hosted at <a href="https://github.com/misskey-dev" target="_blank">GitHub.</a></div> - -## Joining development and supporting the project -If you like Misskey, please support the project.Supporting the project can be done in many ways, with some of them introduced below.Some of these do not require programming skills, so anyone can feel free to support Misskey their own way.We're always waiting for you. - -### Adding features or fixing bugs -If you possess software engineering skills, you can contribute to the project through editing its source code. For guidelines regarding this, please see [here](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). - -### Participating in discussions -You can contribute by sharing your opinion on new or existing features, as well as by reporting bugs. Such discussions can be held at [GitHub](https://github.com/misskey-dev) or the [Forums](https://forum.misskey.io/) etc. - -### Translating text -Misskey is available in many languages (also called i18n, which is an abbreviation for Internationalization).While the original language is generally japanese, volunteers are translating Misskey into other languages. Helping out with this translation work is also a form of contributing. Misskey uses a service called [Crowdin to manage its translations.](https://crowdin.com/project/misskey) - -### Sharing your impressions -Besides reporting bugs, please also feel free to share positive impressions such as which parts of Misskey you personally like, or things about Misskey that you find fun.As things like these serve as motivation for the developers, it also counts as indirect support for the project. - -### Increasing the number of Misskists -"Misskist" refers to the people using Misskey. By spreading the word about Misskey through introducing it to your acquaintances, the number of Misskists may increase, which serves as motivation for the developers. - -### Making donations -Misskey is not a business, and stays free to use by receiving its earnings through donations from everyone.(Depending on the instance, some revenue may be earned through showing advertisments, but these earnings go straight to the instance administrator and not to the developers of Misskey) As donations make it possible for the project to continue to be developed, they are another way of supporting Misskey. Donations are generally accepted via [Patreon](https://www.patreon.com/syuilo). By donating a certain amount of money, you can also have your username displayed on Misskey's [About page](/about-misskey). - -In addition to this, server administrators are also generally speaking not earning revenue.As operating a server costs money, please also consider supporting your server's administrator. This does not have a direct relation to the development of Misskey, but the existence of servers is what makes up the project, meaning the continued existence of servers is just about as important as that of the project itself. - -## Credits -A list of Misskey's developers and donators can be seen [here](/about-misskey). - -## Frequently Asked Questions -### What is this project aiming to achieve? -To put it bluntly, while this is a bit vague, Misskey is aiming to be a widely-used all-purpose platform. Unlike other platforms, Misskey is not grounded in a specific idea (for example, anti-centralization) or vision and being developed with that in mind, so it's a bit "aimless" in this respect. On the other hand though, this creates a flexibility due to not being bound by a specific direction to go towards. -<!-- TODO: ここにロードマップへのリンク --> - -### Is Misskey being developed by a company? -No.Misskey is being developed by an individual person and not commercialized through connection with any particular company. Development members are generally volunteers. Additionally, while there are some corporate sponsors, development is still centered around the community. - -### Who is managing Misskey? -Due to the distributed nature of Misskey, each individual server has their own administration.Therefore, not all of Misskey is managed by one individual person or company. This means that, as the development team does not control individual servers, for management-related questions you should contact your server's administration instead. You can verify who is managing your individual server on [this page](/about). If you were to create a server, then you would also become its administrator. - -### Which server should I choose? -[You can find an (incomplete) list of servers here.](https://join.misskey.page/ja-JP/instances) Depending on the server, its community or central theme (for example, liking a show) may vary, so if there is a server that suits your interests, joining it would likely be a good choice. Besides that, server size, userbase, country or spoken language, reliance or trust in the administration team and many other things can also serve as criteria. There is however no single server that serves as the official server of Misskey.You also have the choice of creating a new server of your own. - -Generally speaking, no matter which server you join, you will still be able to connect with users from all other servers. - -### How can I create my own server? -Thank you for having an interest in creating a Misskey server. In the current year of 2021 there is no specialized Misskey hosting service, so creating a new server requires a certain amount of knowledge. Please see [here](todo) for more information regarding this. - -### What kind of technology does Misskey use? -As development on Misskey progressed, the technology it has used has changed greatly.In the beginning, it used a combination of MySQL + PHP + jQuery, but currently uses the following. -- Server-side: Node.js -- Database: PostgreSQL, Redis -- UI Framework: Vue.js -- Programming language: TypeScript - -In addition to this, from Misskey derived technology such as MFM or AiScript are also being used. - -### Is this a fork of Mastodon? -No.Misskey is a project completely different from Mastodon or other alike projects. It has been in development for a long time already.However, it only became a distributed network after the appearance of Mastodon. Besides both projects implementing the ActivityPub protocol, there is no relation between the two. - -### 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). - -However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). - -### Where can I download Misskey's logo or icon? -(Coming soon) - -### Who's that cute cat-eared girl that you see sometimes? -It's Misskey's guardian deity, Ai.(They called Ai cute, yay!) -<div class="info">ℹ️ To read more about Ai, check <a href="https://xn--931a.moe/" target="_blank">here</a> (Japanese-only).</div> diff --git a/src/docs/en-US/general/report-issue.md b/src/docs/en-US/general/report-issue.md deleted file mode 100644 index 8df13aef76..0000000000 --- a/src/docs/en-US/general/report-issue.md +++ /dev/null @@ -1,8 +0,0 @@ -# Reporting bugs -If you run into situations you believe to be a bug, please check th [Troubleshooting](./troubleshooting) first. In the case that this doesn't solve your issue, please post to the [Forums](https://forum.misskey.io/) including the below information. By doing so a solution may be found or your situation can be noted down as a bug, which means the development team can work on fixing it. - -## Information to include -- Misskey version (Can be seen on the [About page](/about)) -- Type and version of your used browser -- Type and version of your used operating system -- Steps to reproduce your problem diff --git a/src/docs/en-US/general/troubleshooting.md b/src/docs/en-US/general/troubleshooting.md deleted file mode 100644 index 75051debe6..0000000000 --- a/src/docs/en-US/general/troubleshooting.md +++ /dev/null @@ -1,40 +0,0 @@ -# Troubleshooting -<div class="info">ℹ️ Please also use the <a href="./faq">Frequently asked questions</a> page.</div> - -If you run into a problem, please check this page first. In the case that you can't find your problem here, or the steps described here don't solve your issue, please contact your server's administrator or [Report it as a bug](./report-issue). - -## The client does not start -In most of the cases, this is due your used browser's or operating system's version being outdated. Please try updating your browser or operating system to the latest version and then try again. - -Although this does not happen frequently, if your client will still not start after this, it is possible for the cache to be at fault.In this case, please try clearing your cache and then try again. - -## Pages cannot be loaded -If your client does boot, but you get an error when trying to load a page, please check your network connection for errors.In addition, check that the server you are trying to access is not down. - -Although this does not happen frequently, cases where the cache is at fault can happen.In this case, please try clearing your cache and then try again. - -Any remaining problems are likely related to the server you are trying to access, so please contact its administrator. - -## The client is slow -Please try the following: - -- Activate "Reduce UI animations" in the client settings -- Deactivate "Use blur effect for modals" in the client settings -- Activate hardware acceleration in your browser's settings -- Upgrade the specs of your used device - -## Parts of the UI are weird (For example, the background is transparent) -Broken UI display may be caused by the theme cache system when the UI is changed as part of an update. Pressing "Clear cache" in the settings will fix this. -<div class="warn">⚠️ Specifically clear the "Client's" cache.Don't clear the "Browser's" cache.</div> - -## The blinking light of a notification or Antenna won't go away -A blinking light indicates unread content.In cases where this light won't go away, there is usually unread content that has been pushed away by new incoming content. If you believe to have read all content, but the light still won't go away (likely a bug), you can forcibly mark all content as read via the user settings. - -## The renote button is blocked out -Followers-only notes cannot be renoted. - -## Specific parts of the UI are not being displayed -Problems like these can arise if you are using an Adblocker. For an optimized experience on Misskey, please turn it off. - -## Some parts of the UI are untranslated -In most cases, this is simply a matter of the translation not having been done yet instead of being a bug.Please wait until the translation of this area has been completed. You can alternatively also [participate in translation](./misskey) yourself. diff --git a/src/docs/en-US/keyboard-shortcut.md b/src/docs/en-US/keyboard-shortcut.md deleted file mode 100644 index fdd606f732..0000000000 --- a/src/docs/en-US/keyboard-shortcut.md +++ /dev/null @@ -1,68 +0,0 @@ -# Keyboard shortcuts - -## Global -The shortcuts listed here can be used basically everywhere. -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Origin</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>New post</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> - <tr><td><kbd class="key">T</kbd></td><td>Focus newest post on timeline</td><td><b>T</b>imeline, <b>T</b>op</td></tr> - <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>Show/hide notifications</td><td><b>N</b>otifications</td></tr> - <tr><td><kbd class="key">S</kbd></td><td>Search</td><td><b>S</b>earch</td></tr> - <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>Show help</td><td><b>H</b>elp</td></tr> - </tbody> -</table> - -## Shortcuts related to posts - -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Origin</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>Move focus to above post</td><td>-</td></tr> - <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>Move focus to below post</td><td>-</td></tr> - <tr><td><kbd class="key">R</kbd></td><td>Open reply form</td><td><b>R</b>eply</td></tr> - <tr><td><kbd class="key">Q</kbd></td><td>Open renote form</td><td><b>Q</b>uote</td></tr> - <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>Immediately renote (without opening form)</td><td>-</td></tr> - <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>Open reaction form</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> - <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>React with the emote in nth place of the reaction picker</td><td>-</td></tr> - <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>Add to favorites</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> - <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>Delete post</td><td><b>D</b>elete</tr> - <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>Open post context menu</td><td><b>M</b>ore, <b>O</b>ther</td></tr> - <tr><td><kbd class="key">S</kbd></td><td>Toggle show or hide of content marked with CW</td><td><b>S</b>how, <b>S</b>ee</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>Deselect Note</td><td>-</td></tr> - </tbody> -</table> - -## Renote form - -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Origin</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">Enter</kbd></td><td>Renote</td><td>-</td></tr> - <tr><td><kbd class="key">Q</kbd></td><td>Expand form</td><td><b>Q</b>uote</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>Close form</td><td>-</td></tr> - </tbody> -</table> - -## Reaction form -By default, the "👍" reaction is focused. -<table> - <thead> - <tr><th>Shortcut</th><th>Effect</th><th>Origin</th></tr> - </thead> - <tbody> - <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>Move focus to above reaction</td><td>-</td></tr> - <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>Move focus to below reaction</td><td>-</td></tr> - <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>Move focus to left reaction</td><td>-</td></tr> - <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>Move focus to right reaction</td><td>-</td></tr> - <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>React with focused reaction</td><td>-</td></tr> - <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>React with the reaction at nth place in the reaction picker</td><td>-</td></tr> - <tr><td><kbd class="key">Esc</kbd></td><td>Cancel reacting</td><td>-</td></tr> - </tbody> -</table> diff --git a/src/docs/en-US/mfm.md b/src/docs/en-US/mfm.md deleted file mode 100644 index 2087d076fa..0000000000 --- a/src/docs/en-US/mfm.md +++ /dev/null @@ -1,2 +0,0 @@ -# MFM -MFM stands for Misskey Flavored Markdown and is a Misskey-exclusive text markup language that can be used in many places. For valid MFM syntax, see the [MFM Cheatsheet](/mfm-cheat-sheet). diff --git a/src/docs/en-US/mute.md b/src/docs/en-US/mute.md deleted file mode 100644 index aa1de29c17..0000000000 --- a/src/docs/en-US/mute.md +++ /dev/null @@ -1,13 +0,0 @@ -# Mute - -If you mute a user, the following contents related to that user will not be displayed by Misskey anymore: - -* Posts of that user on the timeline or in the search results (including Renotes or replies to related to these posts) -* Notifications from that user -* Chat history with that user in the chat history list - -To mute a user, press the "Mute" button displayed on the user's profile page. - -Users muted by you will not be notified that they have been muted, and will also not know that they have been muted by you. - -You can confirm the list of users you have muted in the settings by going to Settings > Mute / Block diff --git a/src/docs/en-US/pages.md b/src/docs/en-US/pages.md deleted file mode 100644 index aacdb1987a..0000000000 --- a/src/docs/en-US/pages.md +++ /dev/null @@ -1,10 +0,0 @@ -# Pages - -## Variables -You can create dynamic pages using variables.By writing <b>{ variable-name }</b> in your text, the value of that variable can be embedded.For example, if the value of the variable thing in the text <b>Hello { thing } world!</b> is <b>ai</b>, then the text will turn into <b>Hello ai world!</b>. - -Variables are evaluated from top to bottom, so referencing variables not yet declared is not possible.For example, when declaring the three variables <b>A, B, C</b> in the given order, referencing <b>A</b> or <b>B</b> from within <b>C</b> is possible, but referencing <b>B</b> or <b>C</b> from within <b>A</b> is not. - -To receive user input on your page, include a "User input" block and set it to store the user's input in a variable name (the variable will automatically be created).You can then activate different actions depending on the user input stored in that variable. - -Using functions allows you to create a reusable way of calculating values.To use functions, create a variable of the type "function".Functions can use slots (arguments), which are then available as variables within the function.In addition, functions whose arguments are functions ("higher-order functions") are also possible.Besides predefining functions, you can also define functions in the slots of higher-order functions on the fly. diff --git a/src/docs/en-US/reaction.md b/src/docs/en-US/reaction.md deleted file mode 100644 index 4826c6e1f8..0000000000 --- a/src/docs/en-US/reaction.md +++ /dev/null @@ -1,11 +0,0 @@ -# Reaction -Easily express your feelings about the notes of others by attaching emojis to them. To react to a note, press the "+" icon to display the reaction picker and click on an emoji. You can also use [Custom Emoji](./custom-emoji) as reactions. - -## Customizing the reaction picker -It's possible to customize the emoji picker to display the emojis you want. You can configure it in the "Reactions" settings menu. - -## About reacting to remote posts -Because reactions are a Misskey-original feature, unless the remote instance is also a Misskey instance, reactions to posts will be sent as a "Like" activity.Generally speaking, "Like" functionality seems to be implemented as a "Favorite" feature. In addition, even if the interaction partner is a Misskey instance, custom emoji reactions will not be transmitted and instead fall back to a "👍" reaction or similar. - -## About reactions from remote servers -If a "Like" activity is sent from a remote server, it will be interpreted as a "👍" reaction in Misskey. diff --git a/src/docs/en-US/reversi-bot.md b/src/docs/en-US/reversi-bot.md deleted file mode 100644 index ac017979f4..0000000000 --- a/src/docs/en-US/reversi-bot.md +++ /dev/null @@ -1,160 +0,0 @@ -# Development of Misskey Reversi Bots -This page will explain how to develop a bot for Misskey's Reversi function. - -1. Connect to the `games/reversi` stream with the following parameters: - * `i`: API key of the bot account - -2. When an invitation to a game arrives, an `invited` event is emitted from the stream. - * Information about the user who sent the invitation is included in the event as `parent`. - -3. Send a request to `games/reversi/match` including the `id` of the `parent` as `user_id` - -4. If the request suceeds, information about the game will be returned. Then, send a request to the `games/reversi-game` stream with the following parameters: - * `i`: API key of the bot account - * `game`: The `id` of the `game` - -5. In the meanwhile, the opponent can modify the game's settings. Each time this happens, a `update-settings` event is emitted, so implementing logic to handle these events may be necessary. - -6. Once satisfied with the settings, send a `{ type: 'accept' }` message to the stream. - -7. When the game starts, a `started` event is emitted. - * Information about the game's state is included in this event - -8. To place a stone, send `{ type: 'set', pos: <Position> }` to the stream (how to calculate positions will be explained later). - -9. When the opponent or you place a stone, the `set` event is emitted. - * Contains the color of the placed stone as `color` - * Contains the position the stone was placed at as `pos` - -## Calculating positions -In the case of an 8x8 map, the fields of the board are arranged like this (fields are marked with their respective index): -``` -+--+--+--+--+--+--+--+--+ -| 0| 1| 2| 3| 4| 5| 6| 7| -+--+--+--+--+--+--+--+--+ -| 8| 9|10|11|12|13|14|15| -+--+--+--+--+--+--+--+--+ -|16|17|18|19|20|21|22|23| -... -``` - -### Find indices from X, Y coordinates -``` -pos = x + (y * mapWidth) -``` -`mapWidth` can be acquired from the `map` information as follows: -``` -mapWidth = map[0].length -``` - -### Find X, Y coordinates from indices -``` -x = pos % mapWidth -y = Math.floor(pos / mapWidth) -``` - -## Map information -Map data is included within `map` of the game data. As the data is represented as an array of strings, each character represents a field. Based on this data, you can reconstruct the map state: -* `(Empty)` ... No field -* `-` ... Field -* `b` ... Piece placed first was black -* `w` ... Piece placed first was white - -For example, suppose a situation with the following 4*4 board: -```text -+---+---+---+---+ -| | | | | -+---+---+---+---+ -| | ○ | ● | | -+---+---+---+---+ -| | ● | ○ | | -+---+---+---+---+ -| | | | | -+---+---+---+---+ -``` - -In this case, the map data look like this: -```javascript -['----', '-wb-', '-bw-', '----'] -``` - -## Creating a bot that can interact with the user through forms -To communicate with the user, you can show them a form in the settings screen. For example, to let the user select the strength of the Bot. - -To display a form, send the following message to the `reversi-game` stream: -```javascript -{ - type: 'init-form', - body: [Array of form control fields] -} -``` - -From here on, the structure of form control elements will be explained. Form controls are objects arranged as follows: -```javascript -{ - id: 'switch1', - type: 'switch', - label: 'Enable hoge', - value: false -} -``` -`id` ... The ID of the control element. `type` ... The type of the control element.Explained later. `label` ... Text displayed alongside the control element. `value` ... Default value of the control element. - -### Handling form interactions -When the user interacts with the form, an `update-form` event is emitted. Included in this event is the control element's ID as well as the value of the setting the user changed. For example, if the user flipped the switch from above to on, the following event would be emitted: -```javascript -{ - id: 'switch1', - value: true -} -``` - -### Types of form control elements -#### Switch -type: `switch` Shows a slider.These can be helpful for functions that can be turned either on or off. - -##### Properties -`label` ... The text written on the switch. - -#### Radio button -type: `radio` Shows a radio button.These can be useful for choices.For example to choose the strength of the Bot. - -##### Properties -`items` ... The options of the radio button.E.g.: -```javascript -items: [{ - label: 'Weak', - value: 1 -}, { - label: 'Moderate', - value: 2 -}, { - label: 'Strong', - value: 3 -}] -``` - -#### Slider -type: `slider` Shows a slider. - -##### Properties -`min` ... The minimum value of the slider. `max` ... The maximum value of the slider. `step` ... The step between each value on the slider. - -#### Textbox -type: `textbox` Shows a textbox.These can be used for all general purposes which require user input. - -## Showing a message to a user -This is another way to interact with the user from the settings screen, separate from showing them a form.It's possible to display a message to the user. For example, when the user selects a map that the bot does not support, a warning can be displayed. To display a message, send the following message to the stream: -```javascript -{ - type: 'message', - body: { - text: 'Message contents', - type: 'Message type' - } -} -``` -Message types: `success`, `info`, `warning`, `error`。 - -## Give up -To give up, send a request to <a href="./api/endpoints/games/reversi/games/surrender">this endpoint</a>. diff --git a/src/docs/en-US/stream.md b/src/docs/en-US/stream.md deleted file mode 100644 index 765aba0870..0000000000 --- a/src/docs/en-US/stream.md +++ /dev/null @@ -1,354 +0,0 @@ -# Streaming API - -By using the streaming API, you can receive various data (such as new posts arriving on the timeline, receiving direct messages, notifications about being followed, etc) in real-time and perform various different actions based on it. - -## Connecting to streams - -To use the streaming API, you must first connect to the **websocket** of the Misskey server. - -Connect to the websocket located at the below URL, including your credentials within the `i` parameter.E.g.: -``` -%WS_URL%/streaming?i=xxxxxxxxxxxxxxx -``` - -Credentials refer to your own API key or in the case of connecting to the Stream the access token granted to an application by a user. - -<div class="ui info"> - <p><i class="fas fa-info-circle"></i> To read about acquiring such credentials, please refer to <a href="./api">this document</a>.</p> -</div> - ---- - -It's possible to omit the credentials and use the Streaming API without logging in, but doing so will limit the data that can be received and the functions that can be used.E.g.: - -``` -%WS_URL%/streaming -``` - ---- - -To connect to the stream, using the later-mentioned API or subscribing to individual posts is possible. At this stage however it is not possible to receive timeline information about things such as new posts arriving yet. To do this, connecting to later-mentioned **Channels** is required. - -**All interactions of sending to and receiving from the Stream are done in JSON format.** - -## Channels -Within the Misskey Streaming API, a concept called Channels exists.These are used for the purpose of separating which data to receive. When first connecting to the Misskey Stream, you can not receive real-time updates yet. By connecting to channels in the stream, both sending and receiving various information related to said channels becomes possible. - -### Connecting to a channel -To connect to a channel, send a message in JSON format like the following to the stream: - -```json -{ - type: 'connect', - body: { - channel: 'xxxxxxxx', - id: 'foobar', - params: { - ... - } - } -} -``` - -Here, -* `channel` specifies the name of the channel to connect to.A list of valid channels will be given later. -* `id` contains an arbitrary ID for both sending to and receiving from this channel.The stream sends out various different messages, so to differentiate which channel a message came from, such an ID is required.This ID can be something such as an UUID or a simple random number generator output. -* `params` include the parameters for connecting to the channel.Which parameters are required for connecting varies by channel.For channels which do not require any parameters, this property can be omitted. - -<div class="ui info"> - <p><i class="fas fa-info-circle"></i> These IDs should be unique for each individual connection to a channel, not for each channel only.This is for cases in which multiple different connections with different parameters are made to the same channel.</p> -</div> - -### Receiving messages from channels -For example, when an event is emitted in one of the timeline channels due to a new post being made.By receiving such messages, it's possible to become aware of new posts being made in a timeline in real-time. - -When a channel sends a message, a JSON message like the following will be transmitted: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -Here, -* `id` refers to the ID that was previously set when connecting to the channel.Using this, it is possible to figure out which channel a message came from. -* `type` contains the type of this message.Which types of messages are sent varies depending on the channel the message came from. -* `body` contains the actual contents of this message.What kind of data is included varies depending on the channel the message came from. - -### Sending messages to channels -Depending on the channel, it is not only possible to receive messages, but also to send messages to the channel which can then trigger various different actions. - -To send a message to a channel, send a message in JSON format like the following one to the stream: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -Here, -* `id` refers to the ID that was previously set when connecting to the channel.Using this, it is possible to tell for which channel a message is intended. -* `type` sets the type of this message.The types of messages a channel accepts varies depending on the channel the message is being sent to. -* `body` sets the actual contents of the message.The types of content a channel accepts varies depending on which channel it is being sent to. - -### Disconnecting from a channel -To connect to a channel, send a JSON message like the following to the stream: - -```json -{ - type: 'disconnect', - body: { - id: 'foobar' - } -} -``` - -Here, -* `id` refers to the ID that was previously set when connecting to the channel. - -## Making API requests via streams - -It is possible to send requests to the API without a HTTP request by using the Stream.Doing so might help with keeping code cleaner and more efficient. - -To send an API request through the stream, send a JSON message like the following to the stream: -```json -{ - type: 'api', - body: { - id: 'xxxxxxxxxxxxxxxx', - endpoint: 'notes/create', - data: { - text: 'yee haw!' - } - } -} -``` - -Here, -* `id` must be set to an unique ID with which to identify separate request responses.This can be something such as an UUID or a simple random number generator output. -* `endpoint` contains the API endpoint to which the request is sent. -* `data` contains the endpoint parameters to send. - -<div class="ui info"> - <p><i class="fas fa-info-circle"></i> Please check the API reference for possible API endpoints and parameters.</p> -</div> - -### Receiving responses - -Once you send a request to the API, the stream will send a response message similar to the following: - -```json -{ - type: 'api:xxxxxxxxxxxxxxxx', - body: { - ... - } -} -``` - -Here, -* the `xxxxxxxxxxxxxxxx` part will normally be replaced with that request's previously set `id`.Due to this, it is easy to tell which response corresponds to which request. -* the actual response data is included as `body`. - -## Post capturing - -Misskey provides a structure called Post capturing".This structure makes it possible to receive events about a targeted post from the stream. - -For example, assume a situation in which a timeline is displayed to a user.Imagine that someone reacts to a post on this timeline. - -Since the client does not have any way of knowing that a certain post has received a reaction, it is not possible to reflect the reaction on this post in real-time. - -To solve this problem, Misskey introduced the feature of Post capturing.If you capture a post, events related to said post will be transmitted in real-time, allowing you to reflect the reaction to it on the timeline immediately. - -### Capturing a post - -To capture a post, send a message like the following to the stream: - -```json -{ - type: 'subNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -Here, -* the value of `id` must be the `id` of the post to capture. - -Sending this message requests Misskey to capture it and thus events related to this post will start to be emitted. - -For example, when a reaction is added to the post, the following message will be emitted: - -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -Here, -* the ID of the note that caused the event is included in the `id` of the `body`. -* the type of the event is included in the `type` of the `body`. -* the details of the event are included in the `body` of the `body`. - -#### Types of events - -##### `reacted` -This event is emitted when a reaction is added to the captured post. - -* the type of reaction is included as `reaction`. -* the ID of the user who sent the reaction is included as `userId`. - -E.g.: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -##### `deleted` -This event is emitted when the captured post is deleted. - -* The date and time of deletion is included within `deletedAt`. - -E.g.: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'deleted', - body: { - deletedAt: '2018-10-22T02:17:09.703Z' - } - } -} -``` - -##### `pollVoted` -This event is emitted when a vote is submitted to a poll attached to the captured post. - -* the ID of the selected option is included as `choice`. -* the ID of the user who sent the vote is included as `userId`. - -E.g.: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'pollVoted', - body: { - choice: 2, - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -### Canceling post capturing - -Once a post is no longer displayed on the screen and events related to it do not need to be received any longer, please cancel post capturing on it. - -Send the following message: - -```json -{ - type: 'unsubNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -Here, -* the value of `id` must be the `id` of the post for which to cancel capturing. - -Once you send this message, events related to this post will no longer be transmitted. - -# List of channels -## `main` -Basic information related to the account will be transmitted here.This channel does not have any parameters. - -### List of sent events - -#### `renote` -This event will be emitted when one of your posts is renoted.If you renote your own post, it will not be emitted. - -#### `mention` -This event will be emitted when someone mentions you. - -#### `readAllNotifications` -This event indicates that all your notifications have been set to read.It is expected to be used in cases such as turning off the indicator that there are unread notifications. - -#### `meUpdated` -This event indicates that your profile information has been updated. - -#### `follow` -This event will be emitted when you follow someone. - -#### `unfollow` -This event will be emitted when you unfollow someone. - -#### `followed` -This event will be emitted when someone follows you. - -## `homeTimeline` -Information about posts on the home timeline will be transmitted here.This channel does not have any parameters. - -### List of sent events - -#### `note` -This event will be emitted when a new post arrives in the timeline. - -## `localTimeline` -Information about posts on the local timeline will be transmitted here.This channel does not have any parameters. - -### List of sent events - -#### `note` -This event will be emitted when a new post arrives in the local timeline. - -## `hybridTimeline` -Information about posts on the social timeline will be transmitted here.This channel does not have any parameters. - -### List of sent events - -#### `note` -This event will be emitted when a new post arrives in the social timeline. - -## `globalTimeline` -Information about posts on the global timeline will be transmitted here.This channel does not have any parameters. - -### List of sent events - -#### `note` -This event will be emitted when a new post arrives in the global timeline. diff --git a/src/docs/en-US/theme.md b/src/docs/en-US/theme.md deleted file mode 100644 index 674566b4e4..0000000000 --- a/src/docs/en-US/theme.md +++ /dev/null @@ -1,68 +0,0 @@ -# Themes - -You can change the appearance of the Misskey client by setting a theme. - -## Theme settings -Settings > Themes - -## Creating a theme -Theme codes are saved as a JSON5 object of theme options. Themes are composed of the following options. -``` 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` ... A unique theme ID.Using an UUID is recommended. -* `name` ... The name of the theme -* `author` ... The creator of the theme -* `desc` ... A description of the theme (optional) -* `base` ... Whether the theme is based on a light or dark theme - * If you set it to `light` the theme will be listed as a light mode theme, if you set it to `dark` it will be listed as a dark mode theme. - * The theme will be inheriting the default values of the theme specified here. -* `props` ... The style definitions of the theme.These will be explained in the following. - -### Theme style definitions -Define the style of the theme within `props`. The keys will become CSS variables names, and the value specifies the content. In addition, the default `props` options are inherited from the base theme. If this theme's `base` is `light`, they will be copied from [_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5), and if it is `dark`, they will be copied from [_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5). In other words, if there is for example no `panel` key contained in `props`, then the value of `panel` from the base theme will be used. - -#### Syntax for values -* Hex colors - * E.g.: `#00ff00` -* RGB colors with `rgb(r, g, b)` syntax - * E.g.: `rgb(0, 255, 0)` -* RGBA colors with `rgb(r, g, b)` syntax - * E.g.: `rgba(0, 255, 0, 0.5)` -* References to values of other keys - * If you write `@{key-name}` the value of the given key will be used.Replace `{key-name}` with the name of the key to reference. - * E.g.: `@panel` -* Constants (see below) - * If you write `${constant-name}` the value of the given constant will be used.Replace `{constant-name}` with the name of the constant to reference. - * E.g.: `$main` -* Functions (see below) - * `:{function-name}<{argument}<{color}` - -#### Constants -In cases where you have a value that you don't want to output as a CSS variable, but want to use it as the value of another CSS variable, you can use a constant. If you prefix the name of a key with a `$`, it will be not be used as a CSS variable, but a referenced value. - -#### Functions -wip diff --git a/src/docs/en-US/timelines.md b/src/docs/en-US/timelines.md deleted file mode 100644 index 09f5031a35..0000000000 --- a/src/docs/en-US/timelines.md +++ /dev/null @@ -1,15 +0,0 @@ -# Timeline comparison - -https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing - -## Home -Posts of users you are following - -## Local -All posts of local users that are not marked as "Home-only" - -## Social -Posts of users you are following as well as all posts of local users that are not marked as "Home-only" - -## Global -All posts of local users that are not marked as "Home-only" as well as all messages received by the server that are not marked as "Home-only" |