ZeRoさんとtkfmさんによって作られたスニペット版のGeSHiをご紹介します。
GeSHiは元々、プログラムコード等をサイト上で公開するためのプラグインです。
●GeSHiダウンロード
http://modxcms.com/GeSHi-Syntax-Highlighter-628.html
<pre>~</pre>で囲まれたhtmlコードがあると、その間のコードをそのまま表示してくれます。
ただ、TinyMCE等のリッチテキストを使用していると、TinyMCEが [ 等の記号をhtmlエンティティ化してしまうため、htmlエンティティ化されたコードがそのまま表示される、という仕様上の問題(?)がありまして、どうしてもTinyMCEと併用して使いたかったため、フォーラムで質問したところZeRoさんとtkfmさんにご協力いただき。スニペット版のGeSHiが出来上がりました。
●細かい経緯はこちら↓
http://modxcms.com/forums/index.php/topic,25487.0.html
■インストール■
元々あったプラグイン版のGeSHiのコアを利用して動作する為、まずはプラグイン版のGeSHiをインストールする必要があります。
インストールしたら、プラグインは使いませんので使用停止にします。
その上で、スニペットを新規作成し、このトピに添付したスニペットコードをコピペして保存します。
■使い方■
まずはTVもしくはチャンクを新規作成して、公開したいコードを書き込み、保存します。コードを書き込む為、TVの入力タイプはテキストエリアを指定します。
公開したい場所にスニペットコールを書きます。
[[GeSHi? &c=`コードを書き込んだTV名もしくはチャンク名` &l=`言語の種類`]]
言語の種類に関しては、書き込んだコードの種類を指定します。htmlならhtml4script、phpやスニペットコード等ならphpを指定します。
これでコードが表示されるはずです。
ただ、コードを表示してくれるのはいいんですが、ページのレイアウトに関係なく改行せずに表示されます。それで、吐き出されたhtmlソース覗くと、該当部分が
<pre class="php"> とか <pre class="html4strict"> になってるのがわかります。
つまり出力する言語の名前をclass名にしたcssで表示が制御されてるみたいなので、css側で.phpや.html4strict等を使って制御してやると表示の問題は解決すると思います。
最後に、スニペット版のGeSHiは既存のものが別にあるようなんですが。。。
http://modxcms.com/forums/index.php/topic,3579.0.html
こちらは表示したいコードを書き込んだファイルをアップし、スニペットコールでそのファイルを指定して動作するようです。
さて、これで説明を終わりますが、稚拙な文章で申し訳ないです。
もし、まちがいや説明漏れなどありましたらフォローをお願いします。。。汗
最後に、こちらの勝手な要望に合わせて欲しかった機能を実現していただいたZeRoさんとtkfmさん、本当にありがとうございました。