LogoMark.png

MediaWiki/Customize の変更点


#author("2021-07-22T14:47:14+09:00;2019-12-07T20:45:10+09:00","default:inoue.ko","inoue.ko")
*MediaWiki
Customize
~

***CONTENTS
#contents2_1
~


**基本仕様のカスタマイズ

***既定のタイムゾーンを設定
LocalSettings.php の最下部に以下の記述があります。
 # Add more configuration options below.
その行の下に、以下のように追加の設定情報を記述します。
 $wgLocaltimezone = "Asia/Tokyo";
 date_default_timezone_set( $wgLocaltimezone );
~


***サーチエンジンに関する設定(インデックス化とリンク追跡を拒否)
インデックス化とリンク追跡を拒否したい場合は、LocalSettings.php に以下の記述を追加します。
 $wgDefaultRobotPolicy = 'noindex,nofollow';
~


***閲覧・編集権限
同様に、LocalSettings.php の最下部に、追加の設定情報を記述します。

-匿名利用者の閲覧を有効(true) / 無効(false)
 $wgGroupPermissions['*']['read'] =true;  // デフォルトは true

-以下のページだけ閲覧することを許可する(ホワイトリストの書き方)
 $wgWhitelistRead =  array (
  "メインページ",
  "Special:Userlogin",
  "Help:Contents"
 );

-匿名利用者の編集を有効(true) / 無効(false)
デフォルトではオープンな仕様(誰でも編集可能)になっています。
 $wgGroupPermissions['*']['edit'] = false;

-デフォルトグループ user のみに編集権限を与える(デフォルト仕様)
 $wgGroupPermissions['*']['edit'] = false;
 $wgGroupPermissions['user']['edit'] = true;

-ユーザーグループ member_A に対してのみ編集を許可する
 $wgGroupPermissions['*']['edit'] = false;
 $wgGroupPermissions['user']['edit'] = false;
 $wgGroupPermissions['member_A']['edit'] = true;


-利用者から版やログを隠す
LocalSettings.php に以下を追記すると、sysop は、版指定削除(deleterevision) の権限を持ち、履歴の表示、非表示の制御が可能になります。
 $wgGroupPermissions['sysop']['deletelogentry'] = true;
 $wgGroupPermissions['sysop']['deleterevision'] = true;
