มีวิธีทำให้โหมด Org เพิกเฉยบล็อก src เมื่อส่งออกเป็น html หรือไม่


13

ฉันมีเอกสารองค์กรที่กระจัดกระจายพร้อม source block ที่ฉันต้องการยกเว้นเมื่อส่งออกไฟล์เป็น html

มีตัวแปรหรือตัวเลือกที่ฉันสามารถตั้งค่าซึ่งจะละเว้นบล็อก src หรือไม่

ฉันลองใช้ noexport ตามที่แสดงด้านล่าง แต่รหัสยังคงปรากฏในผลลัพธ์ html

#+BEGIN_SRC json :noexport:
{ ... }
#+END_SRC

ขอบคุณ!


3
:exports noneควรทำมัน
สะสม

2
@mutbuerger: คุณช่วยตอบคำถามได้มั้ย มันเป็นทางออกที่ต้องการจริงๆ มันสามารถรวมกับค่าเริ่มต้นส่วนหัวอาร์กิวเมนต์เพื่อให้การส่งออกบล็อกทั้งหมดของแหล่งที่มาสามารถควบคุมได้ด้วยการตั้งค่าเดียวเท่านั้นและไม่มีรหัส lisp emacs
ติมอร์

คำตอบ:


11

วิธีแก้ปัญหาที่ไม่ได้ขึ้นอยู่กับorg-export-filter-src-block-functionsความยืดหยุ่นมากขึ้นคือการใช้:exportsอาร์กิวเมนต์ส่วนหัว (ดู(info "(org) Exporting code blocks")) การตั้งค่าอาร์กิวเมนต์เป็น:exports noneผลลัพธ์ไม่ว่าบล็อกโค้ดหรือผลลัพธ์จะถูกส่งออก

หากคุณต้องการกฎเฉพาะของแบ็กเอนด์คุณสามารถใช้เงื่อนไขเป็นอาร์กิวเมนต์:

#+begin_src elisp :exports (when (eq org-export-current-backend 'html) "none")
(+ 1 2)
#+end_src

แม้ว่าโซลูชันที่ยอมรับนั้นจะทำงานหากบล็อก src ทั้งหมดในไฟล์ org จำเป็นต้องได้รับการยกเว้นโซลูชันนี้จะทำงานหากบล็อก src บางตัวเท่านั้นที่จะถูกแยกออก สิ่งนี้สามารถปรับแต่งได้มากกว่าโดยไม่ต้องสร้างฟังก์ชั่นเพิ่มเติม
ผู้ใช้ Emacs

เรียบร้อย! มีการใช้โค้ดเสียงกระเพื่อมเป็นค่าอาร์กิวเมนต์ของส่วนหัวหรือไม่
JeanPierre

ฉันไม่แน่ใจ แต่การดูorg-babel-merge-paramsทำให้ชัดเจนมาก สำหรับ:resultsแม้จะมีความชัดเจน(if (stringp value) value (eval value t))... ด้วยเหตุผลใดก็ตาม
ประกอบการ

9

ตามส่วน12.15ของเอกสารองค์กร:

(defun my-html-filter-src-blocks (text backend info)
  "Remove source blocks from html export."
  (when (org-export-derived-backend-p backend 'html)
    "[removed source block]"))

(add-to-list 'org-export-filter-src-block-functions
         'my-html-filter-src-blocks)

แทนที่ "[ลบซอร์สบล็อก]" ด้วยสตริงว่างเปล่าแน่นอน!


มันใช้งานได้ทั่วโลกเช่นกันซึ่งยอดเยี่ยมมาก ขอบคุณ!
Grassdog
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.