วิธีใช้ GeSHiFilter

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.

มีคนเรียกร้องเกี่ยวกับ Syntax Highlight เยอะมาก จนอดรนทนไม่ได้ mk เลยต้องรีบหามาลงโดยด่วน ตัวที่เลือกใช้ก็คือ GeSHiFilter สำหรับ Drupal ซึ่งใช้คู่กับ GeSHi อีกทีหนึ่ง

วิธีใช้ GeSHiFilter ก็ง่ายนิดเดียว แค่ครอบโค้ดด้วย <span class="geshifilter"><code class="geshifilter-text">&nbsp;</code></span> เท่านั้นพอ แต่เพื่อให้การใส่สีเป็นไปด้วยความเป็นระเบียบเรียบร้อยตรงตามหลักของภาษานั้นๆ ก็ต้องระบุภาษากันหน่อย ซึ่งทำได้โดยระบุ type="language" เช่น

<blockcode type="python">>>> a = '10'
>>> c = a

จะได้ผลออกมาเป็น

>>> a = '10'
>>> c = a

ตัวอย่างข้างบนเป็นกรณีที่โค้ดยาว แต่ถ้าโค้ดสั้นและอยู่ในย่อหน้ารวมกับข้อความอื่นๆ สามารถใช้ <code></code> ได้ เช่น from cStringIO import StringIO ซึ่งมีมาจากโค้ดด้านล่างนั่นเอง

ตัวอย่างข้างบนเป็นกรณีที่โค้ดยาว แต่ถ้าโค้ดสั้นและอยู่ในย่อหน้ารวมกับข้อความอื่นๆ สามารถใช้ &lt;code>&lt;/code> ได้ เช่น
 &lt;code type="python">from cStringIO import StringIO&lt;/code> ซึ่งมีมาจากโค้ดด้านล่างนั่นเอง

สำหรับภาษาที่สนับสนุนตอนนี้ ได้แก่ css java java5 javascript php python ruby sql และ xml ซึ่งน่าจะครอบคลุมงานแถวนี้ ถ้าต้องการอะไรเพิ่มให้ลองแนะนำกันได้ครับ

พอจะมีวิธีการติดตั้งมั๊ยครับ ผมอยากเอาไปใช้ที่ blog ของผมครับ ... คือตอนนี้ผมลองมาแล้ว แต่ติดปัญหาตรงที่ หลังจากที่ FTP ไฟล์ ขึ้นไปวาง แล้ว พอเข้าไปในหน้า Admin มันไม่เห็น Module ดังกล่าวครับ คือผมนึกว่าพอ FTP ทั้ง Folder ขึ้นไปวางแล้ว หน้า Module ของ Admin มันจะเห็น Module นี้ทันที่ แต่ปรากฏว่ามันไม่เห็นครับ... ก็เลยไม่รู้จะไป enable Module นี้ให้ทำงานยังไงดี... รบกวนผู้รู้แนะนำด้วยครับ

ขอบคุณครับผม

sugree's picture
  1. Drupal รุ่นไหนครับ ถ้า 5 นี่ต้องเอา patch ที่ผมทำไปรวมด้วย
  2. ต้องเอา geshi ไปวางในนั้นด้วยนะ

1. Drupal รุ่นไหนครับ ถ้า 5 นี่ต้องเอา patch ที่ผมทำไปรวมด้วย
---------------
Drupal เวอร์ชัน 5 ครับ โดยผม ไปอ่าน วิธีติดตั้งใน
INSTALL.txt

ทำตามที่เค้าบอก...
แล้วเมื่อกี้ก็เพิ่งไปเจอ patch ที่คุณ sugree แนะนำมาครับ แต่ ติดตั้งไม่เป็นครับ (อายจัง)...ต้องแก้ไขตามที่ พิมพ์ไว้ในไฟล์ เลยใช่รึเปล่าครับ

2. ต้องเอา geshi ไปวางในนั้นด้วยนะ
---------------
FTP ขึ้นไปวางแล้วครับ แต่สงสัย ไฟล์ geshifilter-HEAD.tar.gz จะเอาไปใส่ไว้ตรงไหนครับ

ขอบคุณมากครับผม

mk's picture

เอาวิธีแบบรวมๆ นะครับ นี่ทำบน unix นะ

  1. ดาวน์โหลดไฟล์ geshifilter-HEAD.tar.gz จากเว็บของ Drupal มาไว้ในเครื่องตัวเอง
  2. แตก tar xvfz จะได้ไดเรคทอรีชื่อ geshifilter
  3. ดาวน์โหลด patch ของ sugree ชื่อ geshifilter-5.patch
  4. สั่ง patch -p1 < geshifilter-5.patch
  5. ดาวน์โหลดไฟล์ geshi จากเว็บของ geshi
  6. แตก tar xvfz อีกเหมือนกัน จะได้ไดเรคทอรีชื่อ geshi
  7. เอา geshi ไปใส่ไว้ใน geshifilter
  8. อัพโหลด geshifilter ขึ้นไปไว้ใน modules ทาง FTP
  9. ติ๊กเปิด modules ในหน้า admin
  10. ใส่ geshi เข้าไปใน input filter ด้วย

ขอบคุณ คุณ mk และ คุณ sugree มากครับ...

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น