権限を持つユーザーが「履歴表示」を閲覧すると、Change visibility of selected revisions というボタンが表示されます。また版ごとの全記事の横に、チェックボックスが表示されます。 特定のページ・版に対して、秘匿/秘匿解除することができます。
参考:[[版指定削除>https://www.mediawiki.org/wiki/Manual:RevisionDelete/ja]]

-個人のWiki として利用する場合は、以下のように記述します。
 # 匿名ユーザーによる閲覧を無効にする
 $wgGroupPermissions['*']['read'] = false;
 # 匿名編集を無効にする
 $wgGroupPermissions['*']['edit'] = false;
 # デフォルトグループ user の編集を無効にする(既定では可能です)
 $wgGroupPermissions['user']['edit'] = false;
 # 管理者以外に新しいユーザーの登録を防止する
 # $wgGroupPermissions['*']['createaccount'] = false;

-ユーザーのメールアドレスに関連する設定
メールアドレスに関しては $wgEmailConfirmToEdit と$wgEmailAuthentication の2項目が関係します。以下、事例を2つ紹介します(後者がおすすめ)。
--アカウント登録と編集時にメールアドレスの確認を必要とする設定
 # 編集時に Email の確認を必要とする
 $wgEmailConfirmToEdit = true;
 # Email を用いた認証を使用する
 $wgEmailAuthentication = true;
これは、ユーザーにとっては面倒です。そこで・・
--''アカウント登録時にのみメールアドレスの入力を必須とする設定''
 # 編集時に Email の確認を必要とする
 $wgEmailConfirmToEdit = true;
 # Email を用いた認証については使用しない
 $wgEmailAuthentication = false;
ちょっと違和感のある設定ですが、要するに「編集時のメルアド確認を有効とすることによって、アカウント登録時のメルアド入力が必須になります。で、実際には認証は行わない・・という設定です。

-自動で追加されたアカウントユーザーを編集権限のあるグループに入れるには、Special:UserRights のページを管理者権限で編集します。

-その他、権限設定についての詳細は、以下を参照して下さい。
--https://www.mediawiki.org/wiki/Manual:User_rights/ja
--https://www.mediawiki.org/wiki/Manual:Preventing_access/ja#Restrict_account_creation

~


***ファイル(画像等)のアップロードを可能にする
デフォルトでは無効になっているので、同様に LocalSettings.php 変更が必要になります。

-以下の部分、デフォルトの false を true に変更
 ## To enable image uploads, make sure the 'images' directory
 ## is writable, then set this to true:
 $wgEnableUploads = true;

-以下を追記
 # デフォルトグループ user のみアップロード可の場合
 $wgGroupPermissions['user']['upload'] = true;
 # 誰でもアップロード可の場合(結構危険です)
 $wgGroupPermissions['*']['upload'] = true;

-MediaWikiのシステムディレクトリ直下、images のパーミッション変更
>書き込み可能に

-アップ後のページへの掲載は、以下のフォーマット
 [[File:(ファイル名)| (サイズ).px | link=(URL)|
 [[File:sample.jpg|640.px|link=http://www.example.com]]
~

***サイトロゴの変更 
-resources/assets/フォルダに画像(logo.png)をアップします。
-130x130, 160x160 などが推奨サイズです。
-LocalSettings.phpの以下の部分を編集してパスを通します。
 $wgLogo = "$wgResourceBasePath/resources/assets/logo.png";
~

***メインページ(デフォルトトップ)の変更
MediaWiki:Mainpageにセットしたページ名がトップページになります。
-MediaWiki:Mainpage という名称のページにアクセス
 [ path to wiki ] /index.php/MediaWiki:Mainpage
-「メインページ」とだけ表示されたページが表示される
-編集ボタンを押す
-メインページの文字列を、新しいページ名に変更
~

***サイドバー(メニュー)のカスタマイズ
MediaWiki:Sidebar  という名称のページにアクセスして編集します
 [ path to wiki ] /index.php/MediaWiki:Sidebar 
~
~

**CSSのカスタマイズ
以下の名称のページにアクセスして、追加のCSSを記述するかたちでカスタマイズします(style.css の直接編集はしない・・というのが前提です)。 
-MediaWiki:Common.css
-MediaWiki:Vecor.css  ← 使用中のスキンの名称

これらのページへのアクセスは、以下のURLから 
-[ path to wiki ] /index.php/MediaWiki:Common.css
-[ path to wiki ] /index.php/MediaWiki:Vecor.css
~

***MediaWiki:Common.css の変更例
古いバージョンの場合、デフォルトで h1, h2 要素が明朝体になってるため、これをゴシック体に変更してみます。
 .mw-body h1, .mw-body h2 { font-family: sans-serif; }
 .mw-body-content { font-size: inherit; }
~

***MediaWiki:Vecor.css の変更例
左サイドバーの幅を大く、また本文サイズを大きく。
 #mw-panel { width: 12em; }
 #footer, #mw-head-base, #content { margin-left: 12em; }
 #left-navigation { margin-left: 12em; }
 
 #mw-panel div.portal h3 { font-size: inherit; }
 #mw-panel div.portal div.body ul li { font-size: 95%; }
~

***ログインページ等特殊なページへの反映
安全のため、ログインページ等の特殊なページは、デフォルトでカスタマイズCSSが反映されないようになっています。これを変更したい場合は、LocalSettings.php を編集して以下のようにします。
 $wgAllowSiteCSSOnRestrictedPages=true
~



**WikiEditor の導入
拡張機能として編集をサポートするツールバーを追加できます。以下のページで手順が解説されています。
https://www.mediawiki.org/wiki/Extension:WikiEditor/ja

-以下から、バージョンを選択してダウンロード
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/WikiEditor

-解凍したものを、extensions フォルダにアップします。フォルダ名は ''WikiEditor'' です。

-LocalSettings.php に以下を追記して、更新します。
 wfLoadExtension( 'WikiEditor' );
 
 #ユーザー全員が使用できるように、また無効化を防止する
 $wgHiddenPrefs[] = 'usebetatoolbar';
 
 # Enables use of WikiEditor by default but still allows users to disable it in preferences
 $wgDefaultUserOptions['usebetatoolbar'] = 1;
 
 # Enables link and table wizards by default but still allows users to disable them in preferences
 $wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
 
 # Displays the Preview and Changes tabs
 $wgDefaultUserOptions['wikieditor-preview'] = 1;
 
 # Displays the Publish and Cancel buttons on the top right side
 $wgDefaultUserOptions['wikieditor-publish'] = 1;

-以上、編集画面の上部にツールバーが出るはずです。

~
~

**脚注機能の有効化
***Extensions の存在確認 or インストール
-extensions/ フォルダー内の Cite という名前のディレクトリの存在を確認します(最新のものではインストール済みです)。
-もし、存在しない場合は・・
--以下から 機能拡張 Cite をダウンロードします。
--解凍後の Cite フォルダを extention ディレクトリ内にアップロード
-''LocalSettings.php''に次の一行を追加
 wfLoadExtension( 'Cite' );
~

***使い方
-脚注を付けたい語句の後に、以下のように<ref>コードを記述します。
 <ref>◯◯学会誌 Vol.10, p.56,  2019, ◯◯学会出版</ref>
 <ref>◯◯◯◯公式サイト, プロフィールページ,  2019年7月20日閲覧</ref>

-脚注を表示する場所(一般に「==脚注==」の下)に、以下のコードを記述します。
 <references />

~
~

**動画埋め込み
***Extensions のインストール
-EmbedVideoサイトからプラグインをダウンロード
http://www.mediawiki.org/wiki/Extension:EmbedVideo
-MediaWikiインストールディレクトリ配下のextensionsディレクトリにアップ
ディレクトリ名は ''EmbedVideo''
-''LocalSettings.php''に次の一行を追加
 require_once("$IP/extensions/EmbedVideo/EmbedVideo.php");

~
***使い方
-以下のような記述で、指定の動画を埋め込むことができます。
 {{#ev:service|id}}
 {{#ev:service|id|width}}
 {{#ev:service|id|width|align}}
 {{#ev:service|id|width|align|desc}}
 {{#evp:service|id|desc}}
 {{#evp:service|id|desc|align}}
 {{#evp:service|id|desc|align|width}}
-serviceには動画が掲載されているサイトを指定
-idには埋め込みたい画像のIDを設定

-youtubeの事例
 {{#ev:youtube|936KjlDm-uM}}
~
~

**アカウントの管理について
MediaWikiには、そのポリシーからアカウントを削除するという発想がありません。アカウントの削除に変わる方法として、UserMerge拡張機能を用いると、usermerge権限を持つウィキ利用者(既定ではビューロクラット)が、ある利用者を別の利用者へ統合できるようになります。
-以下から、本体のバージョンに合うものをDLしてExtensionフォルダに投入
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/UserMerge
-以下のコードを LocalSettings.php の末尾に追加します:
 wfLoadExtension( 'UserMerge' );
 // By default nobody can use this function, enable for bureaucrat?
 $wgGroupPermissions['bureaucrat']['usermerge'] = true;
 // オプション: 既定では array( 'sysop' )
 $wgUserMergeProtectedGroups = array( 'groupname' );
-解説ページは以下です。
https://www.mediawiki.org/wiki/Extension:UserMerge/ja

~
~




**VisualEditor の導入

VisualEditor( VE)は、MediaWikiの拡張機能として「視覚的」なオンラインリッチテキストエディターを提供するものです。

&color(red){以下、あくまでも、運用中の CentOS への導入MEMOとして記載しています。この仕組みは「特有の記法」というWiki初心者にとっての最初の壁であるを取り払い、ワープロ感覚で記事を書けるようにするためのもので、2018年段階で開発途上です。バージョンの整合性の問題等、インストールしても不安定な部分があること、また、手順が非常に多く複雑で、UNIXコマンドの知識も必要です。結果、実際には採用しませんでした。もう少し簡単に導入できるものとして完成するまで待つ方が賢明かと思います。};
~

***VisualEditor 導入の前提
MediaWikiの形式とビジュアルエディタ間でのファイル変換を可能にするために、Mediawiki が利用するAPIサーバーを構築する必要があります。それにはまず、[[Node.js]] のインストールが必要で、その後、[[parsoid>Google:parsoid]] のインストールが必要です。
以下、ターミナルを起動し、SSHでサーバーに接続した状態からの流れです。
~

***Node.js のインストール
こちらのページにメモ > [[Node.js]]
~

***parsoid のインストール|ちょっと大変です
-まず、parsoid をインストールする MediaWiki の extentions ディレクトリに移動します
 $ cd /var/www/html/ [ MediaWiki のディレクトリ名 ] /extensions/
-git で ソースをダウンロードします
 $ git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid 
-parsoid に入ってインストールします
 $ cd parsoid
 $ npm install ← 最初かなり時間がかかりました

-カレントに存在する localsettings.js を編集します。まずは example をコピーして、localsettings.js を新たにつくります。
 $ cp localsettings.example.js localsettings.js
[[vi エディタ>Vim]]等の経験があれば、そのままこれを開いて編集・・ですが、その経験がない場合は、FTP接続して、一旦ファイルをダウンロード。手元で編集して、またアップ・・という手順になります。
-localsettings.jsをエディタで開いて、以下のように、MediaWiki のある場所を記載します。
 exports.setup = function(parsoidConfig) {
   parsoidConfig.setMwApi({
     uri: 'http:// [ MediaWiki のアドレス ] /api.php',
   });
 };

-次は、config.yaml の編集です。まず、example をコピーして・・
 cp config.example.yaml config.yaml
-config.yaml の中の40行目付近、以下の uri と domain の部分を、自分のMediaWiki に合わせて書き換えます。
 mwApis:
     - # This is the only required parameter,
       # the URL of you MediaWiki API endpoint.
       uri: 'http:// [ MediaWiki のアドレス ] /api.php'
       # The "domain" is used for communication with Visual Editor
       :途中略
       # in $wgVirtualRestConfig.
       domain: ' [ MediaWiki を置いたドメイン名 ] ' 
       #optional
        :以下略

-次に、/etc/systemd/system/ の中に、parsoid.service というファイルを作成します。以下のとおり、エディタで新規作成して、/etc/systemd/system/ へアップです。
 [Unit]
 Description=Mediawiki Parsoid web service on node.js
 Documentation=http://www.mediawiki.org/wiki/Parsoid
 Wants=local-fs.target network.target
 After=local-fs.target network.target
  
 [Install]
 WantedBy=multi-user.target
  
 [Service]
 Type=simple
 User=root
 Group=root
 WorkingDirectory=/var/www/html/ [ MediaWiki のディレクトリ名 ] /extensions/parsoid
 ExecStart=/usr/bin/node /var/www/html/ [ MediaWiki のディレクトリ名 ] /extensions/parsoid/bin/server.js
 KillMode=process
 Restart=on-success
 PrivateTmp=true
 StandardOutput=syslog

-システムをリロードして、parsoid をスタート。そしてシステムブート時に自動で動くようにします。
 $ sudo systemctl daemon-reload
 $ sudo systemctl start parsoid
 $ sudo systemctl enable parsoid

-状態を確認します。
 $ sudo systemctl status parsoid
 ● parsoid.service - Mediawiki Parsoid web service on node.js
   Loaded: loaded (/etc/systemd/system/parsoid.service; enabled; vendor preset: disabled)
   Active: active (running) since 金 2019-01-11 16:31:50 JST; 3min 40s ago
     Docs: http://www.mediawiki.org/wiki/Parsoid
 Main PID: 31182 (node)
  CGroup: /system.slice/parsoid.service
     ├─31182 /usr/bin/node /var/www/html/ [ MediaWiki のディレクトリ名 ] /extensions/parsoid/bin/server.js
     └─31261 /usr/bin/node /var/www/html/ [ MediaWiki のディレクトリ名 ] /extensions/parsoid/node_modules/service-runner/service-runner.js
上記のように Active: active (running)  となっていればOKです。

-ブラウザでアクセスして、parsoid サーバーが動いているか確認します。
 http:// [ MediaWiki を置いたサーバーのドメイン ] :8000
 あるいは、直接サーバーのIPアドレスで http://xxx.xxx.xxx.xxx:8000

-以下のように表示されればOKです。
 Welcome to the Parsoid web service.
 See the API documentation on mediawiki.org.

-上記が出ない場合、parsoid のデフォルトポート 8000 がファイアーウォールでふさがっている可能性があります。以下のようにすると 8000 ポートが開きます。
 $ sudo firewall-cmd --add-port=8000/tcp --permanent
 $ sudo firewall-cmd --reload
~

***ビジュアル・エディタのインストール

-以下から、利用中の MediaWiki のバージョンに合うものをダウンロード
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/VisualEditor

-FTPツールで、解凍したフォルダを MediaWikiフォルダ内の extensions フォルダにアップします。

-MediaWikiフォルダ内 のLocalSettings.php に以下のコードを追記して、機能拡張を有効にします。
 wfLoadExtension( 'VisualEditor' );
 
 // Enable by default for everybody
 $wgDefaultUserOptions['visualeditor-enable'] = 1;
 // Optional: Set VisualEditor as the default for anonymous users
 // otherwise they will have to switch to VE
 // $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
 // Don't allow users to disable it
 $wgHiddenPrefs[] = 'visualeditor-enable';
  // OPTIONAL: Enable VisualEditor's experimental code features
 #$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
 
 $wgVirtualRestConfig['modules']['parsoid'] = array(
     // URL to the Parsoid instance
     // Use port 8142 if you use the Debian package
     'url' => 'http://localhost:8000',
     // Parsoid "domain", see below (optional)
     'domain' => 'localhost',
     // Parsoid "prefix", see below (optional)
     'prefix' => 'localhost'
 );
このあたりの情報は、以下のページに詳しく記載されています。
https://www.mediawiki.org/wiki/Extension:VisualEditor

-以上、画面上には、「編集」と「ソースの編集」という2つのタブが出現するようになり、ビジュアルエディタが有効になります。
~

参考サイト・・
https://www.howtoforge.com/tutorial/how-to-install-visualeditor-for-mediawiki-on-centos-7/
~
~