Amazon.co.jp ウィジェット

さむしんぐにゅぅ

さとうようぞう のBlog。気の向いた時に更新。サーバー落ちてたらまた来てちょ。

PukiWikiにsyntaxhighlighterを入れ、Flashまとめサイトを社内に作る

やりたいことは社内にFlashLiteに限らず)のノウハウをためるためのWikiを構築し、そこにAS (esp. AS3) やらMXMLなどのコードを貼ってノウハウ蓄積&共有&活用を図りたい。
いずれ社外にも公開できるといいんだけどなぁ。。

ということでPukiWikiSyntaxhighlighterを使えるようにし、AS3のコードをハイライトするまでの方法をまとめてみる。
まず必要なものは以下の通り。

  1. Windowsマシン+WinRAR これはsyntaxhighlighterが.rar形式で配布されているので・・。Stuffit Expanderでは展開に失敗しました。展開するのにWindowsマシンのWinRARがあった方が楽チン。まぁ、Linux上でも展開できるみたいですが
  2. PukiWikiのversion1.4.6以降。1.4.5までは複数行のプラグイン引数に対応していないので、現行の1.4.7あたりを入れておくのが吉
  3. syntaxhighlighter本体。Google Codeから入手できます。どうでもいいですけど、YUIもsyntaxhighlighter使ってますね
  4. AS3用のスタイルファイルと(一応念のため)MXML用のスタイルファイル。AS3用はdigitalflipbook: AS3 Syntax Highlighting (with SyntaxHighlighter)から入手、MXML用は中垣 茂 ( Shigeru Nakagaki ) | ブログ ( Flex, AIR, ColdFusion ) | MXMLコード用 SyntaxHighlighter を作ってみたから入手しておきましょう
  5. Pukiwiki用のプラグイン。Plugin/highlight.inc.php - Sonots' PukiWiki プラグインから入手して下さい
  6. PukiwikiプラグインやLinuxファイルシステムへの基本的な理解。上手くいかなくてもなんとかしようという忍耐力

こんなもんでしょうか。全部PukiWikiが稼働しているサーバーの~/tmpあたりにFTPクライアントで一式アップしておきましょう。モノさえ揃ってしまえば後はコマンドで作業した方が絶対に早いので。
WindowsならFFFTPの利用率が高いと思いますが、SmartFTPがお薦めです。これに慣れると二度と他のFTPクライアントに戻れなくなります。

MacならFetchだな。

次に手順。基本的にはPlugin/highlight.inc.php - Sonots' PukiWiki プラグインのページに記載されている通りに作業すれば動くはずですが・・

(1) 何はともあれ、PukiWikiが最低限動くようにする
 これはそんなに難しくないはず

(2) 設置したPukiWikiで複数行プラグインが動くよう、pukiwiki.ini.phpを編集する

% cp -p ./pukiwiki.ini.php ./pukiwiki.ini.php.org
% vi ./pukiwiki.ini.php
% diff -bB ./pukiwiki.ini.php.org ./pukiwiki.ini.php
56c56
< define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
---
> define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
 PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACKという定数を0にすればOK
 場所で言うとこの辺にあります。

(3) skinディレクトリ以下にSyntaxHighlighterという名前のディレクトリを作成

% mkdir ./skin/SyntaxHighlighter

(4) 作成した$PUKIWIKI_HOME/skin/SyntaxHighlighter以下に、syntaxhighlighterのScriptsディレクトリとStylesディレクトリ、Uncompressedディレクトリとかを全部コピー

% cp -pr ~/src/syntaxhighlighter_1.5/core/Scripts ./skin/SyntaxHighlighter/Scripts
% cp -pr ~/src/syntaxhighlighter_1.5/core/Styles ./skin/SyntaxHighlighter/Styles
% cp -pr ~/src/syntaxhighlighter_1.5/core/Uncompressed ./skin/SyntaxHighlighter/Uncompressed

(5) highlight.inc.phpをpluginディレクトリにコピー

% cp -p ~/src/syntaxhighlighter_1.5/highlight.inc.php ./plugin/highlight.inc.php

(6) MXML用の.jsファイルを./skin/SyntaxHighlighter/Scripts 以下にコピーする

 Compressedの下にあるshBrushAS3.jsをコピーすればオK
