Skip to content

ノート向け機能のためのサーバー側特殊記法(%%command%%) #6

Open

Description

@otnc

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 でも動くこと。記法のいちばんの目的は、このフォークのボタンを出せないサードパーティのクライアント(スマホアプリなど)で使えるようにすること。予約投稿も、投稿されるときに処理する

この上に作る予定の機能:

Purpose

予定している機能のいくつかは、サードパーティのクライアントからも使えて、しかも連合する必要がある。共通の記法をサーバーで処理すれば、どの機能もこの2つを満たせる。結果は標準の項目(テキスト、リンク、添付ファイル、代替テキスト)に入るので、どのサーバーでも表示できる。

Do you want to implement this feature yourself?

  • Yes, I will implement this by myself and send a pull request

Activity

  1. changed the title [-]Server-side special syntax for note features (%%name content%%)[/-] [+]ノート向け機能のためのサーバー側特殊記法(%%command%%)[/+] on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions