PukiWiki開発メモ

見出しごとに編集を可能にするpara_edit.diff組み込み

1ページ当たりの情報量が多くなると,編集時に修正箇所を見つけるのに苦労するようになります。このプラグインは,そんな悩みを解決してくれる素晴らしいツールです。 使い方は簡単。見出しの右にある鉛筆マークをクリックするだけ。 導入方法は以下のとおり。使い方とは違い,結構難しい。

  • プラグインの入手
    http://hungtmrn.net/wiki/?PukiWiki-1.5.1/para_edit.diff
    
  • patchコマンドの入手 このプラグインpara_edit.diffは,プログラム本体ではなく,既存のphpファイルに差分修正を加えるpatchコマンド用のソースファイルです。patchコマンドはUNIX/Linux用のコマンドなのでWindowsで利用するにはWindows用のpatchプログラムが必要となります。 Windows用のpatchコマンドは以下のサイトから入手できるようです。
    Patch for Windows
    
    入手したファイルを解凍し,Binフォルダの中から、「patch.exe」を抜き出して、パスの通ったフォルダに入れるとお手軽です。pathの通ったフォルダは,コマンドプロンプトを開いて「path」と入力して確認するか,システムのプロパティの環境変数にて設定します。「patch.exe」をパスの通ったフォルダに入れたら,とりあえず,コマンドプロンプトにて「patch -v」と入力してみます。patchのバージョン情報等が出てくればよいです。
    D:\wiki>patch -v
    patch 2.5.9
    Copyright (C) 1988 Larry Wall
    Copyright (C) 2003 Free Software Foundation, Inc.
    
    This program comes with NO WARRANTY, to the extent permitted by law.
    You may redistribute copies of this program
    under the terms of the GNU General Public License.
    For more information about these matters, see the file named COPYING.
    
    written by Larry Wall and Paul Eggert
    
  • 別のウィンドウが開いたりして動作が変な場合 コマンドプロンプトを起動しなおします。その時、コマンドプロンプトのアイコンを右クリックして「管理者として実行」というような項目があれば、その項目で起動してみて下さい。
  • patch.exeの実行 patch.exeと同じフォルダに,以下のPukiWikiのファイルをコピー配置します。
    ** patch対象ファイル [#patchTarget]
    lib/convert_html.php
    lib/html.php
    plugin/edit.inc.php
    plugin/add.inc.php
    
    配置したら,次のコマンドを入力して実行します。*1
    D:\wiki>patch -b --binary < para_edit-1.5.1-0.5.diff
    patching file convert_html.php
    patching file html.php
    patching file add.inc.php
    patching file edit.inc.php
    
    実行が終了したら,修正されたファイルを元の場所に上書きコピーします。リネームされたphpファイルはいざというときのバックアップです。
  • PukiWikiへの組み込み pukiwiki.ini.php:430行付近にある
    // Automatically add fixed heading anchor
    $fixed_heading_anchor = 1;
    
    を以下の様に修正します。
    // Automatically add fixed heading anchor
    $fixed_heading_anchor = 1;
    // 見出しごとの編集ボタン付加
    $fixed_heading_anchor_edit = 1;                   // on: x = 1 / off: x = 0
    // 見出しのレベルを認識して範囲指定をするか
    $fixed_heading_anchor_edit_recog_level = 1; // on: x = 1 / off: x = 0
    
    以上で組み込みは完了です。

無意味な最上部ページタイトルのリンクを無効化する

デフォルトではページタイトルをクリックすると,得体の知れない「Backlinks for: タイトルページ」というページが表示されるが,ほとんど意味がないので無効化する。 /lib/pukiwiki.php:101行付近に,

$page  = make_search($base);

という記述があります。これを次のように変更します。

//$page  = make_search($base);
$page  = $title;

PukiWikiのロゴを変更する

/skin/pukiwiki.skin.php:91行付近に,

<a href="<?php echo $link['top'] ?>">
<img id="logo" src="<?php echo IMAGE_DIR . $image['logo'] ?>" width="80" height="80" alt="[PukiWiki]" title="[PukiWiki]" />
</a>

という記述があり,これがロゴの表示定義です。ここ修正することで画像を変更したり,サイズを変更できたりします。 行を削除すると,ロゴを非表示にすることもできます。

ページ編集時の自動改行設定

D:\xampp\htdocs\pukiwiki\pukiwiki.ini.php:440行付近に,

// Convert linebreaks into <br />
$line_break = 1; // 0 = off , 1 = on 

という記述がある。これをonにするだけで,行末の面倒な改行タグを書かなくてもワープロライクに文章が入力できる。小回りの効くのが国産の良いところ♪

管理者パスワードを設定する

htdocs/pukiwiki/pukiwiki.ini.phpの179行目辺りの以下の部分を編集します。

// Default: always fail
$adminpass = 'pass';

を次の様に書き換えます。(ここでは新パスワードを「password」と設定します。)

// Default: always fail
$adminpass = 'password';

Wikiのトップページのタイトルを変更する

htdocs/pukiwiki/pukiwiki.ini.phpの128行目辺りの以下の部分を編集します。

// Default page name
$defaultpage  = 'FrontPage';     // Top / Default page

を次の様に書き換えます。

// Default page name
$defaultpage  = 'HariWiki';     // Top / Default page

複雑な表をWiki上に書きたい

Wiki上に表を書くのってなかなか難しいですね。こんな時には便利なツールがあります。 「PukiWiki Addin For Excel 2007/2010/2013/2016」です。  https://github.com/RelaxTools/PukiWiki-Addin

このエクセル専用のアドインツールを使うとエクセルで作った表を可能な限り書式を保ったまま,Wikiに貼り付けるだけで複雑な表がWikiに書けます。

ネットワークパスを記述しファイルやフォルダを直接開きたい

lib/make_link.phpの363行目辺りの以下の部分を編集します。

(                 # (4) url
 (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+
)
(?($s1)\]\])      # close bracket