% cp -p ~/src/syntaxhighlighter_1.5/AS3/Scripts/Compressed/shBrushAS3.js ./skin/SyntaxHighlighter/Scripts/shBrushAS3.js

(7) AS3用の.jsファイルを./skin/SyntaxHighlighter/Scripts 以下にコピー

% cp -p ~/src/syntaxhighlighter_1.5/MXML/shBrushMxml.js ./skin/SyntaxHighlighter/Scripts/shBrushMxml.js

(8) ./skin 以下にある.htaccessを修正

 1.4.7のノーマル状態だと./skin以下の.htaccessはこうなっているはず  これではclipboard.swfや.js、.cssがdenyされてしまうので
 これもちゃんと吐き出せるように修正する。

(10) highlight.inc.phpの配列、 $jssrc にas3とmxmlを追加

 こんな感じ。
"as3" => "shBrushAS3.js",
"mxml" => "shBrushMxml.js",

(11) PukiWikiのテンプレートを編集

 以下の.js呼び出しをの直前(要するに一番したの方です)に加える。  詳細はsyntaxhighlighterのUsageを参照のこと。
 PHPはテスト用なので無くてもOK。
 他の言語が必要なら言語ファイル.jsへのscript呼び出しをテンプレートに追記すればいい。
 さすがにVBとかDelphiが必要とは思えませんが・・(w
 ここではPATHが全てsyntaxhighlighterのUsageページにあるものとは異なり、./skin/SyntaxHighlighter 以下を指定しなくてはいけないことに注意!
 これはpluginの仕様がイケテなく、
最後に dp.SyntaxHighliter の javascript 呼び出しのために end オプションを呼んでください。 Pukiwiki と、dp.SyntaxHighlighter の仕様上こうするしかありませんでした
 「#highlight(end)」という無駄な呼び出しをしなくてはいけないことへの対応。
 どうせFlashまとめWikiなんだから、使うのはAS3かMXML、Flashを呼び出す側のHTML or PHPに決まっているのでそんなもん決め打ちでOK
 # 判らなきゃsyntaxhighlighterでサポートしている言語への.js呼び出しを全部書いておけばいい
 一応、
% cp -p ./skin/pukiwiki.skin.php ./skin/pukiwiki.skin.php.org
% vi ./skin/pukiwiki.skin.php
として作業したので、オリジナルのskinファイルとのpatchを添付しておく。
download patch

長くなりましたが、これでとりあえず必要な言語についてはPukiWikiにソースコードを貼れるようになりました。

(12) 動作確認(スクリーンショットを貼る)

ついでに言うとこのpluginの仕様には全くもって納得がいかない部分が多いので、ちょっとパッチをあてて作者に送ろうかと思います。

あとAS3 Syntax Highlighting(with syntax highlighter)の内容を信じるなら、

According to Alex Gorbatchev (the creator of SyntaxHighlighter) it should be added to the next release.
だそうです。これがいつになるのかがスゴく気になるところですな。




Posted by yz at 2008年02月26日 00:41 | コメント (0) | トラックバック (1)

このエントリーを含むはてなブックマーク | PukiWikiにsyntaxhighlighterを入れ、Flashまとめサイトを社内に作る | Yahoo!ブックマークに登録 | del.icio.us it! | この記事をLivedoorにクリップ! | FC2ブックマーク | Technorati Links


この記事に対するコメント

この記事に対するコメントはまだありません。


コメントを投稿する




ブラウザにお名前やアドレスを保存しますか?

はいを選択すると、次回から入力がちょっと楽になります)



この記事のトラックバックURL


この記事に対するトラックバック

» 「SmartFTP」v3.0が公開、画像のサムネイル表示やメール通知が可能に

 人気の多機能FTPクライアントソフト「SmartFTP」の最新版v3.0.1010.24が、23日に公開された。v3.0の主な変更点は、FTPサーバー上...
Tracked by: 無料でダウンロード! at 2008年03月25日 00:32


Made with dreamweaver Made with fireworks Powered by Movable Type 3.34 Powered by Wandering Wind e-onkyo オンキョーサイバーショップ 人気ブログランキング - さむしんぐにゅぅ
Copyright : [Articles] (C) さむしんぐにゅぅ All Rights Reserved.
[Comments/Trackbacks] ... Authors of those have rights.