Markdown

Markdown and Syntaxhighlighter

ผมใช้ Markdown เป็น input format มาตั้งแต่ต้น แต่ก่อนหน้านี้ใช้ GeSHi เป็น Syntax Highlighter มาโดยตลอด แต่พักหลัง ๆ เริ่มอยากจะโอนความสามารถนี้มาอยู่ฝั่ง client แทนที่จะป็น server เพราะคิดว่า การทำงานแค่นี้ ใช้ javascript แทนได้ และไม่ได้กินทรัพยากรเครื่องมากนัก และอยากจะลดภาระของ server ลงด้วย จึงตัดสินใจเปลี่ยนมาใช้โมดูล Syntaxhighlighter แทน

ผมลองใช้ Syntaxhighlighter อยู่หลายครั้ง แต่ไม่ประสบความสำเร็จมากนัก เพราะโค้ดที่ได้มันแปลก ๆ คือ ถูก Markdown แปลงโค้ด แล้วถึงจะโดน Syntaxhighlighter แปลงอีกรอบ ผมหาวิธีแก้ไม่ได้สักที ลองเปลี่ยนลำดับการทำงานของ filter ก็ไม่ได้ผล สุดท้ายเลยกลับไปใช้ GeSHi ตามเดิม

วันนี้ลองอีก สาเหตุเพราะ GeSHi ดูเหมือนจะมีปัญหากับ Drupal 7 จนแล้วจนรอดก็ดูท่าจะแก้ปัญหาไม่ได้ ลองมั่วไปเรื่อย ๆ จนพบว่า

ถ้าเปลี่ยน Tag Name ในหน้า Config ของ Syntax highlighter จาก pre มาเป็น p ทุกอย่างจะทำงานได้เป็นปกติทั้ง Markdown และ Syntaxhighlighter

... เอาเป็นว่าผมยังไม่เจอปัญหาอื่นละกัน

Advance Markdown Filter

คราวก่อนเขียนเรื่องการใช้ Markdown Filter ไปแล้วครั้งนึง แต่เป็นแบบคร่าว ๆ ไม่ละเอียดมากนัก เพราะจำต้องเอาไปอธิบายกับเพื่อนเป็นการด่วน และตั้งใจว่าจะเขียนรายละเอียดเพิ่มเติม แต่สุดท้ายก็ทิ้งร้างมานานข้ามปี

วันนี้ได้ฤกษ์ (มั้ง) ก็เลยเอามาเขียนใหม่ และลงรายละเอียดเพิ่มเติม แล้วก็แยกจาก node เดิมออกมา เพื่อที่ว่า ถ้าใครต้องการอ่านแค่พื้นฐานจะได้ไม่งง จนเกินไป ส่วนใครที่ต้องการรายละเอียดเกี่ยวกับคำสั่งทั้งหมดจะได้มาอ่านใน node นี้แทน

แต่จะไม่ลงรายละเอียดลึกมากนัก ถ้าต้องการรายละเอียดเชิงลึกจริง ๆ ให้อ่านจากแหล่งอ้างอิงแล้วกันนะครับ เขียนเพื่อเอาไปใช้ทั่ว ๆ ไปเป็นหลักครับ

วิธีใช้ Markdown

ขอออกตัวก่อนว่า จริง ๆ แล้วแก้ที่ /filter/tips ก็ได้ แต่ตอนนี้ยังไม่อยากยุ่งกับ ไฟล์ข้างใน เลยขอสร้างเป็นหน้าเฉพาะการไปพลาง ๆ ก่อน

Input Format ที่มีให้เลือกใช้มีอยู่ 2 อย่างคือ Markdown กับ Filter HTML แต่ ผมบังคับเป็น Markdown ไว้เพื่อให้ผ่านการตรวจสอบของ W3C Validator การใช้ Markdown น่าจะเป็นทางออกที่ดีที่สุด (โดยส่วนตัวแล้ว มันก็เขียนไม่ได้ยุ่งยากอะไรมากนัก)

Node นี้จะเป็นข้อมูลพื้นฐาน ถ้าต้องการจะอ่านแบบรายละเอียดที่ลึกกว่านี้สามารถอ่านได้จากที่นี่