Demo

討論

保持飢餓,保持愚笨 (Stay hungry, stay foolish)。 史蒂夫·賈伯斯

公告

本網站已取消討論區的討論方式,如果您有問題請至LINE群行動條碼圖片網址,或Facebook社團

使用[code][/code]顯示GeSHi高亮度語法

  • asika32764
  • asika32764 的個人頭像 Topic Author
  • Offline
  • 白金會員
  • 白金會員
More
2008-09-01 14:27 #11177 來自 asika32764
asika32764 created the topic: 使用[code][/code]顯示GeSHi高亮度語法
在這裡先解說一下
一般Joomla內建GeSHi的使用方式
必須先關閉所見即所得,或使用FCK的原始碼模式
因為TinyMCE會把所有""或<>轉換成替代字元導致無法解析

使用方法:
1.0.x 將語法包在<pre></pre>中
1.5.x 將與法包在<pre xml:></pre>中
(似乎預設就是php了)


指定語言與顯示行號:
1.0.x - <pre lang="php" lines="true"></pre>
1.5.x - <pre xml:lang="php" lines="true"></pre>



OK 進入正題
如何將<pre></pre>改成以
來顯示呢

請打開:
1.0.x - mambots/content/geshi.php
1.5.x - plugins/content/geshi.php

找到line27 or 28:
	if ( JString::strpos( $row->text, 'pre>' ) === false ) {
更改為
	if ( JString::strpos( $row->text, 'code]' ) === false ) {


再找line33:(1.0.x)
	$regex = "#<pre\s*(.*?)>(.*?)</pre>#s";
更改為
	$regex = "#\[code\s*(.*?)](.*?)\
#s"; //要注意多了兩條反斜線


或是line35:(1.5.x)
$regex = "#<pre xml:\s*(.*?)>(.*?)</pre>#s";
更改為
$regex = "#\
(.*?)\
#s"; //要注意多了兩條反斜線與'xml:'


OK存檔後輸入
語法
//1.0
語法
//1.5
試試吧


這樣改的好處是,可以在所見即所得中直接輸入,即使TinyMCE也能顯示正常
因為[]不會被修改

但還是有缺點的,lang="php" lines="true"等等參數還是得要用FCK打開原始碼模式才行
因為""會被改掉導致無法解析

解決方法是將想要的參數直接在程式中設定
GeSHi是可以讓您在本身程式碼中輸入參數的,包括行號背景顏色等等
以後再來發一篇較學吧

目前在一般使用上是沒問題,可以不關閉TinyMCE直接顯示出高亮度(但行號不行)
而絕得1.5輸入太麻煩的話,可以自己把程式碼中的xml:拿掉




乾脆把自己改的檔案上傳一下好了:

飛鳥新樂園 - http://blog.asikart.com
大學好好玩 - http://funni.cc
Joomla!123教學網 - http://joomla123.com.tw

This message has an attachment file.
Please log in or register to see it.

Please 登入 to join the conversation.