Apakah ada cara untuk membuat mode Org mengabaikan blok src saat mengekspor ke html?

12

Saya memiliki dokumen org dengan tersebar dengan blok sumber yang saya ingin kecualikan ketika saya mengekspor file ke html.

Apakah ada variabel atau opsi yang dapat saya atur yang akan mengabaikan blok src?

Saya telah mencoba menggunakan noexport seperti yang ditunjukkan di bawah ini tetapi kode masih muncul di html yang dihasilkan.

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

Terima kasih!

Grassdog
sumber
3
:exports noneharus melakukannya.
mutbuerger
2
@mutbuerger: Bisakah Anda menjawabnya? Ini benar-benar solusi yang disukai. Itu dapat dikombinasikan dengan default argumen-header, sehingga ekspor semua blok sumber dapat dikontrol dengan hanya satu pengaturan, dan tidak ada kode lisp emacs.
timor

Jawaban:

10

Solusi yang tidak bergantung org-export-filter-src-block-functionsdan memberi Anda lebih banyak fleksibilitas adalah menggunakan :exportsargumen header (lihat (info "(org) Exporting code blocks")). Menyetel argumen ke :exports nonehasil dalam bukan blok kode atau hasilnya diekspor.

Jika Anda lebih suka aturan spesifik backend, Anda dapat menggunakan conditional sebagai argumen:

#+begin_src elisp :exports (when (eq org-export-current-backend 'html) "none")
(+ 1 2)
#+end_src
mutbuerger
sumber
Sementara solusi yang diterima berfungsi jika semua blok src dalam file org perlu dikecualikan, solusi ini berfungsi jika hanya blok src tertentu yang dikecualikan. Ini lebih dapat disesuaikan tanpa membuat fungsi tambahan.
Pengguna Emacs
Rapi! Apakah penggunaan kode lisp ini sebagai nilai argumen header didokumentasikan?
JeanPierre
Saya tidak yakin, tetapi melihat org-babel-merge-paramsmembuat ini cukup jelas. Untuk :resultsitu bahkan ada yang eksplisit (if (stringp value) value (eval value t))... untuk alasan apa pun.
mutbuerger
8

Berdasarkan bagian 12.15 dokumentasi 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)

Ganti "[blok sumber yang dihapus]" dengan string kosong tentunya!

JeanPierre
sumber
Ini juga berfungsi secara global yang sangat bagus. Terima kasih!
Grassdog