NP_TextWikiにGeshiを組み込む

NO IMAGE

ついつい、Ubicast Blogger対応をひとまずおいといてTextWikiプラグインにGeshiを組み込んでみた。

というのは、すでにNP_Geshiプラグインが本家のプラグイン集にあるのだが、どうもTextWikiプラグインと相性が悪いというかTextWikiの思想的に相容れないということが分かり、TextWikiのCodeを使うということであきらめていたんだが・・・、Codeの機能はPHPのHighlight処理なのでつまらない ということでTextWikiのいち機能として組み込みを決意してみた。

ということで、Geshiに行き着く前にTextHighlight(これもNP_SyntaxHighlightプラグインというので知ったのだが)を試してみた。

が、どうもしっくりと動かない・・・というのはPEARを内部で呼び出しているんだけど、INCLUDE周りが複雑になっちゃうのとイマイチ大げさなものになっちゃう感じなので取り止めた。
そもそもココで使うのはPHPのソースかCのソースぐらいなので・・・なので、振り出しに戻ってNP_GeshiとNP_TextWikiの組み合わせで
なんとかできんかと悪戦苦闘をしてみたんだが、結局上の通りに相容れないということで、やっぱりGeshiをTextWikiから呼び出すように
ParserとRenderを作ってみた。

というか、NP_Geshiで呼び出してるGeshiが別のひとが作ったものだと再度NP_Geshiを組み込んで知ったのが組み込みまでしてみるべと思った主たる要因だったりする。

ということで、Geshi(正式にはGeneric Syntax Highlighterの略)でホームページは、こちらにあります。

GeshiはPHPで書かれている(のは既に分かると思うが・・・)、各種言語(C/JAVA/C#/PHP/PERL)やSQL文、SHELL周りのキーワードをハイライト表示させたり、関数説明へのリンクまでやってくれちゃう便利なライブラリです。

とりあえず、PHPのソース部分の表示にGeshiを使ってみた。

もちろん、↓みたいにC言語にも対応してるです。

(ちなみに、↓のソースは2SHOT V3のソースの一部)

  1. char    date_now[16];
  2. int main()
  3. {
  4. int    i,j,mugon;
  5. char    *wkp;
  6. char    text[256];
  7. struct tm *gmt;
  8. time_t ti;
  9.     ti = time(NULL);
  10.     ti += 9*60*60;
  11.     gmt = gmtime(&ti);
  12.     sprintf(date_now,”%02d:%02d”,gmt->tm_hour,gmt->tm_min);

ということで、これでなんとなくすっきりハイライト表示ができるようになったので、また、Ubicastに戻るです。

近々、そっちは公開予定。

TextWikiもかなり使えるプラグインなのでもうちょっと整理したら公開しよー そーしよう
Parser/Renderを追加できるので、公開したら機能追加をいっぱい作ってもらえると面白いんだけど、、誰か使ってくれるかなぁー

 

プッシュ通知を
%d人のブロガーが「いいね」をつけました。