クレジットの概要: 指定のボタンを押した際に、その作品の著者(翻訳文なら原著者)、記事タイトルが表示される(翻訳文の場合は元記事へのリンク表示)。
タイトルの取得方法: 必ずしも分ける必要はないが、SCP記事はSCP-JP記事一覧及び「翻訳記事著作者ページ一覧」から取得し、Tale記事は[[module ListPages]]の%%title%%から取得するのが楽。
ただし、後述するように翻訳記事の原著者はTaleページ一覧等から取得する必要がある。
基本技巧
iftags構文: iftagsは現在のページの指定したタグの有無に応じてページの内容を書き換える構文である。例えば現在のこのページにはscpとscp-jpというタグが付けられている。複数のタグを指定する場合は半角スペースで区切る。
この状態で下記の構文の構文の出力を調べる。
1.
[[iftags scp scp-jp]]test[[/iftags]]
test
2.
[[iftags scp tale]]test[[/iftags]]
test
3.
[[iftags scp +tale]]test[[/iftags]]
4.
[[iftags -tale]]test[[/iftags]]
test
5.
[[iftags scp -scp-jp]]test[[/iftags]]
test
6.
[[iftags +scp -scp]]test[[/iftags]]
7.
[[iftags -scp +scp]]test[[/iftags]]
1,2,4のみが出力されている。
iftagsではタグの文頭に+,-もしくは何もつけないかでタグの存在条件を指定できる。
<tag> この構文で指定したタグのいずれかが存在する場合、文章を表示する(OR相当)
+<tag> 指定したタグが必ず存在しなければ、文章を表示しない (AND相当)
-<tag> 指定したタグが存在する場合、文章ををしない
これらの条件優先度は冒頭の実験結果からわかる通り、
-<tag> > +<tag> > tag
という順番になっている。
翻訳記事著作ページ一覧の取得方法: 下記の構文を使用。
[[module ListPages range="."]]
[[%%content{0}%%html]]
[[include :scp-jp:credits-scp-001-999]]
※以下翻訳記事著作者ページ等の一覧のインクルード文
[[/html]]
[[/module]]
上記の構文を使用した際、該当するページのwikidot構文がhtmlに書き出される。
例:
[[module ListPages range="."]]
[[%%content{0}%%html]]
<textarea style="width:100%;height:200px;">
[[include :scp-jp:credits-scp-001-999]]
</textarea>
[[/html]]
[[/module]]
↓実際の表示
また[[module ListPages]]で取得できるパラメーターを内部のhtmlに反映可能(パラメーターによってhtmlブロック内部のjavascriptを書き換える事も可能)。
例:
[[module ListPages range="."]]
[[%%content{0}%%html]]
<textarea style="width:100%;height:100px;">
%%fullname%% このページのURL
%%title%% このページのタイトル
</textarea>
[[/html]]
[[/module]]
↓実際の表示
現在のページがSCPかTaleか調べる
概要: [[module ListPages]]の%%tags%%を使用する。下記構文を使うと%%tags%%と指定した箇所に、現在のページのタグが半角スペース分けで表示される。
[[module ListPages range="."]]
[[%%content{0}%%html]]
<textarea style="width:100%;height:50px;">
%%tags%%
</textarea>
[[/html]]
[[/module]]
↓実際の表示
これを利用してjavascriptの変数に%%tags%%を入れ、現在のページがSCP(SCPならどの支部か)、Tale(どの支部か)に分ける。
支部の優先度及びサンプル: 本家以外のSCP及びTaleは
scp-<支部記号>
tale-<支部記号>
という形式のタグが付けられる。このタグから現在のページがどの支部の作品であるかを判定できる。
[[module ListPages range="."]]
[[%%content{0}%%html]]
<textarea id="test" style="width:100%;height:50px;">
%%tags%%
</textarea>
<script type="text/javascript">
var tag = "%%tags%%";
document.addEventListener( 'DOMContentLoaded',function() {
var show;
if(tag.indexOf("scp") >= 0){
//scpのどの支部か判定
if(tag.indexOf("scp-jp") >= 0){
show = "日本";
}else{
show = "アメリカ";
}
}else{
//Tale等
}
document.getElementById("test").value = show;
});
</script>
[[/html]]
[[/module]]
↓ 実際の表示
SCP及びTale記事には稀に支部を示すscp-jp等のタグと一緒にscp等のSCP-ENの作品を示すタグが併設されている場合がある。しかしSCP-ENの作品に支部を示すタグがついている事はない為、SCP-ENの作品を示すタグの取得優先度は最低にする事。支部を示すタグについての取得優先度の指定はない。
SCP支部及びトップページURL一覧:支部 | 支部記号 | トップページ |
---|---|---|
本家 | <なし> | http://www.scp-wiki.net/" |
ロシア | ru | http://scpfoundation.ru/ |
韓国 | ko | http://ko.scp-wiki.net/ |
中国 | cn | http://scp-wiki-cn.wikidot.com/ |
フランス | fr | http://fondationscp.wikidot.com/ |
ポーランド | pl | http://scp-pl.wikidot.com/ |
スペイン | es | http://lafundacionscp.wikidot.com/ |
タイ | th | http://scp-th.wikidot.com/ |
ドイツ | de | http://scp-wiki-de.wikidot.com/ |
イタリア | it | http://fondazionescp.wikidot.com/ |
日本 | jp | http://ja.scp-wiki.net/ |
翻訳SCP及びSCP-JPのクレジット
iftagsを用いた自動取得と手入力の切り替え
iftagsの文章制御は[[module ListPages]]の取得パラメータにも適用できる。
構文:
[[module ListPages range="."]]
**作者:** [[iftags scp-jp]]%%created_by%%[[/iftags]]
**作者:** [[iftags -scp-jp]]%%created_by%%[[/iftags]]
[[/module]]
出力結果:
作者:
作者: C-take
従って下記の構文によって記事がJP記事かそれ以外かで自動取得か手入力か選択できる。
構文:
[[module ListPages range="."]]
**作者:** [[iftags scp-jp tale-jp]]%%created_by%%[[/iftags]][[iftags -scp-jp -tale-jp]]hogehoge[[/iftags]]
**制作:** [[iftags scp-jp tale-jp]]%%created_at%%[[/iftags]][[iftags -scp-jp -tale-jp]]hogehoge[[/iftags]]
[[/module]]
出力結果↓
作者: hogehoge
制作: hogehoge
このページのタグを操作し出力結果を検証して頂きたい。