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!


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

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!


Ini juga berfungsi secara global yang sangat bagus. Terima kasih!
Grassdog
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.