を次の様に書き換えます。

(                 # (4) url
 (?:(?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+)
|(?:file:\/\/.+))
(?($s1)\]\])      # close bracket

すると, file://d:/test や file://d:/test/test.txt にも自動リンクが設定されます。

  • パス中の「¥」は「\」でも「/」でも動作する Windows上のパス区切り記号は「¥」ですが,WikiがPHPで書かれているため,半角¥マークはバックスラッシュ「\」に文字化けします。どちらの文字でも,IEはパスを認識できるようなので動作には支障がなさそうです。

新規ページ作成時に自動挿入されるWikiNameリンクを削除する

lib/html.phpの279行目辺りの以下の部分をコメントアウトすれば消えます。

		if (isset($vars['refer']) && $vars['refer'] != '')
			$refer = '[[' . strip_bracket($vars['refer']) . ']]' . "\n\n";
をコメントアウトします。
//		if (isset($vars['refer']) && $vars['refer'] != '')
//			$refer = '[[' . strip_bracket($vars['refer']) . ']]' . "\n\n";

文章の折りたたみ省略プラグイン「region」の組み込み

長い文章は誰も読みたくない。ページ全体を見て欲しい時には使えるテクニックかも。 デフォルトでは組み込まれていないregionというプラグインをダウンロードして,pluginフォルダへ置くだけ。

region.inc.php
endregion.inc.php

使い方は,

#region(こめんとはここに書く) //これで省略開始
-regionプラグイン
長い文章は誰も読みたくない。ページ全体を見て欲しい時には使えるテクニックかも。
デフォルトでは組み込まれていないregionというプラグインをダウンロードして,pluginフォルダへ置くだけ。
 region.inc.php
 endregion.inc.php
#endregion //これで省略終了

使った結果こうなる↓

+ こめんとはここに書く
  • regionプラグイン 長い文章は誰も読みたくない。ページ全体を見て欲しい時には使えるテクニックかも。 デフォルトでは組み込まれていないregionというプラグインをダウンロードして,pluginフォルダへ置くだけ。
    region.inc.php
    endregion.inc.php
    

編集ウィンドウの幅調整

デフォルトの幅はかなり狭いのでワイド液晶の表示ウィンドウの幅に合わせて95%程度にリサイズするよう設定してみた。 lib\html.php の319行目辺りに,

  <textarea name="msg" rows="$rows" cols="$cols">$s_postdata</textarea>
これを
  <textarea name="msg" rows="$rows" cols="$cols" style="width:95%">$s_postdata</textarea>

と書き加える。随分,編集領域が広くなり文章全体が見渡せるようになった。

整形済みテキスト(水色のテキストボックスエリア)の背景色変更

デフォルトの背景色は増設ディスプレイ上で見えにくいので変更してみた。 skin\pukiwiki.css.php の142行目辺りに,

