PukiWikiのインライン要素に水平線を追加する!(hrプラグインの改造)

PukiWikiのインライン要素に水平線を追加する!(hrプラグインの改造)

PukiWikiでページのインライン要素に水平線(区切り線)を追加したいケースはそんなに多くないし、実現する方法も大したことではないから、「記事にすべきかどうか」大いに悩むところではある。
しかし、私にとって大した問題ではなくても、他のPukiWikiユーザにとっては有益な情報になるかも知れない(ならないかも知れないが)。
何よりも、PukiWiki標準ドキュメントがお粗末なのが個人的に許せないので、私のサイトで記事化しようと思ったのだ。

お粗末な標準プラグインマニュアル

PukiWikiの場合、ページに水平線を追加する場合は、行の先頭から「—-」とハイフンを4つ以上連続して書くと水平線となる。
この場合は独立したブロック要素であるため、特に問題はない。

図は私設松本零士博物館の『やまびこ13号』の展示ページだが、レアケースなものの、全く同じ本で本のカバーだけが違う場合がある。
やまびこ13号』の改装前と改装版の両方を持っている変態はそう多くないと思うが、図のようにテーブル内(インライン要素内)で同一カテゴリーかつセルを分けたくない場合、同一セル内で水平線(区切り線)を挿入したいケースはある。
この場合「行頭からハイフンを4つ」というワケには行かないので、PukiWiki標準のhrプラグインの利用を思い付く。

図は最新のPukiWiki1.5.3(本稿執筆時点)に同梱されているプラグインマニュアル(「PukiWiki/1.4/Manual/Plugin」ページ)の「hrプラグイン」の説明部分だが、赤下線で示したように、不思議なことが書いてある。

段落やリスト、テーブル内など、通常の水平線書式(—-)ではブロックを抜けてしまう個所で水平線を挿入するために用います。

段落やリスト、テーブル内」は「インライン要素内」という意味でしかないと思うが、どっこいプラグインはブロック型であって、インライン型には対応していない

つまり、この記述はプラグインのマニュアルとして無意味なだけではなく、日本語として意味をなしてさえいない
そもそも、1.5系に1.4系のプラグインマニュアルを修正もなしに採用する辺りに、PukiWiki公式並々ならぬやる気を感じるのは、何も私だけではないだろう。

hrプラグインを改造する!

プラグインを「改造する」と書くと仰々しいが、その前にhrプラグインのコードとCSSを確認しておこう。

\plugin\hr.inc.php

<?php
// PukiWiki - Yet another WikiWikiWeb clone
// $Id: hr.inc.php,v 1.4 2005/01/22 03:34:17 henoheno Exp $
//
// Horizontal rule plugin

function plugin_hr_convert()
{
    return '<hr class="short_line" />';
}
?>

\skin\pukiwiki.css

/* hr.inc.php */
hr.short_line {
  text-align:center;
  width:80%;
  border-style:solid;
  border-color:#333333;
  border-width:1px 0;
}

もうね、プラグインのコードが長い上に複雑で、倒れそうになるでしょ?(笑)
・・・私にはPukiWiki公式をバカにして貶めたい意図はない(単純にバカだとは思うが)。
そういった意図はないが、こんな適当かつお粗末なドキュメント(プラグインマニュアル)なら「標準で添付するな!」と言いたいのだ。
私の個人的な意見や考えは後述するが、プラグインの動作としてブロック型プラグインとしてページの行の先頭に「#hr」と記述した場合、上述のコード「function plugin_hr_convert()」がコールされて実行される。
コレをインライン型プラグイン「&hr;」として動作させるには、次のコードにしてやれば足りる。

\plugin\hr.inc.php(修正後)

<?php
// PukiWiki - Yet another WikiWikiWeb clone
// $Id: hr.inc.php,v 1.4 2005/01/22 03:34:17 henoheno Exp $
//
// Horizontal rule plugin

function plugin_hr_convert()
{
    return '<hr class="short_line" />';
}

function plugin_hr_inline()
{
    return '<hr class="short_line" />';
}
?>

