プログラマブルプラグイン

Created at 2026-06-30 UTC [Last edited at: 2026-11-06 05:52:34 UTC]


プログラマブルプラグインとは?

このwikiにあるプラグインのうち、プログラム的なことを可能にするプラグインのこと。書式が@@から始まるので、他のプラグインと見分けがつきやすい。なお、正式名称は@@ActionTrigger。
従来のwikiwikiや、他wikiサービスのプラグインとは一線を画した[要出典]ものであり、なんと1つのページで完結できる高度なギミックを組むことができる。もちろん、ミニゲームページを作ることが余裕で可能になる。一度やってみれば意外と難しいものでもないので、とにかくやってみよう!
というかミニゲーム系ページを皆もっと作ろう!!

普通の記事でも使い道はもちろんあるよ。

用語解説

以下からのテンプレの解説のために、用語解説を簡単にしておく。ただし、このページはあくまでプログラマブルプラグインの解説とテンプレのためのページであって、プログラムを解説する場所ではないためガバガバである。

  • 変数
    中身を変えることができるもの。変数は箱であり、箱の中身を変えることができると例えた方が分かりやすいか。
    数と名前に付いているが、数字にこだわる必要はない。変数の名前を決める時は、全て文字でも良いし、中身も数字じゃなくたって良い。
  • 値
    変数の中身。つまり箱の中身。1つの変数は1つの値しか取ることができず、新しい値が指定されたときは、古い値が消えてしまうので注意。
    値とは言うが、こちらも数字にこだわる必要はない。
  • 定義
    変数に値を指定すること。逆に、変数に値がなにも指定されていないときは、未定義と言う。未定義状態はnullと表現されるので、覚えておこう。
  • 演算子
    計算や比較するために必要な記号のこと。具体的には「+,-,*,/,<,>,=,<=,>=」のこと。なお、このうち「*,/」に関しては現在、対応しているものがない。
  • 関数
    ある変数の値がどうなっているかを常に監視して、値が条件を満たせば特定の処理をする機能。現在はwhen関数のみの実装に留まっている。

プログラマブルプラグイン

変数定義系

@@var

@@var(変数=値)
変数を作って、値を定義するもの。値を定義しなかった(空欄にした)場合は、nullとして扱われる。
これがないと何も始まらない。ページの途中途中に点在していると、分かりにくくなってしまうため、見やすいところにまとめて書いておこう。また、どれだけ書いても本文中に文字として出力されることはない。他のも大体そう。

↓ここにあるよ↓
↑ここにあるよ↑
書式
↓ここにあるよ↓
@@var(he=ボブ)
@@var(you=田中)
↑ここにあるよ↑

@@RNG

@@RNG(変数=値0,値1,値2)
変数を作って、値を指定したものからランダムに選んで定義するもの。値が数字であれば、n-mという書き方で「n以上m以下の整数」をランダムに定義することができる。上では値が3つしかないが、もちろん何個あっても良い。
値の切り替え方については@@buttonを参照。

↓ここにあるよ↓
↑ここにあるよ↑

書式
↓ここにあるよ↓
@@RNG(his_action=✊️,✌️,🖐️)
↑ここにあるよ↑

@@list

@@list(変数=値0,値1,値2)
変数を作って、指定した順番通りにそれぞれの値を定義するもの。最初は値0を値に持つ。
どうやって値を切り替えるのかについては、@@buttonを参照。
ちなみに、変数の番号は1番目が最初なのではなく、0番目が最初である。

↓ここにあるよ↓
↑ここにあるよ↑

書式
↓ここにあるよ↓
@@list(your_action=✊️,✌️,🖐️)
↑ここにあるよ↑

変数操作系

@@show

@@show(変数)
指定した変数の値を表示するもの。値がnullな時は、何も表示されなくなる。
これと@@buttonと@@whenのみが、文中でも動かすことができる(他のものは単独の行でないと動かない)。また、値が変わると表示もそれに変わる。

あなたの名前:

書式
あなたの名前:@@show(you)

@@write

@@write(変数){表示文字}
指定した変数の値を、入力欄を使って自由に変えられるもの。表示文字は、入力欄が空白時に薄く表示される。
変数を決定させる時のsendボタンは、@@buttonとのものとは違って、1つの変数を変更するためだけの独立したボタンになっている。@@buttonみたいに他の変数も同時にいじることはできない。

なるほど…  と言うんじゃな!

書式
@@write(you){君の名は?}
なるほど… @@show(you) と言うんじゃな!

@@button

@@button(=値0,=値1){変数0,変数1}[表示文字]
指定した変数の値を、他の値にしたり、(値が数値であれば)足し算や引き算したりすることができるもの。とても重要。表示文字は、ボタンに表示される文字のこと。
()部分で使える演算子と記号、その意味は下の通り。

