SyntaxHighlight Version2 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(概要)
(概要)
 
11行: 11行:
 
print("nVar=" + nVar);
 
print("nVar=" + nVar);
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
syntaxhighlight2の例
 +
<syntaxhighlight2 lang="javascript" line>
 +
Dim nVar = 0;
 +
Dim nCnt = 0;
 +
while(nCnt < 10){
 +
    nVar = nVar + nCnt;
 +
}
 +
print("nVar=" + nVar);
 +
</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ってなんじゃって感じでした。shellフォルダにあるlimit.shに実行権を付与し忘れていたりもあったなぁ。なんだ動かんぞこれ?っていうね。あほみたいな時もありました。すべてが懐かしいです。
 +
 +
 +
 ちがうんす。Versionあげればいいっていうけどこれ以上大きなシステムを導入したくないんす。なので、最小構成で導入したんす。
 +
 +
 +
 みなさんは決して、マネしないでほしい。でもこの作業をとおしてPHPマスターにもなれるし、MediaWikiMasterにもなれます。pythonも少しわかります。無駄な努力とは決して無駄だけでは無いことを思い知ったのです。
 +
 +
 +
 でも、でも、でも、でも!無駄!無駄!無駄!無駄じゃー!ガッシャーン!
 +
 +
 +
 と、いう話だったとさ。

2020年7月8日 (水) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス