- ไวยากรณ์ Org Mode ถูกนำเสนอว่าเป็น ภาษา markup แบบเบา ที่ใช้งานง่ายและมีความสม่ำเสมอ ซึ่งสามารถใช้ได้นอก Emacs
- ไวยากรณ์พื้นฐานอย่างหัวข้อ รายการ การจัดรูปแบบ และลิงก์ มีโครงสร้างที่ เรียบง่ายและจำง่าย และมี ความสม่ำเสมอในการแสดงออก สูงกว่าภาษาอื่น
- ต่างจาก Markdown ที่มีรุ่นย่อยหลากหลาย Org Mode ยังคงรักษารูปแบบที่ ค่อนข้างเป็นมาตรฐาน โดยยึดตาม implementation เดียว (Emacs Org-mode)
- สามารถแปลงผ่านเครื่องมือต่าง ๆ อย่าง Pandoc ได้ และ แม้ไม่ใช้ Emacs ก็ยังเขียนได้ง่ายในโปรแกรมแก้ไขข้อความทั่วไป
- ในบรรดาภาษา markup แบบเบา Org Mode โดดเด่นด้าน ความอ่านง่าย การดูแลรักษา และการรองรับจากเครื่องมือ จึงถูกเน้นว่าเป็น ทางเลือกสำหรับการเขียนเอกสารบนพื้นฐานข้อความล้วน
ภาพรวมของไวยากรณ์ Org Mode
- ไวยากรณ์ Org Mode ไม่ได้ผูกติดกับ Emacs และสามารถใช้ได้ในโปรแกรมแก้ไขข้อความทุกชนิด เช่น vim, Atom, Notepad
- หัวข้อใช้
*, **, ** * เพื่อแสดงลำดับชั้น
- การจัดรูปแบบข้อความใช้รูปแบบ
*bold*, /italic/, _underlined_, +strikethrough+, =monospaced=
- ลิงก์ใช้รูปแบบ
[[URL][คำอธิบาย]] ที่เรียบง่าย
- รองรับรายการ (
-, 1.), ช่องทำเครื่องหมาย ([ ], [X]), บล็อกโค้ด (#+BEGIN_SRC ... #+END_SRC) เป็นต้น
- ตารางอาจจัดแนวด้วยมือได้ยาก แต่ ระบบยังรู้จักไวยากรณ์ได้แม้ไม่จัดแนว
- ผู้ใช้สามารถ เรียนรู้ไวยากรณ์ได้อย่างเป็นธรรมชาติ โดยไม่ต้องมีชีตสรุปคำสั่งแยกต่างหาก
การทำให้เป็นมาตรฐานและปัญหาของ Markdown
- Markdown มี มาตรฐานย่อยจำนวนมาก (Original, Extra, MultiMarkdown, GitHub Flavored, CommonMark ฯลฯ) ทำให้เกิด ปัญหาความเข้ากันได้
- แม้จะเรียกว่า “Markdown” เหมือนกัน แต่ไวยากรณ์ต่างกันไปตามเครื่องมือ จนนำไปสู่ การสูญหายของข้อมูล และ การใช้งานที่แย่ลง
- Org Mode กำหนดไวยากรณ์ทั้งหมดโดยอิงจาก implementation เดียวคือ Emacs Org-mode จึงตีความได้อย่าง สม่ำเสมอ
- เครื่องมือที่แตกแขนงออกมาจะทำงานในรูปแบบ subset ของต้นฉบับ
- นามสกุลไฟล์ถูกใช้เป็น
.org แบบเดียวกันเสมอ
- แม้จะไม่มีเอกสารมาตรฐานอย่างเป็นทางการ แต่ implementation ของ Emacs ทำหน้าที่เป็น มาตรฐานโดยพฤตินัย (golden standard)
การเปรียบเทียบด้านความสม่ำเสมอและการใช้งาน
- ไวยากรณ์หัวข้อ: Org Mode ใช้เพียงคำนำหน้า
* เพื่อแสดงลำดับชั้นได้อย่างง่ายดาย
- ขณะที่ Markdown, AsciiDoc, reStructuredText เป็นต้น ใช้ทั้งคำนำหน้า คำต่อท้าย หรือเส้นใต้ จึงมีโครงสร้างที่ ซับซ้อนและไม่สอดคล้องกัน
- บางภาษายัง อนุญาตให้ใช้หลายสไตล์ปนกัน ยิ่งเพิ่มความสับสน
- ไวยากรณ์ลิงก์:
[[URL][ข้อความ]] ของ Org Mode เรียบง่าย แต่
- Markdown ใช้
[ข้อความ](URL) และ reStructuredText ใช้ `ข้อความ <URL>`_ ซึ่งมี การผสมสัญลักษณ์ที่ซับซ้อนและไม่สม่ำเสมอ
- ไวยากรณ์การจัดรูปแบบ: Org Mode ใช้
/italic/, *bold*, ~monospace~, +strikethrough+ โดยมี โครงสร้างสัญลักษณ์เป็นคู่ที่สม่ำเสมอ
- ส่วน Markdown ใช้
_italic_, **bold**, ~~strike~~ เป็นต้น ซึ่ง จำนวนสัญลักษณ์และกฎไม่สม่ำเสมอ
ความสะดวกในการป้อนข้อมูลและความเป็นอิสระจากเครื่องมือ
- Org Mode มี การพิมพ์อักขระที่ไม่จำเป็นน้อย และไม่มีการจัดแนวด้วยมือหรือไวยากรณ์ซับซ้อน
- แม้ อยู่นอก Emacs ข้อความที่เขียนด้วยไวยากรณ์ Org Mode ก็ยังสามารถแปลงเป็น HTML, PDF, Word และรูปแบบอื่น ๆ ผ่าน Pandoc ได้
- GitHub, GitLab ก็สามารถเรนเดอร์ไฟล์ Org ได้ และ มีประสิทธิภาพแม้ในสภาพแวดล้อมการแก้ไขข้อความแบบเรียบง่าย
- มีการย้ำว่า “ยิ่งอยู่ในสภาพแวดล้อมที่ไม่มีการรองรับจากเครื่องมือมากเท่าไร ไวยากรณ์ Org Mode ก็ยิ่งมีประโยชน์มากขึ้น”
การรองรับจากเครื่องมือภายใน Emacs
- ใน Emacs ระหว่างเขียน Org Mode สามารถจัดการโครงสร้างได้ด้วย TAB, Alt+ลูกศร, Ctrl+Return เป็นต้น
- รองรับการพับ/ขยายหัวข้อ ย้ายรายการ ย้ายแถวและคอลัมน์ของตารางโดยอัตโนมัติ
- ยังเข้าถึงผ่านเมนูได้ และ สามารถเขียนได้อย่างมีประสิทธิภาพแม้ไม่เรียนรู้คีย์ลัด
- แม้จะไม่จำเป็นต้องใช้ Emacs แต่ถ้าใช้ก็จะได้ ประสบการณ์การแก้ไข markup ที่ทรงพลังที่สุด
- Markdown, AsciiDoc, reStructuredText เป็นต้น ไม่มีการรองรับจากเครื่องมือในระดับที่เทียบเคียงกัน
บทสรุปและข้อเสนอ Orgdown
- จุดมุ่งหมายของภาษา markup แบบเบาคือ ความกระชับและประสิทธิภาพ และ Org Mode มี การออกแบบที่สมเหตุสมผลที่สุด ในแง่นี้
- Markdown, AsciiDoc, reStructuredText เป็นต้น มี ความสม่ำเสมอไม่เพียงพอและไวยากรณ์ซับซ้อน จึงใช้งานได้ด้อยกว่า
- Org Mode มี เส้นโค้งการเรียนรู้ต่ำ เป็นอิสระจากเครื่องมือ และเข้ากันได้ดีกับการแปลงรูปแบบ
- หลังปี 2021 การถกเถียงลักษณะนี้ได้พัฒนาไปสู่ความพยายามสร้างมาตรฐานใหม่ชื่อ Orgdown
- ถูกแนะนำว่าเป็น โครงการสร้างมาตรฐาน markup แบบเบาอย่างอิสระ ที่มีพื้นฐานจากไวยากรณ์ Org Mode
การอภิปรายเพิ่มเติมและข้อเสนอแนะ
- ผู้ใช้บางส่วนชี้ให้เห็นถึง การขาดมาตรฐานอย่างเป็นทางการ ของ Org Mode
- แม้จะมีความต่างในการตีความระหว่าง Emacs กับ Pandoc แต่ implementation ของ Emacs ก็ยังถูกมองว่าเป็นเกณฑ์โดยพฤตินัย
- ยังมีข้อเสนอแนะเกี่ยวกับฟังก์ชันอ้างอิงลิงก์ของ reStructuredText ด้วย แต่
- ผู้เขียนยังคงประเมินว่า Org Mode เป็น markup แบบเบาที่มีเหตุผลที่สุดและจำได้ง่ายที่สุด
- โดยสรุป Org Mode ถูกเสนอให้เป็น ทางเลือกที่สมเหตุสมผลสำหรับการเขียนเอกสารข้อความทั่วไปที่ก้าวข้ามระบบนิเวศของ Emacs
1 ความคิดเห็น
ความเห็นจาก Hacker News
ตอนนี้ใช้ org-mode กับทุกอย่างทั้งโปรเจกต์ งานที่ต้องทำ และการจัดการความรู้ บางไฟล์มีขนาดเกิน 15MB
ตอนแรกใช้แค่หัวข้อธรรมดา แต่พอต้องการความสามารถเพิ่มเมื่อไรก็พบว่ามีเตรียมไว้อยู่แล้วทั้งหมด คิดว่าเครื่องมือที่ทั้งใช้ง่ายและมี ความสามารถในการขยายสูง พร้อมกันนั้นหาได้ยาก
ถ้ามี ฟีเจอร์ขั้นสูง ที่ควรไปเรียนต่อก็อยากได้คำแนะนำ
ใช้ทำได้ทั้งการจัดการข้อมูลส่วนตัว (PIM), การเขียนเอกสาร, จดโน้ต, คีย์ลัดอัตโนมัติ และอีกมากมาย
มันโดดเด่นเมื่ออยู่ในระบบนิเวศของ Emacs มากกว่าจะใช้เป็นแค่ฟอร์แมตแทน Markdown
บทความของ Karl Voit ชี้ว่าไวยากรณ์ org มีความสม่ำเสมอและกระชับกว่า Markdown
ในโลกเทคโนโลยี ฟอร์แมตที่ดีกว่าไม่ได้ชนะเสมอไป แต่ก็ยัง คุ้มค่าที่จะผลักดัน
บทความนี้ ก็เน้นประเด็นนั้นไว้เหมือนกัน
เมื่อก่อนใช้ XML แต่ยุ่งยากเกินไปเลยเปลี่ยน ใช้เวิร์กโฟลว์บน Pandoc เพื่อสร้าง HTML และ PDF
ช่วงหลังเริ่มใช้ Typst เพื่อทำ PDF ได้เร็วขึ้น
สร้างโปรเจกต์ xml2typ ขึ้นมาเพื่อให้สร้าง PDF ได้เร็วกว่า Pandoc/LaTeX มาก
test.mdรวมมาด้วยก็น่าจะดีorg สามารถรวมได้ทั้งบุ๊กมาร์ก, PKM และการจัดการสิ่งที่ต้องทำ
แต่ในยุค AI ตอนนี้ Markdown กำลังกลายเป็นฟอร์แมตพื้นฐาน สำหรับการฝึก LLM
ถึงอย่างนั้น LLM ก็จัดการ org ได้ดีเหมือนกัน จึงมีพื้นที่ให้ทั้งสองแบบอยู่ร่วมกัน
ดู ข้อเสนอที่เกี่ยวข้อง
เสียดายที่ไม่ได้โอเพนซอร์ส มันแสดงให้เห็นข้อจำกัดของโปรเจกต์ที่มีผู้พัฒนาเพียงคนเดียว (SPOF)
ด้วย Beorg บน iOS ทำให้ใช้บนมือถือได้ดีมาก
ฉันเพิ่มประสิทธิภาพด้วย org-ql, org-super-agenda
ทุกวันจะเก็บบันทึกการทำงานไว้เป็นไฟล์ org ซึ่งช่วยมากตอนประเมินผลงานปลายปี
มันซิงก์บุ๊กมาร์กและแท็บเข้ากับไฟล์ org เพื่อจัดการเป็น TODO ได้
อยากรู้ว่าจัดลิงก์ข้ามไฟล์อย่างไร ตอนนี้ก็กำลังพิจารณา
denoteอยู่เพราะแบบนั้นของที่ซับซ้อนฉันเลยเขียนเป็น HTML หรือ LaTeX ต้นฉบับ ไปเลย
ตัวโปรแกรม org-mode นั้นยอดเยี่ยม แต่ถ้ามองแค่ตัวไวยากรณ์ Markdown ใช้งานจริงได้สะดวกกว่า
ตอนย้ายบล็อกจาก org ไป Markdown โค้ดกระชับลงและเร็วขึ้นถึง 50 เท่า
ฉันสร้างตัวสร้างเว็บไซต์ด้วย Bash ชื่อ shite และแทรกบล็อก HTML ตรง ๆ ใน org
ฟีเจอร์
org-edit-specialที่ให้แก้เฉพาะ HTML ได้ มีประโยชน์มาก#+BEGIN_SRC html) ก็ทำ syntax highlighting แยกตามภาษาได้ถ้าตั้งคีย์ลัดด้วย
yasnippetไว้ก็ยิ่งสะดวกฉันเขียนเอกสาร Beamer ทั้งหมดด้วย org มาตั้งแต่ปี 2009
กับบล็อก Pelican ก็เพิ่มการรองรับ org ด้วยปลั๊กอิน Python
org เป็นไอเดียที่ยอดเยี่ยม แต่ปัญหาคือ การรองรับที่ไม่เข้ากัน Markdown รองรับได้แทบทุกที่ จึงเป็นตัวเลือกที่สมจริงกว่า
ต่อให้ org-mode มีเหตุผลแค่ไหน ในทางปฏิบัติก็สมเหตุสมผลกว่าที่จะใช้ Markdown เป็นหลักเพราะได้รับความนิยมมากกว่า
มันไม่ใช่แค่การเทียบฟอร์แมต แต่เป็นเครื่องมือที่มี วิธีทำงาน ต่างกันโดยสิ้นเชิง
Markdown มีแค่โครงสร้าง แต่ Org มีทั้ง สถานะและตรรกะการทำงาน
ดังนั้นการถกเถียงว่าอะไรควรเป็น “ตัวเลือกพื้นฐาน” จึงไม่มีความหมาย ใช้ตามจุดประสงค์ของแต่ละคนก็พอ
ไม่มีเหตุผลอะไรที่จะบอกให้คนที่ใช้ org-mode เลิกใช้
หัวข้อแบบดอกจันของ org ดูรกสายตากว่า แต่ก็ชอบการเขียน ตัวเอียง ของมัน
แต่ละ implementation ต่างกัน และฟีเจอร์อย่างตารางหรือเชิงอรรถก็ยังเป็นส่วนขยายแยก
ข้อดีเพียงอย่างเดียวคือ ความเป็นสากล
มันมีฟีเจอร์น้อยกว่า แต่เรียบง่ายและพาร์สง่าย ลิงก์ขึ้นต้นด้วย
=>และการแบ่งย่อหน้าก็ชัดเจนparser ของฉันยาวแค่ราว 70 บรรทัด แต่ครอบคลุมฟีเจอร์ 95% ของ Markdown ได้
แต่ไม่ชอบที่มันใช้การขึ้นบรรทัดใหม่เป็นตัวแบ่งย่อหน้า
ถ้าใช้ การเว้นสองบรรทัด แบบ Pandoc Markdown เพื่อแบ่งย่อหน้าจะดีกว่า
ฉันเขียนตำราออนไลน์ด้วย org-mode และส่งออกเป็น HTML ทุกภาคการศึกษา
ใช้มาโครเพื่อทำ text expansion, ประเมินผล elisp และงานอัตโนมัติอื่น ๆ
ตัวอย่างเช่น {{{NOUN-C}}} จะเปลี่ยนเป็น “Clause” หรือ “Rule” ตามบริบท
วันที่ด้านบนของหน้าก็สร้างอัตโนมัติด้วย elisp
ฉันใช้โฮสติ้ง site44.com ที่เชื่อมกับ Dropbox ดังนั้นแค่บันทึกก็อัปขึ้นเว็บทันที
เพราะแบบนั้นเครื่องมืออื่น ๆ จึงแทบไม่รองรับ ในขณะที่ CommonMark มีการทำมาตรฐานไว้แล้ว
ฉันคงใช้ CommonMark ต่อไป
การที่เว็บอย่าง Reddit เลือกใช้ Markdown ก็ถือเป็นการตัดสินใจที่ดีด้วยซ้ำ
มีโซลูชันโอเพนซอร์สที่เก่งเรื่อง ซิงก์แบบโลคัล มากกว่า Markdown อยู่เยอะ
แอปจดโน้ตสาย Markdown กลับพึ่งพาคลาวด์มากกว่าเสียอีก