=値
指定した変数を任意の値に変更する
 
+値(数値)
指定した変数に任意の値を加算する*1
 
-値(数値)
指定した変数に任意の値を減算する*2
 
=$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、指定した変数を任意の変数Aの値にコピーすることができる
+と-では使うことができない


また、@@RNGまたは@@listで定義された変数に対しては、下のような操作が可能となる。

=reroll
指定した値の中からランダムに1つ選び、定義する
 
=next
現在定義されている値の次の値を定義する
 
=previous
現在定義されている値の前の値を定義する
 
=n (nは番号)
n番目に指定されている値を定義する
一番最初の値が0番目なので注意


君は…  と言うんじゃな!
ライバルは…  と言うんじゃな!

自分の名前:

ライバルの名前:

書式
君は… @@show(you) と言うんじゃな!
ライバルは… @@show(he) と言うんじゃな!

自分の名前:
@@button(=ああああ){you}[ああああ]
@@button(=不適切なユーザーネーム){you}[うんこ!w]
@@button(=わしにしね){you}[わしにしね]

ライバルの名前:
@@button(=ひひひろし){he}[ひひひろし]
@@button(=うーん、こ!w){he}[うーん、こ!w]
@@button(=$you){he}[自分の名前をコピー]

#name
@@button#ボタン名(=値0,=値1){変数0,変数1}[表示文字]
@@buttonに任意の「#name」を付けることで、内部的な名前を指定できる。指定した名前を@@inputで呼び出し、その@@buttonと同じ処理をさせることが可能になる。詳しくは@@inputの項を参照。

@@input

(従来の@@inputの機能は、仕様変更に伴い@@writeに移動。)
@@input(オプション){変数}[表示文字]
指定した変数の値を、@@buttonのように操作することができるもの。ただし、@@buttonとの違いは「1つの変数しか操作できないこと」「キーボードのボタンでも実行可能なこと」である。なお、表示文字は省略可能。[]部分を書かなければ、ボタンは表示されなくなる。
使えるオプションは下の通り。@@whenのように、「;」で繋げば複数利用できる。「,」ではないので注意。

key=キー
キーボードのキーを指定できる。省略可能。ここで指定されたキーを押すと、ボタン自体を押さなくても処理が実行される。なお、複数種のキーを1つの@@input内で指定することはできないが、同じキーを複数の@@inputで共有することは可能。指定できるキーについては後述。
 
action=+値
変数に対する処理を指定する。clickを使っていれば省略可能。演算子は+の他に、-と=が使える*3。なお、$変数は値として使えない。
 
mode=hold
長押しで実行し続けられるようにする。省略可能。
 
interval=値
mode=holdが指定されている時に、処理がされる感覚を調整できる。省略可能。値は正の整数でなくてはならない。単位はミリ秒と思われる。(1000㎳=1s)
 
click=#name
#nameを指定した@@buttonの処理を行う。省略可能。#nameの指定方法については@@buttonの#nameの項を参照。


以下がkeyで指定可能なキー。*4

ArrowRight:→
ArrowLeft:←
ArrowUp:↑
ArrowDown:↓
Enter
Space
Backspace
Delete
Escap
Home
End
Insert
Tab
CapsLock*5


高橋名人を超えろ!!!(PC限定)
カウントがマイナスの間は連打力で高橋名人に負けています。目指せカウント100!!!
CapsLockを押してスタート、[+1カウント Space]でカウントアップ、[カウントを0にする Backspace]でカウントをリセット(ただし高橋名人は一度始めると止まりません。)
もしCapsLockを押しても反応がなければ、どこかページの適当な空白部分をクリックしてからもう一度押してみてください。
現在のカウント:

書式
高橋名人を超えろ!!!(PC限定)
カウントがマイナスの間は連打力で高橋名人に負けています。目指せカウント100!!!
&U{CapsLockを押してスタート}、[+1カウント Space]でカウントアップ、[カウントを0にする Backspace]でカウントをリセット(ただし高橋名人は一度始めると止まりません。)
もしCapsLockを押しても反応がなければ、どこかページの適当な空白部分をクリックしてからもう一度押してみてください。
@@var(counter=0)
現在のカウント:@@show(counter)
@@input(key=CapsLock;action=-1;mode=hold;interval=63){counter}[始める CapsLock]
@@input(key=Space;action=+1){counter}[+1カウント Space]
@@input(key=Backspace;action==0){counter}[カウントを0にする Backspace]

@@calc

@@calc#name[
変数=計算式
]
任意の計算を行い、その結果を値として変数に定義するもの。計算式では、特定の関数を使うこともできる。
計算式の書き方は以下の通り。四則演算が適用される。また、$変数で、任意の変数の値を扱うこともできる。

