「MediaWiki」の版間の差分

提供:GNU social JP Wiki
(Languageとカテゴリー。)
(シンタックスハイライトエラー解消。)
190行目: 190行目:
Ref: [[mediawikiwiki:Topic:Ua1cqlfd07kyvd8p|How to Embed List of All Namespace-Pages in a Wiki Page? on Project:Support desk]]
Ref: [[mediawikiwiki:Topic:Ua1cqlfd07kyvd8p|How to Embed List of All Namespace-Pages in a Wiki Page? on Project:Support desk]]


カスタム名前空間Privateで非公開ページを作ったら、Privateのページ一覧をメインページに表示させたくなった。若干工夫がいる。<syntaxhighlight>
カスタム名前空間Privateで非公開ページを作ったら、Privateのページ一覧をメインページに表示させたくなった。若干工夫がいる。
{{Special:Prefixindex/<custom namespace>:}}
<nowiki>{{Special:Prefixindex/<custom namespace>:}}</nowiki>
</syntaxhighlight><custom namespace>部分にカスタム名前空間を指定する。これで一覧ページを開ける。大事なのは末尾の:。これで先頭一致でページ一覧のページになっている。これをtransclusionする形。
<custom namespace>部分にカスタム名前空間を指定する。これで一覧ページを開ける。大事なのは末尾の:。これで先頭一致でページ一覧のページになっている。これをtransclusionする形。
==Setting==


== Setting ==
===Private===
 
=== Private ===
特定ページを非公開にすることができる。後日方法を精査する。
特定ページを非公開にすることができる。後日方法を精査する。


