Postscript

提供:きまぐれ手記 Kimagurenote
移動先: 案内検索
当サイトではアフィリエイト広告を掲載しています
この記事は、最終更新日よりおよそ 11 ヶ月経過しています。 公式サイトなどで最新情報を確認してください。(最終更新:2023年8月)
English information available at mw:Extension:Postscript

Extension:Postscript は、全ての記事の末尾に自動的に文字列(またはスクリプト)を自動的に追加するために自作した、MediaWikiExtension(拡張機能)

Extension:HeadScript の末尾版。意外にも無かったので自作した:)。

筆者は Google Adsense 広告ユニットを記事末尾に貼るために使っているが、ナビゲーションメニューなど、フッターではなく本文中の末尾に貼りたい画像等を追加するにも有効。ただしWikiの書式は使えないのでHTMLで記述する必要がある。

ただし、名前空間毎に指定する必要がある。また、v1.0.2 より空のページと転送元ページでは動作しない。
ただし、HeadScript は‎<head>...‎</head>に入るのに対し、Postscriptは‎<body>...‎</body>に入る。#追加される場所を知りたい
これを作った後で Extension:BodyScript というのを見つけたが、ソースを覗いた感じでは(存在しないメソッドを呼んだりしていたので)たぶん動かないと思う…
Wikiの書式を貼りたい場合は、mw:Extension:Header Footermw:Extension:PageNotice などが既にある。

初期設定 Setting

Download

Postscript_20230815.zip (5KB)

Download and unzip it on your MediaWiki extensions directory.

You can use it freely at your own risk. I license it under the Revised BSD License.

English installation guide is here.

LocalSettings.php

Edit LocalSettings.php file to add below.

LocalSettings.php 
/* Extension:Postscript */
wfLoadExtension( 'Postscript' );

$wgPostscriptText[NS_MAIN] = <<<'START_END_MARKER'
<script>…</script>
START_END_MARKER;

$wgPostscriptText[NS_FILE] = <<<'START_END_MARKER'
<script>…</script>
START_END_MARKER;

And check Special:Version on your wiki.

FAQ

追加される場所を知りたい

v1.0.0 (ContentAlterParserOutput) では本文の末尾に追加していたが、v1.0.1 (BeforePageDisplay) 以降では、本文とフッターの間に追加する。

出力イメージ(概略) 
<html>
	<head>
		<!-- Extension:HeadScript はここに追加される -->
	</head>
	<body class="mediawiki">
		<div id="bodyContent">
			<div id="mw-content-text" class="mw-body-content">
				<div class="mw-parser-output">
					(記事本文)
					<!-- v1.0.0 ではここに追加していた -->
					<!-- NewPP limit report -->
					<!-- Transclusion expansion time report -->
				</div>
				<!-- Extension:Postscript (v1.0.1) はここに追加する -->
			</div>
			<div class="printfooter">
			</div>
		</div>
		<div id="sidebar-right">
		</div>
		<footer id="footer" class="footer">
		</footer>
	</body>
</html>

変更した理由は、v1.0.0 の処理ではなぜか Extension:Popups が動かなくなったため、試しにHookを変更してみたら、Popupsが動くようになったから。 Popupsを併用しないなら、どちらでも問題ないと思う。たぶん。

強いて言えば、v1.0.0 では parser cache に含まれたが、v1.0.1 では含まれない(都度生成される、変更してもpurgeをする必要がない)違いがある。

History

2023.08.15 (v1.0.2)
空のページと転送元ページでは動作しないようにした。
(転送元ページを redirect=no で開いた場合は動作する。)
2023.08.02 (v1.0.1)
なぜか Extension:Popups が動かなくなったため、回避を試行。Hookを変更してみた:ContentAlterParserOutputBeforePageDisplay
2023.08.01 (v1.0.0)
初版

Links

Related articles