計算
「変数=2+3」のように書く。この例だと、実行された場合、変数に5が定義される。
 
 数値+数値
 足し算。
 
 数値-数値
 引き算。
 
 数値*数値
 掛け算
 
 数値A/数値B
 割り算。A÷B。
 
 数値A**数値B
 累乗。AのB乗。
 
 数値A%数値B
 余り。A÷Bの余り。
 
 ()
 括弧。括弧内の計算は最優先に行われる。
 括弧は複数使用可能。{}などの他のものは不可。
 
 "文字列"
 任意の文字列を変数に定義する。
 =の後に直接入力すること。他の演算子との併用は不可。
 
関数
「変数=min((2+3),10)」のように書く。この例だと、実行された場合、変数に5が定義される。
※ここでの「値」には計算式も含まれる。
 
 min(値,値)
 ()内の値の中から最小値を定義する。
 比較する値は「,」で区切れば、いくつでも増やせる。
 
 max(値,値)
 ()内の値の中から最大値を定義する。
 比較する値は「,」で区切れば、いくつでも増やせる。
 
 abs(値)
 指定した値の絶対値を定義する。
 
 ceil(値)
 指定した値の小数を切り上げる。
 
 trunc(値)
 指定した値の小数を切り捨てる。
 
 floor(値)
 指定した値の小数を切り捨てる。*6
 


関数系

@@when

@@when(変数=値)[
中身
]
指定した変数が、設定された条件を満たした時に中身を表示するもの。条件を満たしていない時は表示されず、隠されている。ただし、あくまで表示が隠されているだけなので@@varは働いてしまう。特定の時に@@buttonを介さず変数を設定したいなら、@@ifの実装を待とう。
中身に@@whenを入れるという入れ子構造が可能。しかし、;(and条件)の登場により登場機会は減った。また、中身は複数行書くこともできるが、@@buttonのように1文だけにすることもできる。
()部分で使える演算子と記号、その意味は下の通り。

=値
指定した変数が任意の値と一致する時
 
!=値
指定した変数が任意の値と不一致の時
 
>値(数値)
指定した変数が任意の値より大きい時*7
 
<値(数値)
指定した変数が任意の値より小さい時*8
 
>=値(数値)
指定した変数が任意の値以上の時*9
 
<=値(数値)
指定した変数が任意の値以下の時*10
 
=null
指定した変数が未定義の時
 
!=null
指定した変数に何か定義されている時
 
$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、「変数Aの値と一致する時」という条件になる
同じ具合で<や!=などでも勿論使える*11
 
変数0=値0;変数1=値1
指定した全ての条件を満たした時
条件はいくつでも増やせるし、演算子も何でもいい


ジャンケンをしよう!


書式
@@var(mode=)
@@RNG(battle_stance=eternal_won,eternal_drawn)
ジャンケンをしよう!

@@when(mode=null)[
出す手:@@button(=0,=$battle_stance){your_action,mode}[グー]@@button(=1,=$battle_stance){your_action,mode}[チョキ]@@button(=2,=$battle_stance){your_action,mode}[パー]
]
@@when(mode!=null)[
あなたの出した手:@@show(your_action)
 @@when(mode=eternal_won)[
  @@when(your_action=✊️)[@@show(he)の出した手:🖐️]@@when(your_action=✌️)[@@show(he)の出した手:✊️]@@when(your_action=🖐️)[@@show(he)の出した手:✌️]

 負け!
 ]
 @@when(mode=eternal_drawn)[
  @@show(he)の出した手:@@show(your_action)

 あいこ!
 ]

@@button(=,=reroll){mode,battle_stance}[もう一回]
]

特殊変数

ブラウザ変数

ブラウザにある情報を変数として利用できるもの。現在は、@@showと@@whenで使うことができる。以下が使用できるブラウザ変数の一覧。

※値の種類のうち、文字列型は文字列を、整数型は整数を、真偽型はtrueかfalseを、それぞれ値として取る。また、例は閲覧者の環境のもの。
変数名値の種類例説明
browser.language
文字列型
browser.languages
文字列型
browser.timezone
文字列型
browser.timezoneOffset
整数型
browser.localYear
整数型
browser.localMonth
整数型
browser.localDay
整数型
browser.localWeekday
整数型
browser.localHour
整数型
browser.localMinute
整数型
browser.localDate
文字列型
browser.viewportWidth
整数型
browser.viewportHeight
整数型
browser.screenWidth
整数型
browser.screenHeight
整数型
browser.orientation
文字列型
browser.touch
真偽型
browser.pointer
文字列型
browser.hover
真偽型
browser.darkMode
真偽型
browser.reducedMotion
真偽型
browser.online
真偽型

コメント


閲覧数

今日0
昨日0
合計0