たったこれだけのことなのに、なんでプラグインマニュアルの記述が日本語としてすら意味が通じないのだか、私ごとき凡人には到底うかがい知ることは出来ない。
恐らく、海より深い深淵なる意図があるんだろう。知らんけど

インライン型hrプラグイン利用例

実際にhrプラグインをインライン要素で利用したらどうなるのか?が知りたいところだろう。
まず、私が開発・公開しているソートテーブル(表)プラグインでの利用例では、前述した私設松本零士博物館での『やまびこ13号』ページとして、次のURLを参照して欲しい。

あまり利用する場面は無いと思うが、リスト構造(番号あり無し)での利用例は、次の検証環境でのページを確認して欲しい。

おわりに

私が最初にPukiWikiを認識したのは、確か2003年頃だったと思う。
初期バージョンだったと思うが、ゆえにロクなサイトがなかったから、「なんじゃこりゃ?」という感想しか持たなかった。
ただ、HTMLを手組み&FTPソフトを利用してサイトを構築するより遥かに手軽かつ楽チンだとは思ったものの、Wiki記法をIT素人(当時は大学サークルの公認HPサイトを私が主導して構築し、ノウハウを全部後輩に伝えて委ねていた)に指導して伝えるのは困難を極める、と思っていた。
それからしばらくしてブログとPukiWikiに代表されるCMSに注目が集まり、ネットで情報を発信するハードルは大きく下がり、かつ今からしたらナローバンドなものの、ネット常時接続環境も整いつつあった。
今や誰もがスマホを持ち、SNSで好き勝手に情報を発信出来る時代だから、ことさら昔のことを持ち出してマウントを取ろうなどとは思わない。
ただ、SNSのTwitterでさえ自分の考えや意見すら持たず、ただただROM専だったり、RT職人(?)だったりする人が圧倒的な現実を知ると、流石にゲンナリするしかない。
それだけなら見ないフリをして放置すれば良いだけだし、知らん顔しときゃいいだけだが、「Twitterで何をつぶやけばいいのか分からない」といった悩み(?)が若い人の中で共感され、共有されているのを知ると、流石に背筋が寒い思いに駆られる。
そんな中、CMSではWordPressが一人勝ち状態であり、Wikiシステムは「ウィキペディアじゃないの?」とか誤解をされつつ衰退し、いつの間にやらPukiWikiも開発が途絶えて8年ほどが経過してしまっていた。
正直、私もかつてPukiWikiの1.4系を社内サーバで運用していたことがあったが、「使えねーな」と思っていたし、PukiWikiどころかSEなのに仕事以外のITに興味がない人が多いのもIT業界だったりするので、ボランティアで有志が運営している、現在の適当かつ古い情報ばかりのPukiWiki公式その他の惨状は当然と言えば当然でしかない。それは十分に認識している。
だからと言って、私の目的はだらしないPukiWiki公式に代わってPukiWikiを発展させることではないし、SNSですら情報発信できない低能を相手にすることでもない。
端的に言えば、自分が運営するサイトを「少ない労力で最大の効果」を発揮させることなので、それほど高邁な思想があるワケではないのだ。
それに私には私の「闘い方」があるし、それに賛同してくれる仲間や同志がいてくれれば良いと考えている。
そしてこれだけは言っておきたいが、私はことさらネットでカネカネ言いたくはない。ただ、開発するモチベーションが欲しいのだ。それすら与えてくれないのであれば、無償でPukiWiki関連開発をしてライブラリやプラグインそのものや、その情報を公開しようなどとは思わない。どうぞ、ご自分で好きなようにPukiWikiの開発なり拡張なりをすれば良かろう。そんなのは私の知ったことではない。
それは恐らくPukiWiki公式だって同じだろう。世界はギブアンドテイクで成立しているのだから。ただ、PukiWiki公式がそれを求めているかどうかを私が知らんだけだ。
それにPukiWiki公式が広くPukiWikiの普及と支持を得たいのだとしたら、それだけの仕事をしやがれ!としか言えないし、思わない。

 

この記事が気に入ったら
いいね ! をお願いします


ITで何かお手伝いできることはありませんか?

CTA-IMAGE

本サイトでは、外部サービスと連携して「ITの困った」を解決します!

PukiWikiカテゴリの最新記事