クレジットの仕様書

クレジットの概要: 指定のボタンを押した際に、その作品の著者(翻訳文なら原著者)、記事タイトルが表示される(翻訳文の場合は元記事へのリンク表示)。

タイトルの取得方法: 必ずしも分ける必要はないが、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

このページのタグを操作し出力結果を検証して頂きたい。

scp
特に指定がない限り、このサイトのコンテンツには次のライセンスが適用されます: Creative Commons Attribution-ShareAlike 3.0 License