pre {
	border-top:#DDDDEE 1px solid;
	border-bottom:#888899 1px solid;
	border-left:#DDDDEE 1px solid;
	border-right:#888899 1px solid;
	padding:.5em;
	margin-left:1em;
	margin-right:2em;
	white-space:pre;
	color:black;
	background-color:#B0DAFF; // DEFAULT #F0F800

という記述がある。このbackground-color:が背景色定義。ここではデフォルトより少し濃い色で調整してみた。

メニューバーの幅調整

デフォルトの幅では検索ウィンドウのand/or検索オプションが折り返し表示されて美しくない。少し幅を広げてみた。 skin\pukiwiki.css.php の360行目辺りに,

div#menubar {
<?php   if ($media == 'print') { ?>
	display:none;
<?php   } else { ?>
	width:13em; //default 9em -> 13em
	padding:0px;
	margin:4px;
	word-break:break-all;
	font-size:90%;
	overflow:hidden;
<?php   } ?>
}

という記述がある。このwidth:がメニューバーの幅定義。ここでは13emを設定してみた。

存在しないページの背景色変更

デフォルトの背景色は見えにくいので変更してみた。 skin\pukiwiki.css.php の204行目辺りに,

span.noexists {
	color:inherit;
	background-color:#C4FFC4; //default #FFFACC

という記述がある。このbackground-color:が背景色定義。ここでは薄い緑色を設定してみた。

メニューバーにカウンタを表示する

#counter

でそのページが閲覧された数(総計)を表示できる。実際にそのように書いた例が、↓。

-

また、

&counter( [total| today| yesterday] );

でもカウンタを表示できる。パラメータに「today」、「yesterday」を指定することにより、今日、昨日の訪問者数を個別に表示できる。例えば、次のようにすれば、総計、今日、昨日の訪問者数を表示できる。

総計:&counter(total); 今日:&counter(today); 昨日:&counter(yesterday);

で、
総計: - 今日: - 昨日: -

と表示することも可能。
全ページの訪問数をカウントするには、MenuBarにcounterプラグインを書いておくか、スキンで呼び出す。

パンくずリストの表示方法

/skin/pukiwiki.skin.phpの22行辺りに、

// SKIN_DEFAULT_DISABLE_TOPICPATH
//   1 = Show reload URL
//   0 = Show topicpath
if (! defined('SKIN_DEFAULT_DISABLE_TOPICPATH'))
	define('SKIN_DEFAULT_DISABLE_TOPICPATH', 0); // 1, 0

という記述があります。ここの('SKIN_DEFAULT_DISABLE_TOPICPATH', 0)とすると、タイトル下のアドレス表示がパンくずリストに変更されます。
単独で使用する時は、

#topicpath

と記述することで任意に設置することができます。

Wikiの階層構造

  • ページ上部の機能一覧で「新規」を選択するとどこに新規ページが作成される?
ページ上で新規をクリックし,そのままページ名を入れて作成すると,
 Top(../) ┐
      ├ 開発業務(./)
      └(新規)Web開発

とTopページの直下に新規ページができてしまう。これはどの階層のページで新規ページを作成しても同じ。

では,認定業務ページを開いた状態で親構造(./)を指定し、続けてページ名「./web開発」を入れると、

 Top(../) ┐
      ├ 開発業務(./) ┐
               └(新規)Web開発
こんな感じになる。少し慣れが必要です。ちなみに最初にTop直下にページ作成後,リネームしてあとから階層構造を持たせることも
できます。

でも、全然階層構造を使っていない人もいるみたい。どっちが正解なんて無いようだね。

  • 階層構造を持たせるメリット
    • 全体が見渡せ情報の整理がし易い
    • 不要な情報が直ぐに判断できる
  • 階層構造を持たせるデメリット
    • WikiNameによる自動リンクの作成を阻害しWikiのメリットが生かせない

結局,業務マニュアルの情報などは階層構造で作っておいた方が関連情報への参照が簡単だし,メンテがし易いなどの利点があるのかな。 WikiNameにすべき情報(専門用語など)はTop直下しか選択肢が無いのでこれは確定です。新規ページでそのままキーワードを指定してページを作成すればいいですね(^_^)



順位 選択肢 得票数 得票率 投票
1 おしい)
(
1 (50%)
2 役に立った 1 (50%)
その他
投票総数 2



コメントを伺います。お気軽に記入ください。

名前:
コメント:
最終更新:2023年04月09日 12:24

*1 -b:パッチを実行 --binary:改行コードが混在する環境下での実行用