このwikiにあるプラグインのうち、プログラム的なことを可能にするプラグインのこと。書式が@@から始まるので、他のプラグインと見分けがつきやすい。なお、正式名称は@@ActionTrigger。
従来のwikiwikiや、他wikiサービスのプラグインとは一線を画した[要出典]ものであり、なんと1つのページで完結できる高度なギミックを組むことができる。もちろん、ミニゲームページを作ることが余裕で可能になる。一度やってみれば意外と難しいものでもないので、とにかくやってみよう!
というかミニゲーム系ページを皆もっと作ろう!!
普通の記事でも使い道はもちろんあるよ。
以下からのテンプレの解説のために、用語解説を簡単にしておく。ただし、このページはあくまでプログラマブルプラグインの解説とテンプレのためのページであって、プログラムを解説する場所ではないためガバガバである。
- 変数中身を変えることができるもの。変数は箱であり、箱の中身を変えることができると例えた方が分かりやすいか。数と名前に付いているが、数字にこだわる必要はない。変数の名前を決める時は、全て文字でも良いし、中身も数字じゃなくたって良い。
- 値変数の中身。つまり箱の中身。1つの変数は1つの値しか取ることができず、新しい値が指定されたときは、古い値が消えてしまうので注意。値とは言うが、こちらも数字にこだわる必要はない。
- 定義変数に値を指定すること。逆に、変数に値がなにも指定されていないときは、未定義と言う。未定義状態はnullと表現されるので、覚えておこう。
- 演算子計算や比較するために必要な記号のこと。具体的には「+,-,*,/,<,>,=,<=,>=」のこと。なお、このうち「*,/」に関しては現在、対応しているものがない。
- 関数ある変数の値がどうなっているかを常に監視して、値が条件を満たせば特定の処理をする機能。現在はwhen関数のみの実装に留まっている。
@@var(変数=値)
変数を作って、値を定義するもの。値を定義しなかった(空欄にした)場合は、nullとして扱われる。これがないと何も始まらない。ページの途中途中に点在していると、分かりにくくなってしまうため、見やすいところにまとめて書いておこう。また、どれだけ書いても本文中に文字として出力されることはない。他のも大体そう。
↓ここにあるよ↓
↑ここにあるよ↑
@@RNG(変数=値0,値1,値2)
変数を作って、値を指定したものからランダムに選んで定義するもの。値が数字であれば、n-mという書き方で「n以上m以下の整数」をランダムに定義することができる。上では値が3つしかないが、もちろん何個あっても良い。値の切り替え方については@@buttonを参照。
↓ここにあるよ↓
↑ここにあるよ↑
@@list(変数=値0,値1,値2)
変数を作って、指定した順番通りにそれぞれの値を定義するもの。最初は値0を値に持つ。どうやって値を切り替えるのかについては、@@buttonを参照。
ちなみに、変数の番号は1番目が最初なのではなく、0番目が最初である。
↓ここにあるよ↓
↑ここにあるよ↑
@@show(変数)
指定した変数の値を表示するもの。値がnullな時は、何も表示されなくなる。これと@@buttonと@@whenのみが、文中でも動かすことができる(他のものは単独の行でないと動かない)。また、値が変わると表示もそれに変わる。
あなたの名前:
@@write(変数){表示文字}
指定した変数の値を、入力欄を使って自由に変えられるもの。表示文字は、入力欄が空白時に薄く表示される。変数を決定させる時のsendボタンは、@@buttonとのものとは違って、1つの変数を変更するためだけの独立したボタンになっている。@@buttonみたいに他の変数も同時にいじることはできない。
@@button(=値0,=値1){変数0,変数1}[表示文字]
指定した変数の値を、他の値にしたり、(値が数値であれば)足し算や引き算したりすることができるもの。とても重要。表示文字は、ボタンに表示される文字のこと。()部分で使える演算子と記号、その意味は下の通り。
=値
指定した変数を任意の値に変更する
+値(数値)
指定した変数に任意の値を加算する*1指定される変数の元の値は数値である必要がある
-値(数値)
指定した変数に任意の値を減算する*2指定される変数の元の値は数値である必要がある
=$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、指定した変数を任意の変数Aの値にコピーすることができる
+と-では使うことができない
また、@@RNGまたは@@listで定義された変数に対しては、下のような操作が可能となる。
=reroll
指定した値の中からランダムに1つ選び、定義する
=next
現在定義されている値の次の値を定義する
=previous
現在定義されている値の前の値を定義する
=n (nは番号)
n番目に指定されている値を定義する
一番最初の値が0番目なので注意
君は… と言うんじゃな!
ライバルは… と言うんじゃな!
自分の名前:
ライバルの名前:
@@button#ボタン名(=値0,=値1){変数0,変数1}[表示文字]
@@buttonに任意の「#name」を付けることで、内部的な名前を指定できる。指定した名前を@@inputで呼び出し、その@@buttonと同じ処理をさせることが可能になる。詳しくは@@inputの項を参照。
(従来の@@inputの機能は、仕様変更に伴い@@writeに移動。)
@@input(オプション){変数}[表示文字]
指定した変数の値を、@@buttonのように操作することができるもの。ただし、@@buttonとの違いは「1つの変数しか操作できないこと」「キーボードのボタンでも実行可能なこと」である。なお、表示文字は省略可能。[]部分を書かなければ、ボタンは表示されなくなる。使えるオプションは下の通り。@@whenのように、「;」で繋げば複数利用できる。「,」ではないので注意。
key=キー
キーボードのキーを指定できる。省略可能。ここで指定されたキーを押すと、ボタン自体を押さなくても処理が実行される。なお、複数種のキーを1つの@@input内で指定することはできないが、同じキーを複数の@@inputで共有することは可能。指定できるキーについては後述。
action=+値
変数に対する処理を指定する。clickを使っていれば省略可能。演算子は+の他に、-と=が使える*3=を使う時は、action==値とすること。action=までがテンプレで、その先が処理内容と考えれば分かりやすい。なお、$変数は値として使えない。
mode=hold
長押しで実行し続けられるようにする。省略可能。
interval=値
mode=holdが指定されている時に、処理がされる感覚を調整できる。省略可能。値は正の整数でなくてはならない。単位はミリ秒と思われる。(1000㎳=1s)
click=#name
#nameを指定した@@buttonの処理を行う。省略可能。#nameの指定方法については@@buttonの#nameの項を参照。
以下がkeyで指定可能なキー。*4編集者のキーボードのキーの種類的に、未検証のキーがかなりあります。多分まだ使えるキーあり。現状、Siht、Control、Alt、Fn、F1~F12、A~Z、0~9などは使えなさそう。
ArrowRight:→
ArrowLeft:←
ArrowUp:↑
ArrowDown:↓
Enter
Space
Backspace
Delete
Escap
Home
End
Insert
Tab
CapsLock*5mode=holdを指定している場合、&br;一度CapsLockを押すと、離しても押しっぱなしになる
高橋名人を超えろ!!!(PC限定)
カウントがマイナスの間は連打力で高橋名人に負けています。目指せカウント100!!!
CapsLockを押してスタート、[+1カウント Space]でカウントアップ、[カウントを0にする Backspace]でカウントをリセット(ただし高橋名人は一度始めると止まりません。)
もしCapsLockを押しても反応がなければ、どこかページの適当な空白部分をクリックしてからもう一度押してみてください。
現在のカウント:
@@calc#name[
変数=計算式
]
任意の計算を行い、その結果を値として変数に定義するもの。計算式では、特定の関数を使うこともできる。計算式の書き方は以下の通り。四則演算が適用される。また、$変数で、任意の変数の値を扱うこともできる。
計算
「変数=2+3」のように書く。この例だと、実行された場合、変数に5が定義される。
数値+数値
足し算。
数値-数値
引き算。
数値*数値
掛け算
数値A/数値B
割り算。A÷B。
数値A**数値B
累乗。AのB乗。
数値A%数値B
余り。A÷Bの余り。
()
括弧。括弧内の計算は最優先に行われる。
括弧は複数使用可能。{}などの他のものは不可。
"文字列"
任意の文字列を変数に定義する。
=の後に直接入力すること。他の演算子との併用は不可。
関数
「変数=min((2+3),10)」のように書く。この例だと、実行された場合、変数に5が定義される。
※ここでの「値」には計算式も含まれる。
min(値,値)
()内の値の中から最小値を定義する。
比較する値は「,」で区切れば、いくつでも増やせる。
max(値,値)
()内の値の中から最大値を定義する。
比較する値は「,」で区切れば、いくつでも増やせる。
ceil(値)
指定した値の小数を切り上げて定義する。
trunc(値)
指定した値の小数を切り捨てて定義する。
floor(値)
指定した値の小数を切り捨てて定義する。*6厳密には、その数以下で最大の整数を定義する。truncは小数部分を切り捨てた整数を定義する。
abs(値)
指定した値の絶対値を定義する。
@@when(変数=値)[
中身
]
指定した変数が、設定された条件を満たした時に中身を表示するもの。条件を満たしていない時は表示されず、隠されている。ただし、あくまで表示が隠されているだけなので@@varは働いてしまう。特定の時に@@buttonを介さず変数を設定したいなら、@@ifの実装を待とう。中身に@@whenを入れるという入れ子構造が可能。しかし、;(and条件)の登場により登場機会は減った。また、中身は複数行書くこともできるが、@@buttonのように1文だけにすることもできる。
()部分で使える演算子と記号、その意味は下の通り。
=値
指定した変数が任意の値と一致する時
!=値
指定した変数が任意の値と不一致の時
>値(数値)
指定した変数が任意の値より大きい時*7変数の値は数値である必要がある
<値(数値)
指定した変数が任意の値より小さい時*8変数の値は数値である必要がある
>=値(数値)
指定した変数が任意の値以上の時*9変数の値は数値である必要がある
<=値(数値)
指定した変数が任意の値以下の時*10変数の値は数値である必要がある
=null
指定した変数が未定義の時
!=null
指定した変数に何か定義されている時
$変数
任意の変数の値を扱うことができる
たとえば=$変数Aで、「変数Aの値と一致する時」という条件になる
同じ具合で<や!=などでも勿論使える*11ただし値が数値な必要があるものは、$変数も数値である必要がある
変数0=値0;変数1=値1
指定した全ての条件を満たした時
条件はいくつでも増やせるし、演算子も何でもいい
ジャンケンをしよう!
負け!
あいこ!
ブラウザにある情報を変数として利用できるもの。現在は、@@showと@@whenで使うことができる。以下が使用できるブラウザ変数の一覧。
※値の種類のうち、文字列型は文字列を、整数型は整数を、真偽型はtrueかfalseを、それぞれ値として取る。また、例は閲覧者の環境のもの。
| 変数名 | 値の種類 | 例 | 説明 |
|---|---|---|---|
| browser.language | 文字列型 |
ja-JP:日本語(日本)
ja:日本語 en-US:英語(アメリカ) en-GB:英語(イギリス) en:英語 zh-CN:中国語(簡体字) zh-TW:台湾語(繁体字) nl-NL:オランダ語(オランダ) など… ブラウザの1番優先される言語を示すもの。自動翻訳で使われる言語。 なお、-〇〇は地域を表す。 | |
| browser.languages | 文字列型 |
ja-JP,ja,en-US,en
など… ブラウザで設定されている優先言語を、優先順にコンマ区切りで示すもの。値の種類についてはbrowser.languageのものと同じ。 | |
| browser.timezone | 文字列型 |
Asia/Tokyo:日本
America/New_York:アメリカ東部 Europe/London:イギリス Asia/Shanghai:中国 Europe/Amsterdam:オランダ など… ブラウザのタイムゾーンを示すもの。非対応のブラウザだと表示されない? | |
| browser.timezoneOffset | 整数型 |
-540:UTC+9
など… ブラウザのタイムゾーンをUTCに合わせるために引かれる分数を示すもの。つまりUTCと符号が逆で、単位が分のもの。 | |
| browser.localYear | 整数型 |
2026
など… 西暦での年数を示すもの。 | |
| browser.localMonth | 整数型 |
1〜12の整数
何月かを示すもの。 | |
| browser.localDay | 整数型 |
1〜31の整数
何日かを示すもの。 | |
| browser.localWeekday | 整数型 |
0〜6の整数
何曜日かを示すもの。日曜日が0で、月曜が1、火曜が2…という具合。 | |
| browser.localHour | 整数型 |
0〜23の整数
何時かを示すもの。24時は0時扱い。 | |
| browser.localMinute | 整数型 |
0〜59の整数
何分かを示すもの。60分は0分扱い。 | |
| browser.localDate | 文字列型 |
1919-8-10
など… 日付をYYYY-MM-DDで示すもの。 | |
| browser.viewportWidth | 整数型 |
411
など… ブラウザを表示している領域の幅を示すもの。 | |
| browser.viewportHeight | 整数型 |
737
など… ブラウザを表示している領域の高さを示すもの。 | |
| browser.screenWidth | 整数型 |
412
など… スクリーンの幅を示すもの。 | |
| browser.screenHeight | 整数型 |
924
など… スクリーンの高さを示すもの。 | |
| browser.orientation | 文字列型 |
portrait:縦向き(ウィンドウの幅<高さ)
landscape:横向き(ウィンドウの幅>高さ) ブラウザの表示環境が縦長なのか横長なのかを示すもの。スマホの縦画面・横画面のそれ。ただし、スクリーンではなくブラウザの表示領域(browser.viewport系)で判定されているため、PCはlandscapeとは限らない。 | |
| browser.touch | 真偽型 |
タッチ操作できる環境かどうかを示すもの。trueで可能、falseで不可能。
| |
| browser.pointer | 文字列型 |
fine:高精度ポインター有り
coarse:低精度ポインター有り none:ポインター無し ポイント精度を示すもの。fineは主にマウスが、coarseは主にタッチスクリーンが該当する。 | |
| browser.hover | 真偽型 |
マウスポインターをプラグインなどで表示されている物の上に重ねられるかどうかを示すもの。
trueで可能、falseで不可能。 | |
| browser.darkMode | 真偽型 |
ダークモードかどうかを示すもの。
trueでダークモード、falseで非ダークモード。 | |
| browser.reducedMotion | 真偽型 |
OSがアニメーション効果を削減する設定を有効化しているかどうかを示すもの。
trueで有効、falseで無効。 | |
| browser.online | 真偽型 |
ブラウザがオンライン状態かどうかを示すもの。
trueでオンライン、falseでオフライン。 |
| 今日 | 0 |
| 昨日 | 0 |
| 合計 | 0 |