YouTube | Facebook | X(Twitter) | RSS

Mediawiki でのスニペット管理を考える

2016/2/25 (木)

先日、コード スニペットをどう管理すれば良いのかという問題について考えましたが、コードを利用する側の立場だとWeb 上に公開して検索エンジンにインデックス化された方が方が便利です。コンテンツを増やす口実とするなら自分のサイト内にコードを掲載した方が良いです。ということで、このサイト内にコードを掲載していく方針に結論づけました。

これまでもブログ(Wordpress)の記事としてコードを掲載してますが、まとめるなら Wiki(Mediawiki)の方がよいだろうと思い SandBox でテストしてます。

コードを掲載するなら今や SyntaxHighlighter という装飾は必須です。Mediawiki には標準で SyntaxHighlight_GeSHi というエクステンションが組み込まれてます。多くのサイトでは LocalSettings.php にエクステンションの読み込みを書くだけで OK となってますが、なぜかこのサイトだと動作しません(もちろん geshi は別途ダウンロードしています)。

また、Markdown も使いたいと思い入れたエクステンションだと、競合が発生するようでコードに空白行間があると <p> タグとか表示されてくるので、2 つとも別のものに入れ直して対処しました。

この SyntaxHighlighter は JavaScript ベースなので、PHP で動作している SyntaxHighlight_GeSHi に比べるとパフォーマンスに違いがありそうです。また、SyntaxHighlight_GeSHi と記述をあわせるため、<source> タグではなく <syntaxhighlight> タグで括りたかったので、SyntaxHighlighter.php を以下のように修正しました。

##$parser->setHook( 'source', array( $parser->extSyntaxHighlighter, 'source' ) );
$parser->setHook( 'syntaxhighlight', array( $parser->extSyntaxHighlighter, 'source' ) ); ##タグ名を変更

Markdown Extra GeSHi は、Markdown の記述を<markdown> タグで括るので他のページに競合なく動作しています。

今までストックしたコードはテキスト ファイルで管理しているので、一括でバッチ処理できれば理想です。Mediawiki には API が用意されているので作ることはできそう。欲を言えばオフラインでも管理できる Mediawiki のクライアント アプリケーションがあればいい。Mediawiki はかなり有名な Wiki エンジンだと思うけど、こんな要望をかなえたアプリケーションは存在しないようです。

とりあえずは手動で入れ込んでみます。テンプレートを使って少しでも効率化できればいいのだけど。

  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-Web
-,