「利用者:芯/サンドボックス/1/ロ」の版間の差分

提供:WikiWiki
ナビゲーションに移動 検索に移動
(白紙化)
タグ: 白紙化 手動差し戻し
編集の要約なし
1行目: 1行目:
このページでは、[[ソース早見表]]で紹介したものよりさらに高度なコードについて紹介します。


==TemplateStyles==
'''TemplateStyles'''は、テンプレートページにCSSを読み込むことができる拡張機能です。手順は以下の通りです。
#テンプレートページに、.css で終わるサブページを作る。(例: [[テンプレート:テスト/style.css]])
#そのサブページにCSSを書きまくる。
#テンプレートページに<code><nowiki><templatestyles src="</nowiki>''テンプレート名/サブページ名''" /></code>と入力してCSSページを呼び出す。(例: <code><nowiki><templatestyles src="テスト/style.css" /></nowiki></code>)
#テンプレートにCSSが反映され、常習者は歓喜する。
==パーサ関数==
'''パーサ関数'''は、条件分岐を扱うことのできる特殊な文字列です。一般に、形式は
<nowiki>{{</nowiki>#関数名: 引数1 | 引数2 | 引数3...}}
となっています。「関数名」のところには<code>[[#expr|expr]]</code>, <code>[[#if|if]]</code>, <code>[[#ifeq|ifeq]]</code>, <code>ifexist</code>, <code>[[#ifexpr|ifexpr]]</code>, <code>[[#switch|switch]]</code>, <code>time</code>, <code>timel</code>, <code>rel2abs</code>, <code>titleparts</code>, <code>iferror</code> のいずれかが入り、「引数n」のところには任意の数値や文字列が入ります。関数がこれらの数値や文字列を処理することで、<code><nowiki>{{</nowiki></code>-<code><nowiki>}}</nowiki></code>の部分が何らかの値に変わります。
さて、ここでは、よく用いられる関数 <code>[[#expr|expr]]</code>, <code>[[#if|if]]</code>, <code>[[#ifeq|ifeq]]</code>, <code>[[#ifexpr|ifexpr]]</code>, <code>[[#switch|switch]]</code> の機能を一つひとつ見ていきましょう。
===expr===
expr関数は、引数を数式として評価し、その計算結果を返します。さまざまな演算子が使用できます。
*<code><nowiki>{{#expr: 3 * ( 2 + 7 ) }}</nowiki></code>:{{#expr: 3 * ( 2 + 7 ) }}
*<code><nowiki>{{#expr: 17 mod 4}}</nowiki></code>:{{#expr: 17 mod 4}}
*<code><nowiki>{{#expr: 923487 > 43598}}</nowiki></code>:{{#expr: 923487 > 43598 }}
===if===
if関数は、引数1が数値0でもスペースでも長さ0の文字列でもない場合に引数2を、左のいずれかである場合に引数3を返します。
*<code><nowiki>{{#if: ああああ | 空文字列でない | 空文字列である }}</nowiki></code>:{{#if: ああああ | 空文字列でない | 空文字列である }}
*<code><nowiki>{{#if: 9 > 11 | 真です | 偽です }}</nowiki></code>:{{#if: 9 > 11 | 真です | 偽です }}(文字列「9 > 11」は空文字列ではないため)
===ifexpr===
ifexpr関数はif関数とexpr関数を組み合わせたようなもので、引数1を数式として評価し、その計算結果が数値0でもスペースでも長さ0の文字列でもない場合に引数2を、左のいずれかである場合に引数3を返します。
*<code><nowiki>{{#ifexpr: 923487 > 43598 | 真 | 偽 }}</nowiki></code>:{{#ifexpr: 923487 > 43598 | 真 | 偽 }}
*<code><nowiki>{{#ifexpr: 9 > 11 | 真です | 偽です }}</nowiki></code>:{{#ifexpr: 9 > 11 | 真です | 偽です }}
===ifeq===
ifeq関数は、引数1と引数2を比較し、同値である場合に引数3を、そうでない場合に引数4を返します。
*<code><nowiki>{{#ifeq: 3.1416 | 3.1416 | 等しい | 等しくない }}</nowiki></code>:{{#ifeq: 3.1416 | 3.1416 | 等しい | 等しくない }}
*<code><nowiki>{{#ifeq: 已己巳己 | 己巳已巳 | 等しい | 等しくない }}</nowiki></code>:{{#ifeq: 已己巳己 | 己巳已巳 | 等しい | 等しくない }}
*<code><nowiki>{{#ifeq: {{#expr: ( 6 ^ 6 + 6 ) / ( 6 + 6 / 6 ) }} | 6666 | 等しい | 等しくない }}</nowiki></code>:{{#ifeq: {{#expr: ( 6 ^ 6 + 6 ) / ( 6 + 6 / 6 ) }} | 6666 | 等しい | 等しくない }}
===switch===
switch関数は以下のように書かれ、引数1と同じ<値>が見つかった場合にその<値>に付いている等号の右側にある<返り値>を返し、見つからなかった場合に関数の最後の区切りに書かれた文字列(<見つからなかったときの返り値>)を返します。
<pre>
{{#switch: 引数1
| 値1 = 返り値1
| 値2 = 返り値2
...
| 値n = 返り値n
|<見つからなかったときの返り値>
}}
</pre>
*<code><nowiki>{{#switch: 月 | 鶴 = 20点 | 鶯 = 20点 | 幕 = 20点 | 不如帰 = 10点 | 八橋 = 10点 | 蝶 = 10点 | 猪 = 10点 | 月 = 20点 | 盃 = 20点 | 鹿 = 20点 | 小野道風 = 20点 | 鳳凰 = 20点 | 該当する札がありません。}}</nowiki></code>:{{#switch: 月 | 鶴 = 20点 | 鶯 = 20点 | 幕 = 20点 | 不如帰 = 10点 | 八橋 = 10点 | 蝶 = 10点 | 猪 = 10点 | 月 = 20点 | 盃 = 20点 | 鹿 = 20点 | 小野道風 = 20点 | 鳳凰 = 20点 | 該当する札がありません。}}
==モジュール==
'''モジュール'''は、Luaというプログラミング言語を用いてさまざまなことができる拡張機能です。
==Botによる編集==
'''Botによる編集'''の方法については、実のところ、常習者の誰も理解していません。ページ情報の取得や記事の編集・作成などが自動でできるようですが、本当にそんなことができるのでしょうか。APIとやらを使うようですが、果たしてAPIとは何者なのでしょうか。

2年5月15日 (I) 11:48時点における版

このページでは、ソース早見表で紹介したものよりさらに高度なコードについて紹介します。

TemplateStyles

TemplateStylesは、テンプレートページにCSSを読み込むことができる拡張機能です。手順は以下の通りです。

  1. テンプレートページに、.css で終わるサブページを作る。(例: テンプレート:テスト/style.css
  2. そのサブページにCSSを書きまくる。
  3. テンプレートページに<templatestyles src="テンプレート名/サブページ名" />と入力してCSSページを呼び出す。(例: <templatestyles src="テスト/style.css" />
  4. テンプレートにCSSが反映され、常習者は歓喜する。

パーサ関数

パーサ関数は、条件分岐を扱うことのできる特殊な文字列です。一般に、形式は

{{#関数名: 引数1 | 引数2 | 引数3...}}

となっています。「関数名」のところにはexpr, if, ifeq, ifexist, ifexpr, switch, time, timel, rel2abs, titleparts, iferror のいずれかが入り、「引数n」のところには任意の数値や文字列が入ります。関数がこれらの数値や文字列を処理することで、{{-}}の部分が何らかの値に変わります。

さて、ここでは、よく用いられる関数 expr, if, ifeq, ifexpr, switch の機能を一つひとつ見ていきましょう。

expr

expr関数は、引数を数式として評価し、その計算結果を返します。さまざまな演算子が使用できます。

  • {{#expr: 3 * ( 2 + 7 ) }}:27
  • {{#expr: 17 mod 4}}:1
  • {{#expr: 923487 > 43598}}:1

if

if関数は、引数1が数値0でもスペースでも長さ0の文字列でもない場合に引数2を、左のいずれかである場合に引数3を返します。

  • {{#if: ああああ | 空文字列でない | 空文字列である }}:空文字列でない
  • {{#if: 9 > 11 | 真です | 偽です }}:真です(文字列「9 > 11」は空文字列ではないため)

ifexpr

ifexpr関数はif関数とexpr関数を組み合わせたようなもので、引数1を数式として評価し、その計算結果が数値0でもスペースでも長さ0の文字列でもない場合に引数2を、左のいずれかである場合に引数3を返します。

  • {{#ifexpr: 923487 > 43598 | 真 | 偽 }}:真
  • {{#ifexpr: 9 > 11 | 真です | 偽です }}:偽です

ifeq

ifeq関数は、引数1と引数2を比較し、同値である場合に引数3を、そうでない場合に引数4を返します。

  • {{#ifeq: 3.1416 | 3.1416 | 等しい | 等しくない }}:等しい
  • {{#ifeq: 已己巳己 | 己巳已巳 | 等しい | 等しくない }}:等しくない
  • {{#ifeq: {{#expr: ( 6 ^ 6 + 6 ) / ( 6 + 6 / 6 ) }} | 6666 | 等しい | 等しくない }}:等しい

switch

switch関数は以下のように書かれ、引数1と同じ<値>が見つかった場合にその<値>に付いている等号の右側にある<返り値>を返し、見つからなかった場合に関数の最後の区切りに書かれた文字列(<見つからなかったときの返り値>)を返します。

{{#switch: 引数1
| 値1 = 返り値1
| 値2 = 返り値2
...
| 値n = 返り値n
|<見つからなかったときの返り値>
}}
  • {{#switch: 月 | 鶴 = 20点 | 鶯 = 20点 | 幕 = 20点 | 不如帰 = 10点 | 八橋 = 10点 | 蝶 = 10点 | 猪 = 10点 | 月 = 20点 | 盃 = 20点 | 鹿 = 20点 | 小野道風 = 20点 | 鳳凰 = 20点 | 該当する札がありません。}}:20点

モジュール

モジュールは、Luaというプログラミング言語を用いてさまざまなことができる拡張機能です。

Botによる編集

Botによる編集の方法については、実のところ、常習者の誰も理解していません。ページ情報の取得や記事の編集・作成などが自動でできるようですが、本当にそんなことができるのでしょうか。APIとやらを使うようですが、果たしてAPIとは何者なのでしょうか。