PukiWiki/カスタマイズ のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PukiWiki/カスタマイズ へ行く。
PukiWikiカスタマイズ
先頭にスペースを入れなくても、ソースコード全体を囲って、pre表示できるように対応
PukiWiki 1.4.6〜のMultiline plugin hack拡張機能を有効に設定 pukiwiki.iniphp
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
次の場所からpre.inc.phpファイルをダウンロードし、pluginフォルダに配置します。
http://lsx.sourceforge.jp/?Plugin%2Fpre.inc.php
使用方法
- ソースコード全体を#pre{{と}}で囲うと、pre表示となります。
#pre{{ echo "Hello, "; echo "world!"; }}
↓整形後の表示結果
#pre{{
echo "Hello, ";
echo "world!";
}} - #pre(soft){{と}}で囲うと、リンクやフェースマークが有効となります。
- 「#pre(soft){{」の中にスペースを入れてはいけません。
180wiki-black skinのインストール
180style wikiで提供されている「180wiki-black」というテーマのワイドバージョンとスマホ対応版をインストールしました。(2014-02-08)
インストール方法
- 「自作スキン | 180style wiki」から180wiki-blackの次の2つのzipファイルをダウンロード
- Wiki/PukiWiki/Skin/black-w1000(ワイドバージョン)
- Wiki/PukiWiki/Skin/black-smartphone(スマホ対応版)
- それぞれのページで記述されているようにphpファイルを書き換えます。
インストールの注意点:
- skinフォルダ直下に展開しないとcssが適用されないようです。(サブフォルダに配置して、SKIN_FILEにサブフォルダを追加するだけだと効きませんでした)
- readme.txtなどのテキストファイルは配置しなくてもOKです。
- ワイドバージョンとスマホ対応版で一部ファイル名が同じですが、skinフォルダ上に上書きでOKです。
- skin自身はUTF-8対応で、PapuuWikiはEUCでした。skin内のファイルは特にUTF-8用のままサイトにアップしてOKでした。
- インストールでpukiwiki.ini.php, default.ini.phpなど元からEUCのファイルを書き換えますが、EUCのまま書き換えます。
GS2 skinのインストール(旧スキン)
注:2014-02-08に「180wiki-black skin」に変えました。
デザイン、編集などのメニュー配置がいいので、導入しました。
当wikiではプログラムソースをよく載せるので、ページが幅広で、見やすくて良さそうなのも、採用のポイントとなっています。
配色はクールで見やすかったのでskyを採用し、テーブルの配色が見にくかったので、調整しました。
skin/pukiwiki_gs2.css.php
thead td.style_td, tfoot td.style_td { color:inherit; /* background-color:<?php echo SKIN_CSS_BGCOLOR; ?>; */ background-color:#A1AAB8; }
skin/gs2_color/pukiwiki_gs2_color_sky.php
define('SKIN_CSS_BOX_BDCOLOR', '#9898A9'); // normal box border
h2, h3, h4の縁取りを調整し、それぞれ右マージンを0,25,50ピクセルとして、上下階層構造がよく分かるようにしました。
本文の各要素で、左マージンを設定
pre, dl, ol, p, blockquote { line-height:175%; margin-left:2em } pre { ... margin-left:3em; ... } li { margin: 3px 0px; margin-left:1em; }
pukiwiki.ini.php変更
WikiNameの無効化
日本語でページを書く場合、ほとんど使わず、見た目に悪影響を与えるので、無効化しました。
$nowikiname = 1;
更新および削除の表示項目数増加
$maxshow = 180; $maxshow_deleted = 180;
アンカータグ自動挿入無効化
ほとんど使わず、整形前の文章が見にくくなるので、無効化しました。
$fixed_heading_anchor = 0;
テーブルを左寄せ
中央だと、解像度の大きいモニタで本文と離れすぎるので、1em空けた左寄せ
にします。
skin/pukiwiki.css.php (GS2 skinをインストールしているときは、pukiwiki_gs2.css.php)
.style_table { padding:0px; border:0px; /* margin:auto; */ margin:auto auto auto 1em; text-align:left; color:inherit; background-color:#ccd5dd; }
- パラメータの順番は、上 右 下 左
FrontPageでなくトップを開くように変更
pukiwiki.ini.php
$defaultpage = 'FrontPage'; // Top / Default page ↓ $defaultpage = 'トップ'; // Top / Default page
外部リンク左端にマークを付け、_blankで開くように変更
外部リンクがすぐ分かり、別で開いたほうが使いやすいので、このようにしています。
編集中のプレビューから間違えて開いたときに、編集中の内容が消えないようにする効果もあります。
リンクマークの画像を用意
image/ext_link.png
skin/pukiwiki.css.php (GS2 skinをインストールしているときは、pukiwiki_gs2.css.php)
a.external { padding-left: 14px; background: url("../image/ext_link.png") no-repeat left bottom; }
pukiwiki.ini.php
<?php // 外部リンクを表すマーク表示で使用する変数 // 自サイトのURL (内部・外部リンクの区別のため) $my_site = 'papuu.jp'; ?>
lib/make_link.php
class Link_url function toString() { if (FALSE) { $rel = ''; } else { $rel = ' rel="nofollow"'; } return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>'; } ↓ function toString() { global $my_site; if (FALSE) { $rel = ''; } else { $rel = ' rel="nofollow"'; } if (strpos($this->name, $my_site)) { return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>'; } else { // 内部・外部リンクを区別する return '<a href="' . $this->name . '" target="_blank" class="external"' . $rel . '>' . $this->alias . '</a>'; } }
class Link_url_interwiki function toString() { return '<a href="' . $this->name . '" rel="nofollow">' . $this->alias . '</a>'; } ↓ function toString() { // 内部・外部リンクを区別する return '<a href="' . $this->name . '" target="_blank" class="external" rel="nofollow">' . $this->alias . '</a>'; }
class Link_interwikiname function toString() { return '<a href="' . $this->url . $this->anchor . '" title="' . $this->name . '" rel="nofollow">' . $this->alias . '</a>'; } ↓ function toString() { // 内部・外部リンクを区別する return '<a href="' . $this->url . $this->anchor . '" title="' . $this->name . '" target="_blank" class="external" rel="nofollow">' . $this->alias . '</a>'; }
参考ページ
- cubic9.com 内部・外部リンクを区別する
- よくきたblog ... googleを利用して相手にリファラーを教えない方法も載っています。
ロリポップなどPukiWiki認証ができないサーバに対応する
PukiWikiはApacheモジュールとして動作しているPHPでないと認証に失敗します。 Apacheモジュールとして動作しているPHPかどうかはphpinfo();で表示できます。
phpinfo()で表示される項目名 | 値 | PukiWikiの認証 | レンタルサーバ例 |
Server API | CGI/FastCGI | 失敗 | ロリポップ、らくらインターネット |
Server API | Apache | 成功 | XREA |
CGI版PHPでもPukiWikiの認証を動作させるプラグインが自作プラグイン/login.inc.php | pukiwiki.sourceforge.jpで公開されています。
こちらを改良したものがlogin.inc.php | 俺 wiki.wetcradle.comで公開されていますので、こちらのページからインストールしました。