コンテンツにスキップ

さくらスクリプトの扱い

里々は、本文に書かれたさくらスクリプトを基本的にそのまま出力しますが、一部は解釈して自動処理と連携します。

そのまま通るもの

  • \ に続く英字・数字・記号と、[…] の引数は、タグとして扱われて出力されます。
  • \\ と %% は、エスケープとしてそのまま出力されます。
  • […] の中の () は展開されます。\] は ] のエスケープです。
  • %month %day %hour %minute %second %username %selfname %selfname2 %keroname %screenwidth %screenheight %exh %et %wronghour %ms %mz %mc %mh %mt %me %mp %m? %dms %lastghostname %lastobjectname %property[…] は置換タグとして出力されます。

タグの名前には ASCII の英字だけが使われます(かなや漢字が続いていても、タグ名には含まれません)。

里々が解釈するもの

タグ 里々の処理
\0 \1 \h \u \p[n] 喋るキャラクターの管理と、スコープ切り換え時の挿入
\s[n] \s0〜\s9 「サーフェスを変えてから喋ったか」の管理(サーフェス戻し)
\n 自動ウェイトの区切り
\_q クイックセクションの開始・終了(自動ウェイトを止める)
\_? \_! 内側の文字列を、自動処理の対象外で出力する(() は展開される)
\q[ラベル,ID,…] 選択肢の ID にラベルと番号を付ける(選択肢)
\_w[n] 自動ウェイトの管理

応答の整形

応答を返す直前に、無駄なタグが取り除かれます。

  • \_w[0] を削除する。
  • \1\0 → \0、\0\0 → \0、\0\1 → \1、\1\1 → \1 のように、続くスコープ切り替えをまとめる。
  • \n\e → \e、\n[half]\e → \e、\n\- → \-、\e\- → \-、\e\e → \e のように、末尾の余分なものをまとめる。
  • 末尾の \n を取り除く。

これらは何度でも繰り返し適用されます。

中身のない応答

整形したあとの応答が、\0 \1 \h \u \p \n \w \_w \e だけでできている場合は、喋る内容がないとみなされ、何も返しません(204 No Content)。

内部で使う文字

里々は、内部処理で Unicode の私用領域の文字(U+E0FF、U+E0FD、U+E0FC、U+E09E、U+E0FE)を使います。辞書の本文にこれらの文字が含まれていると、誤動作します。