* [https://irineko.hatenablog.com/entry/2021/01/06/194908 mediawiki 特定のページの閲覧制限をしたい。 - 人狼wiki更新情報]
*[https://irineko.hatenablog.com/entry/2021/01/06/194908 mediawiki 特定のページの閲覧制限をしたい。 - 人狼wiki更新情報]
* [[mediawikiwiki:Manual:Preventing_access/ja|Manual:アクセス制限 - MediaWiki]]
*[[mediawikiwiki:Manual:Preventing_access/ja|Manual:アクセス制限 - MediaWiki]]
全体設定としては以下がある。基本非公開で一部公開の場合に使える。
全体設定としては以下がある。基本非公開で一部公開の場合に使える。
  # Disable reading by anonymous users
  # Disable reading by anonymous users
212行目: 211行目:
今回は基本公開で一部非公開。
今回は基本公開で一部非公開。


* ユーザー属性での管理。
*ユーザー属性での管理。
* 名前空間での管理 (LockDown拡張機能)。
*名前空間での管理 (LockDown拡張機能)。


Lockdownを試す。
Lockdownを試す。
219行目: 218行目:
「[https://web.gnusocial.jp/post/2024/02/03/10009/ 機能: MediaWikiでのLockdown拡張を用いた名前空間単位の非公開ページ | GNU social JP Web]」に記した。
「[https://web.gnusocial.jp/post/2024/02/03/10009/ 機能: MediaWikiでのLockdown拡張を用いた名前空間単位の非公開ページ | GNU social JP Web]」に記した。


=== $wgCapitalLinks ===
=== $wgCapitalLinks===
出典: [[mediawikiwiki:Manual:$wgCapitalLinks|Manual:$wgCapitalLinks - MediaWiki]]。
出典: [[mediawikiwiki:Manual:$wgCapitalLinks|Manual:$wgCapitalLinks - MediaWiki]]。


226行目: 225行目:
$wgCapitalLinks = falseにするとこれを無効にできる。大文字小文字を完全に区別する。例えば、iPhoneなどのように、大文字小文字が重要なことがあるので、falseにしておくのがよいと思う。リンク切れにも影響するので最初の方で設定するとよい。
$wgCapitalLinks = falseにするとこれを無効にできる。大文字小文字を完全に区別する。例えば、iPhoneなどのように、大文字小文字が重要なことがあるので、falseにしておくのがよいと思う。リンク切れにも影響するので最初の方で設定するとよい。


== Other ==
==Other==


=== Analytics ===
===Analytics===
サイトのアクセス分析のためにGoogle Analyticsを設置したい。いくつか拡張機能がある。GA4対応が重要な項目。
サイトのアクセス分析のためにGoogle Analyticsを設置したい。いくつか拡張機能がある。GA4対応が重要な項目。


* [[mediawikiwiki:Extension:Google_Analytics_Integration|Extension:Google Analytics Integration - MediaWiki]]: 翻訳は更新されているがベースコードは2017年のv3.0.1で古い。
*[[mediawikiwiki:Extension:Google_Analytics_Integration|Extension:Google Analytics Integration - MediaWiki]]: 翻訳は更新されているがベースコードは2017年のv3.0.1で古い。
* [[mediawikiwiki:Extension:GoogleAnalyticsMetrics|Extension:GoogleAnalyticsMetrics - MediaWiki]]: 2023-01 v1.0.2。Google Analyticsからメトリクスを取得して挿入する。アクセスカウンター的な拡張機能な模様 (関連: [[mediawikiwiki:Extension:HitCounters|Extension:HitCounters - MediaWiki]])。
*[[mediawikiwiki:Extension:GoogleAnalyticsMetrics|Extension:GoogleAnalyticsMetrics - MediaWiki]]: 2023-01 v1.0.2。Google Analyticsからメトリクスを取得して挿入する。アクセスカウンター的な拡張機能な模様 (関連: [[mediawikiwiki:Extension:HitCounters|Extension:HitCounters - MediaWiki]])。
* [[mediawikiwiki:Extension:Google_Analytics_Links|Extension:Google Analytics Links - MediaWiki]]: 2009年v1.2。古い。MediaWiki v1.39以上で動作しない。
*[[mediawikiwiki:Extension:Google_Analytics_Links|Extension:Google Analytics Links - MediaWiki]]: 2009年v1.2。古い。MediaWiki v1.39以上で動作しない。
* [[mediawikiwiki:Extension:GoogleAnalyticsTopPages|Extension:GoogleAnalyticsTopPages - MediaWiki]]: 2014年v0.0.1。アクセス上位ページのリストを生成する。
*[[mediawikiwiki:Extension:GoogleAnalyticsTopPages|Extension:GoogleAnalyticsTopPages - MediaWiki]]: 2014年v0.0.1。アクセス上位ページのリストを生成する。
* [[mediawikiwiki:Extension:GoogleTagManager|Extension:GoogleTagManager - MediaWiki]]: 2023年v.1.1。Google Tag Managerを設置する。
*[[mediawikiwiki:Extension:GoogleTagManager|Extension:GoogleTagManager - MediaWiki]]: 2023年v.1.1。Google Tag Managerを設置する。
* [[mediawikiwiki:Extension:GTag|Extension:GTag - MediaWiki]]、[https://mirukupc.com/2022/04/01/?p=169 MediaWikiでGoogle AnalyticsのGA4を使う - ミルクPCのブログ] (GTag): 2023 v1.3.0。新しいGoogle Analyticsのトラッキングタグに対応している。
*[[mediawikiwiki:Extension:GTag|Extension:GTag - MediaWiki]]、[https://mirukupc.com/2022/04/01/?p=169 MediaWikiでGoogle AnalyticsのGA4を使う - ミルクPCのブログ] (GTag): 2023 v1.3.0。新しいGoogle Analyticsのトラッキングタグに対応している。
* [https://github.com/harugon/Gtm GitHub - harugon/Gtm: MediaWikiにGoogle Tag Managerを追加します]: Google Tag Manager。
*[https://github.com/harugon/Gtm GitHub - harugon/Gtm: MediaWikiにGoogle Tag Managerを追加します]: Google Tag Manager。
* [[mediawikiwiki:Extension:Matomo|Extension:Matomo - MediaWiki]]: Google Analyticsではない分析サービスの拡張機能。
*[[mediawikiwiki:Extension:Matomo|Extension:Matomo - MediaWiki]]: Google Analyticsではない分析サービスの拡張機能。


公式プラグインを優先したい。
公式プラグインを優先したい。
246行目: 245行目:
「[https://web.gnusocial.jp/post/2024/01/04/9756/ 拡張: MediaWikiのGoogle Analytics追跡拡張機能GTag | GNU social JP Web]」で設置した。
「[https://web.gnusocial.jp/post/2024/01/04/9756/ 拡張: MediaWikiのGoogle Analytics追跡拡張機能GTag | GNU social JP Web]」で設置した。


=== Advertise ===
=== Advertise===


==== 広告ブロッカー対策 ====
====広告ブロッカー対策====
出典: [https://dajya-ranger.com/pukiwiki/defend-site-content-for-pukiwiki/ 【PukiWiki編】広告ブロッカーからサイトコンテンツと収益を守る! | SEの良心]。
出典: [https://dajya-ranger.com/pukiwiki/defend-site-content-for-pukiwiki/ 【PukiWiki編】広告ブロッカーからサイトコンテンツと収益を守る! | SEの良心]。


MediaWikiでも同様の方法で広告ブロッカー対策を導入できそう。
MediaWikiでも同様の方法で広告ブロッカー対策を導入できそう。


==== Adsense ====
====Adsense====
Google Adsense設置用のプラグインがいくつかある。
Google Adsense設置用のプラグインがいくつかある。


* [[mediawikiwiki:Extension:Google_AdSense|Extension:Google AdSense - MediaWiki]]: MediaWiki v1.37以上で非互換。
*[[mediawikiwiki:Extension:Google_AdSense|Extension:Google AdSense - MediaWiki]]: MediaWiki v1.37以上で非互換。
* [[mediawikiwiki:Extension:ShoutWiki_Ads|Extension:ShoutWiki Ads - MediaWiki]]
*[[mediawikiwiki:Extension:ShoutWiki_Ads|Extension:ShoutWiki Ads - MediaWiki]]
* [[mediawikiwiki:Extension:Widgets|Extension:Widgets - MediaWiki]]
*[[mediawikiwiki:Extension:Widgets|Extension:Widgets - MediaWiki]]
* [https://knowledge.rinpress.com/index.php/MediaWiki%E3%81%ABGoogle_AdSense%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F MediaWikiにGoogle AdSenseを追加してみた - とある社畜の頭脳整理]、[https://dococo.jp/index.php/Mediawiki%E3%81%A7Google_Adsense%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95 MediawikiでGoogle Adsenseを表示させる方法 - dococo wiki]、[https://dococo.jp/index.php?title=MediaWiki%E3%81%A7Google_Adcence MediaWikiでGoogle Adcence - dococo wiki]: HTMLetsを使うらしい。
*[https://knowledge.rinpress.com/index.php/MediaWiki%E3%81%ABGoogle_AdSense%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F MediaWikiにGoogle AdSenseを追加してみた - とある社畜の頭脳整理]、[https://dococo.jp/index.php/Mediawiki%E3%81%A7Google_Adsense%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95 MediawikiでGoogle Adsenseを表示させる方法 - dococo wiki]、[https://dococo.jp/index.php?title=MediaWiki%E3%81%A7Google_Adcence MediaWikiでGoogle Adcence - dococo wiki]: HTMLetsを使うらしい。


ShoutWiki AdsかWidgetsで設置する模様。基本はJavaScriptコードの設置。
ShoutWiki AdsかWidgetsで設置する模様。基本はJavaScriptコードの設置。


[[Category:Other]]
[[Category:Other]]

2024年8月28日 (水) 08:24時点における版

About

MediaWikiはWikipediaで採用されている世界一有名なWikiソフトだ。

GNU social JP WikiもMediaWikiを採用している (告知: 自由な分散SNSのWiki「GNU social JP Wiki」の開始とサービス名の改名 | GNU social JP Web)。

WordPress Wikiの作成方法(徹底解説)」にあるように、WordPressでも似たようなWikiサイトの構築は可能。

Install

Operation

Manual:Administrators - MediaWiki

Protection

荒らしや編集合戦対策で、ページを保護することで、編集を権限者に限定できる。

Block

Ref:

サイトが悪党に荒らされた場合の対策。該当アカウントをブロックできる。

ブロックの効果: 編集軽作業が不能になる。

荒らされたページや、新規作成されたページは、復元か削除で対応する。

方法。

  • Special:Blockにアクセス。IPアドレスかユーザー名を指定。
  • 他に、利用者か利用者トークページを開くと、サイドバーにブロックのリンクがあり、そこからも実施可能。

オプション

  • アカウント作成をブロック: そのIPアドレスから新規登録を不能にする。
  • 最後の使用IPアドレスと編集アドレスをブロック (ハードブロック):

Revert/Rollback

Ref: Manual:Reverts - MediaWiki

MediaWikiで誰かの編集を打ち消したり元に戻す機能。基本的に、復元用の履歴を作って元に戻す。

Revert (undo) は、ページを任意の履歴に戻す。現在のページからその履歴までの変更点を逆に適用して、新しい履歴を作る。基本的に誰でもできる。

Rollback/ロールバックは、ページに対して、同じユーザーによる最後の編集をまとめて巻き戻す。rollback権限が必要。シナリオとしては、同一ユーザーにより荒らしなどで大量に編集、破壊された場合に一括で戻せる。

なお、ページが誕生して以来1名のユーザーしか編集していない場合、ページの作成時点まで戻るので使用できない。

ロールバックを実行すると、「Ctkpaarr964565498 (トーク) による編集を Gnusocialjp による直前の版へ差し戻しました」のメッセージで、変更を打ち消し履歴が作られる。

Right

アクセス管理がユーザーやグループ単位でできる。

$wgGroupPermissions[グループ名][権限] で制御する。いくつか便利な設定、よくやる設定がある。

# Prevent new user registrations except by sysops
$wgGroupPermissions['*']['createaccount'] = false;

Spam

Manual:Combating spam - MediaWiki」にMediaWikiのスパム対策の基本がまとまっている。

ページ分類方法

world-walker スタッフ ブログ:MediaWikiのページ分類方法についての考察

  • 名前空間(Namespace)
  • カテゴリ(Category)
  • サブページ(Subpage)

MediaWikiでは上記の3種類のページ分類方法がある。それぞれ一長一短。

だが、基本的にはCategoryでやるのが一番汎用的。1個のページが複数の分類にしたいということがよくある。名前空間とサブページだとそれができない。親は常に1個。住所のような完全に上下関係が一致するなら問題ないが、後で変えるのもたいへん。

Category

About

Help:カテゴリ - MediaWiki

ページをグループ化する機能。重要。

カテゴリーへのページの追加は、追加対象ページに [[Category:カテゴリ名]] を追加するだけ。どこでもいい。最下部が一般的。

カテゴリーページ自体へのリンクを張る場合、[[:Category:カテゴリー名]] のように、先頭に:を付与する。

カテゴリーが未作成なら、同時にカテゴリーの未作成ページができる。カテゴリーページはカテゴリーページで、作成が必要。カテゴリー自体も作成はできる。通常のページ同様に、 [Category:カテゴリー名] で検索して、新規作成する。

新規作成すると、CategoryTree拡張機能で、自動的にカテゴリー一覧が末尾に表示される。

カテゴリー自体も別のカテゴリーに属すことができる。ページ同様に、カテゴリーページに [[Category:カテゴリ名]] を追加するだけ。

カテゴリーの階層の保守としては、カテゴリーでツリー構造になっているときれい。サブページに近い。カテゴリーでWiki全体を分類してまとめられる。Category:Mainをカテゴリーのルートにするときれいかもしれない。

List

カテゴリーの一覧表示は、標準拡張機能の「Extension:CategoryTree - MediaWiki」で可能になる。transclude (参照読込) ではできない (Transclude a category in MediaWiki - Stack Overflow)。

CategoryTreeは以下の3種類の使用方法がある。

  1. カテゴリーページでデフォルト表示。
  2. カスタムタグ (categorytree )。
  3. special page (Special:CategoryTree)

categorytree要素は以下のような形式で使う。

<categorytree showcount="on" mode="all">Main</categorytree>

重要なオプションがある。

  • mode: 初期値が複雑。namespacesで上書き。なければ、項目が有無で決まる。allかpages (上限200ページ) を指定しておけばいいと思われる。ページ数が膨大ならpages。
  • showcount: "on"でカテゴリーの記事数表示。categorytree要素でのみデフォルトoff。

Language

日本語にすると、ヘルプとか特別とかが日本語のURLになるのが嫌。

「Manual:Language - MediaWiki」

Page content languageで変更できる?

「Manual:FAQ - MediaWiki」

Special:Allmessagesにシステムメッセージのリストがある。例えば、「特別ページ」は「specialpage 」が対応している。[Special:AllMessages] は「システムメッセージの一覧」 で対応している。

[MediaWiki:Allmessages] のページでシステムメッセージが格納されている。[MediaWiki:Allmessages/ja] で言語対応が出る。

「Manual:$wgUseDatabaseMessages - MediaWiki」で選択できる。falseにするとwpLanguageCodeで強制指定。trueだと自分で変更できる。

特に重要なもの。

nstab-special Special

specialpage

specialpages 特別ページ一覧

Special:の扱いがよくわからない。カテゴリーじゃなくて名前空間。

Manual:Configuration settings - MediaWiki

Manual:Special pages - MediaWiki

The Special pseudo namespace can be translated in other languages. 翻訳可能。「Manual:Namespace - MediaWiki」によると、「Manual:$wgNamespaceAliases - MediaWiki」で翻訳可能?

「Manual:Namespace constants - MediaWiki」が定数。

NS_SPECIALを指定すると、翻訳が無効になる?

$wgNamespaceAliases['特別'] = NS_SPECIAL;

「How to switch from german namespace to english? on Project:Support desk」これが近い。

Markup

Transclusion

MeidaWikiでは他のページの内容を埋め込むことが可能で、この機能を [Transclusion/参照読み込み](https://www.mediawiki.org/wiki/Transclusion) と呼んでいる。

{{<page name>}} のように、二重波括弧でページ名を指定すると埋め込める。埋め込み元で、埋め込みの許可・禁止ブロックをマークアップで指定することもできる。

参照読み込み可能な特別ページは限定されていて、以下となる。

  • Special:AllPages
  • Special:PrefixIndex
  • Special:NewFiles
  • Special:NewPages
  • Special:RecentChanges
  • Special:RecentChangesLinked.

トップページでの埋め込み表示などで便利なものがある。AllPages/NewPages/RecentChangesあたりが特に便利そうだ。

テンプレート的な使い方などで、駆使できると便利だろう。

HTML

MediaWikiでHTMLの要素をいくつか使用できる。

LocalSetting.phpで$wgRawHtml = true (デフォルトfalse) にすれば、html要素内でHTMLを無制限で使用可能になる。

Page

Ref: How to Embed List of All Namespace-Pages in a Wiki Page? on Project:Support desk

カスタム名前空間Privateで非公開ページを作ったら、Privateのページ一覧をメインページに表示させたくなった。若干工夫がいる。

{{Special:Prefixindex/<custom namespace>:}}

<custom namespace>部分にカスタム名前空間を指定する。これで一覧ページを開ける。大事なのは末尾の:。これで先頭一致でページ一覧のページになっている。これをtransclusionする形。

Setting

Private

特定ページを非公開にすることができる。後日方法を精査する。

全体設定としては以下がある。基本非公開で一部公開の場合に使える。

# Disable reading by anonymous users
$wgGroupPermissions['*']['read'] = false;

# Disable anonymous editing
$wgGroupPermissions['*']['edit'] = false;

# Prevent new user registrations except by sysops
$wgGroupPermissions['*']['createaccount'] = false;

今回は基本公開で一部非公開。

  • ユーザー属性での管理。
  • 名前空間での管理 (LockDown拡張機能)。

Lockdownを試す。

機能: MediaWikiでのLockdown拡張を用いた名前空間単位の非公開ページ | GNU social JP Web」に記した。

$wgCapitalLinks

出典: Manual:$wgCapitalLinks - MediaWiki

MediaWikiはデフォルトでページ名やページURLの先頭1文字目が大文字になる。

$wgCapitalLinks = falseにするとこれを無効にできる。大文字小文字を完全に区別する。例えば、iPhoneなどのように、大文字小文字が重要なことがあるので、falseにしておくのがよいと思う。リンク切れにも影響するので最初の方で設定するとよい。

Other

Analytics

サイトのアクセス分析のためにGoogle Analyticsを設置したい。いくつか拡張機能がある。GA4対応が重要な項目。

公式プラグインを優先したい。

GTag、GoogleTagManager。これらが設置用にみえる。詳細に検討してみる。Google Tag ManagerはAnalyticsを含めて汎用的なことができる。ひとまずよくわからないので、シンプルなGTagを使ってみるとよさそう。

拡張: MediaWikiのGoogle Analytics追跡拡張機能GTag | GNU social JP Web」で設置した。

広告ブロッカー対策

出典: 【PukiWiki編】広告ブロッカーからサイトコンテンツと収益を守る! | SEの良心

MediaWikiでも同様の方法で広告ブロッカー対策を導入できそう。

Adsense

Google Adsense設置用のプラグインがいくつかある。

ShoutWiki AdsかWidgetsで設置する模様。基本はJavaScriptコードの設置。