HTML'ye dışa aktarırken Org modunun src bloklarını yoksaymasının bir yolu var mı?


13

Dosya html'ye aktardığımda hariç tutmak istiyorum kaynak blokları ile dağınık bir kuruluş belgesi var.

Src bloklarını yok sayacak bir değişken veya seçenek ayarlayabilir miyim?

Aşağıda gösterildiği gibi noexport kullanarak denedim ama kod hala sonuç html görünür.

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

Teşekkürler!


3
:exports noneyapmalı.
mutbuerger

2
@mutbuerger: Bundan bir cevap alabilir misin? Gerçekten tercih edilen çözümdür. Üstbilgi bağımsız değişkeni varsayılanlarıyla birleştirilebilir, böylece tüm kaynak bloklarının dışa aktarımı tek bir ayarla denetlenebilir ve emacs lisp kodu yoktur.
timor

Yanıtlar:


11

org-export-filter-src-block-functionsSize bağlı olmayan ve size daha fazla esneklik sağlayan bir çözüm :exportsbaşlık argümanını kullanmaktır (bkz. (info "(org) Exporting code blocks")). Bağımsız değişkenin :exports nonekod bloğuna veya sonuçlarının dışa aktarılmasına neden olmaz.

Arka uca özel bir kural tercih ederseniz, bağımsız değişken olarak bir koşullu kullanabilirsiniz:

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

Bir kuruluş dosyasındaki tüm src bloklarının hariç tutulması gerekiyorsa kabul edilen çözüm çalışırken, yalnızca belirli src bloklarının hariç tutulması gerekiyorsa bu çözüm çalışır. Bu, ek işlevler oluşturmadan daha özelleştirilebilir.
Emacs Kullanıcısı

Temiz! Bu lisp kodunun başlık bağımsız değişken değeri olarak kullanımı belgeleniyor mu?
JeanPierre

Emin değilim, ama bir bakış org-babel-merge-paramsbunu oldukça açık hale getiriyor. Çünkü :resultsaçık bir şey bile var (if (stringp value) value (eval value t))... her ne sebeple olursa olsun.
mutbuerger

9

Kuruluş dokümanlarının bölüm 12.15'ine dayanarak :

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

Tabii ki boş bir dizeyle "[kaldırılmış kaynak bloğu]" yerine!


Bu küresel olarak da işe yarıyor ki bu harika. Teşekkürler!
Grassdog
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.