นี่คืองานของorg-element
ที่น่ากลัว (!) การทำงานของนิโคลัส Goaziou หากคุณไม่ทราบorg-element
และคุณสนใจการพัฒนาองค์กรนี่คือสิ่งที่คุณควรพิจารณา org
มันไม่ได้เป็นเพียงเครื่องมือที่ดีในการทำงานร่วมกับมันก็มากขึ้นการเปิดเครื่อง ส่วนใหญ่สะดุดตาorg-export
( ox
) org.el
แต่ยังฟังก์ชั่นในเช่น
จะได้รับ "เป็นตัวแทนเสียงกระเพื่อม" ขององค์ประกอบภายใต้การใช้จุดหรือorg-element-at-point
ที่จะได้รับการเป็นตัวแทนในการใช้บัฟเฟอร์org-element-context
ในขณะที่ไม่เกี่ยวข้องโดยตรงที่นี่ให้ตระหนักถึงorg-element-parse-buffer
org-element-map
ที่จะไปจาก "เสียงกระเพื่อมเป็นตัวแทน" ของelement
, secondary string
หรือparse tree
กลับไปที่"องค์กรไวยากรณ์การแสดง"org-element-interpret-data
การใช้งาน นี่เป็นวิธี (เท่านั้น) เพื่อเปลี่ยน "การแทนเสียงกระเพื่อม" เป็น "การแทนไวยากรณ์ของ Org" คุณอาจไม่ต้องการเขียนการแสดงนี้ด้วยตนเอง นี่เป็นเพียงส่วนเล็ก ๆ ของพาดหัวแรกของคุณ
(org-element-interpret-data
'(headline (:title "One headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("Some much longer content."))))
หากคุณต้องเพิ่มทั้งสองหัวข้อเพิ่ม parse tree
(org-element-interpret-data
'(org-data nil (headline (:title "One headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("Some much longer content.")))
(headline (:title "Second headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("More much longer content.")))))
คุณอาจพบว่าห้องสมุดของThorsten Jolitzorg-dp
จะช่วยเหลือคุณในความพยายามดังกล่าว ( ใน MELPA )
ห้องสมุดorg-dp
มีไว้สำหรับการเขียนโปรแกรมในระดับท้องถิ่นเช่นไม่มีข้อมูลใด ๆ (บริบท) ยกเว้นที่เกี่ยวกับองค์ประกอบที่แยกวิเคราะห์ที่จุด มันถูกออกแบบมาเพื่อให้ใช้กรอบ parser ล่าม / องค์กรในระดับท้องถิ่นเป็นความสะดวกที่ใช้มันในระดับโลก (มีที่สมบูรณ์แยกต้นไม้ผลิตโดย
org-element-parse-buffer
มี)
คำอธิบายที่สมบูรณ์มากขึ้นโดย Thorsten สามารถพบได้ที่นี่
สำหรับการชี้แจงเพิ่มเติมgmane.emacs.orgmode
เป็นฟอรั่มที่เหมาะสมจริงๆ
org-insert-drawer
ดู (นั่นคือฉันจะจินตนาการว่ามีตัวแปลงอยู่หรือไม่ฟังก์ชันนี้จะเรียกสิ่งนั้นด้วยnil
)