Repository navigation
Open
Description
Summary
ノート向けの機能が使える、サーバー側の記法を追加する。MFM の関数($[jelly content])のように中身を書ける形で、%% で囲み、ノート作成時にサーバーが処理する。
%%command%%
%%command メイン引数%%
%%command key:value メイン引数 文章%%
%%command.sub メイン引数%%
commandで機能を選ぶ。サブコマンドは.で区切る(例:%%rand.dice 2d6%%、%%chart.line 3|5|2%%)。そのあとはスペース区切りの引数で、引数はkey:valueで書く- 複数の選択肢や値を並べるときは
|で区切る(例:%%rand.choose ラーメン|カレー|寿司%%、%%tr en|ko 中身%%) - コマンドごとに1つメイン引数を決め、メイン引数と文章は
key:を省略できる。例えば%%tr en こんにちは%%は%%tr to:en こんにちは%%と同じで、%%qr 秘密%%の秘密は文章になる。key:valueでない最初の単語がメイン引数、そのあと最後までが文章(文章を取るコマンドのみ)。文章は複数行にもできる - フラグも
hide:onのようにkey:valueで書く。単語だけの引数はメイン引数として読むため - スマホのキーボードで打ちやすいように、
%%と:以外は英字、数字、スペースだけで書けるようにする。=、-、.のような記号は必須にしない - 区切りを
%%にするのは、"50%オフ" のような普通の文章とぶつからないようにするため - 全角の
%%と全角スペースも同じ扱いにして、日本語入力のまま打てるようにする - サーバーはノート作成時に機能を実行し、
%%...%%全体を結果に置き換える。結果はテキスト、添付ファイル(ドライブのファイル)、またはその両方 - コードブロックやインラインコードの中は処理しないので、そこでは記法をそのまま書ける
- 知らないコマンド名はそのまま残す。中身に
%%を含めたいときの書き方も決める。エラーの伝え方(投稿を拒否するか、テキストを残すか)は機能ごとに決め、共通の既定値も用意する - 投稿フォームには、同じ記法を入れるか実行するボタンを置く。ボタンと記法でサーバー側の処理を共有する
- どのクライアントからの
notes/createでも動くこと。記法のいちばんの目的は、このフォークのボタンを出せないサードパーティのクライアント(スマホアプリなど)で使えるようにすること。予約投稿も、投稿されるときに処理する
この上に作る予定の機能:
- コードブロックをハイライト付きの画像にして添付する #3
%%img%%コードブロックの画像化 - Mermaid の図と数式を画像にして添付する #4
%%img%%Mermaid と数式の画像化 - 再生中の曲をノートに入れる #5
%%np%%再生中の曲 - ノートの統計カードを添付する(%%stats%%) #7
%%stats%%統計カード - URL や任意の文字列の QR コードを添付する(%%qr%%) #8
%%qr%%QR コード - GitHub のコントリビューショングラフを添付する(%%contrib%%) #9
%%contrib%%GitHub のコントリビューショングラフ - ノートに機械翻訳を付け足す(%%tr%%) #10
%%tr%%翻訳 - 時刻を複数のタイムゾーンで表示する(%%time%%) #11
%%time%%タイムゾーン - 場所の地図を添付する(%%map%%) #12
%%map%%地図 - ノートの読み上げ音声を添付する(%%voice%%) #13
%%voice%%読み上げ音声 - 文字を大きなアスキーアートにする(%%banner%%) #15
%%banner%%大きなアスキーアートの文字 - サイコロ、選択、おみくじなどのランダム機能(%%rand%%) #16
%%rand.dice%%%%rand.choose%%などのランダム機能 - 数値からグラフの画像を作って添付する(%%chart%%) #17
%%chart.bar%%%%chart.line%%%%chart.circle%%グラフ - GitHub やパッケージなどの情報をカード画像にして添付する(%%card%%) #18
%%card%%%%card.gh%%%%card.npm%%%%card.ogp%%など、GitHub やパッケージなどのカード - 英字を Unicode の装飾文字に変換する(%%font%%) #19
%%font.bold%%%%font.script%%などの装飾文字 - 計算と単位変換の結果を本文に入れる(%%calc%% %%unit%%) #20
%%calc%%%%unit%%計算と単位変換 - テキストのプログレスバーを入れる(%%progress%%) #21
%%progress%%プログレスバー - GitHub のコードを行指定で引用する(%%code%%) #22
%%code%%GitHub のコード引用
Purpose
予定している機能のいくつかは、サードパーティのクライアントからも使えて、しかも連合する必要がある。共通の記法をサーバーで処理すれば、どの機能もこの2つを満たせる。結果は標準の項目(テキスト、リンク、添付ファイル、代替テキスト)に入るので、どのサーバーでも表示できる。
Do you want to implement this feature yourself?
- Yes, I will implement this by myself and send a pull request
Metadata
Metadata
Assignees
Labels
No labels
Activity
[-]Server-side special syntax for note features (%%name content%%)[/-][+]ノート向け機能のためのサーバー側特殊記法(%%command%%)[/+]