Có cách nào để làm cho chế độ Org bỏ qua các khối src khi xuất sang html không?


12

Tôi có một tài liệu org với phân tán với các khối nguồn mà tôi muốn loại trừ khi tôi xuất tệp sang html.

Có một biến hoặc tùy chọn nào tôi có thể đặt sẽ bỏ qua các khối src không?

Tôi đã thử sử dụng noexport như hình bên dưới nhưng mã vẫn xuất hiện trong html kết quả.

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

Cảm ơn!


3
:exports noneHãy làm nó.
mutbuerger

2
@mutbuerger: Bạn có thể đưa ra câu trả lời từ đó không? Nó thực sự là giải pháp ưa thích. Nó có thể được kết hợp với mặc định đối số tiêu đề, để có thể kiểm soát xuất tất cả các khối nguồn chỉ với một cài đặt và không có mã lisp emacs.
timor

Câu trả lời:


9

Một giải pháp không phụ thuộc org-export-filter-src-block-functionsvà giúp bạn linh hoạt hơn là sử dụng :exportsđối số tiêu đề (xem (info "(org) Exporting code blocks")). Đặt đối số thành :exports nonekết quả trong cả khối mã và kết quả của nó không được xuất.

Nếu bạn thích một quy tắc cụ thể phụ trợ, bạn có thể sử dụng một điều kiện làm đối số:

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

Mặc dù giải pháp được chấp nhận hoạt động nếu tất cả các khối src trong tệp org cần được loại trừ, giải pháp này hoạt động nếu chỉ loại trừ các khối src nhất định. Điều này là tùy biến nhiều hơn mà không cần tạo thêm chức năng.
Người dùng Emacs

Khéo léo! Đây có phải là việc sử dụng mã lisp làm giá trị đối số tiêu đề?
JeanPierre

Tôi không chắc chắn, nhưng một cái nhìn org-babel-merge-paramslàm cho điều này khá rõ ràng. Đối với :resultsthậm chí có một rõ ràng (if (stringp value) value (eval value t))... cho bất cứ lý do.
mutbuerger

7

Dựa trên phần 12.15 của tài liệu org:

(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)

Thay thế "[khối nguồn đã xóa]" bằng một chuỗi trống tất nhiên!


Điều này hoạt động trên toàn cầu quá tuyệt vời. Cảm ơn!
Grassdog
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.