SyntaxHighlight Version2 新しいページはコチラ
提供: yonewiki
(→概要) |
(→概要) |
||
12行: | 12行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | syntaxhighlight2の例 | ||
<syntaxhighlight2 lang="javascript" line> | <syntaxhighlight2 lang="javascript" line> | ||
Dim nVar = 0; | Dim nVar = 0; | ||
20行: | 21行: | ||
print("nVar=" + nVar); | print("nVar=" + nVar); | ||
</syntaxhighlight2> | </syntaxhighlight2> | ||
+ | だから何? | ||
+ | |||
+ | |||
+ | うんうん。わかるわかる。だから何だよね。うんうん。そうそう。そうだよ。だから何なんだよ。 | ||
+ | |||
+ | |||
+ | pygmentにはpygmentizeというモジュールがありまして、このモジュールは絶体パスを抱えているので、各自で配置パスを含めたモジュールの再構成作業が必要です。syntaxhighlightの公式サイトで配布されているpygmentには、この再構成をするためのモジュールがバンドル(抱き合わせ)られていて、それを実行することでpygmentizeがいい感じになるそうな。なので | ||
+ | |||
+ | <syntaxhighlight2 lang="bash"> | ||
+ | >/use/local/bin/python3 ./create_pygmentize_bundle | ||
+ | </syntaxhighlight2> | ||
+ | |||
+ | という感じ、実行します。python3のインストールパスはそれぞれのレンタルサーバや専用サーバ、あるいは自前サーバで異なるので合わせてもらえればよいかと思います。自前でサーバを持っている人は、自分のサーバでpygmentizeをインストールして、使うこともできます。 | ||
+ | |||
+ | |||
+ | もちろんMediaWiki Version1.19では、そのままでは全くピクリとも動きません。バージョンチェッカーを書き換えたり、そもそもMediaWiki自体にwfLoadExtensionという関数が無いのにこれらを作り込んでいく。MediaWikiServicesやServiceContainer。GlobalFuncion、DefaultSettings,ありとあらゆる関係するクラスをいじっていかないといけない。ものすごい作業量なのでここでは書けません。まずはLoad処理がうまく動作するところまで、動作を順に追っていく感じでした。Autoloadの方法も今のVersionと自分のVersion1.19とでは全然異なるし、ServiceWiringでwgXxxxxのグローバル変数の値を取得したりする処理がされていたり、MediaWikiの動きを追いながら追い詰める。load処理が出来上がると実際にsyntaxhighlight2拡張タグを入れてParserで呼び出される関数が何かを追いかけたりする作業をして、これまた少しづつ追い詰める。大変だったのが標準入力や標準出力の仕組みを知らなかったのでproc_openの使い方が全然わからなくて、辛かった。pipeってなんじゃって感じでした。 |