Gibt es eine Möglichkeit, den Org-Modus zu veranlassen, src-Blöcke beim Export in HTML zu ignorieren?

12

Ich habe ein Organisationsdokument mit verstreuten Quellblöcken, die ich beim Exportieren der Datei in HTML ausschließen möchte.

Gibt es eine Variable oder Option, die ich festlegen kann, um die src-Blöcke zu ignorieren?

Ich habe versucht, noexport wie unten gezeigt zu verwenden, aber der Code wird immer noch im resultierenden HTML-Code angezeigt.

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

Vielen Dank!

Grassdog
quelle
3
:exports noneSollte es tun.
mutbuerger
2
@mutbuerger: Könntest du vielleicht eine Antwort daraus machen? Es ist wirklich die bevorzugte Lösung. Es kann mit den Standardwerten für Header-Argumente kombiniert werden, sodass der Export aller Quellblöcke mit nur einer Einstellung und ohne Emacs-Lisp-Code gesteuert werden kann.
Timor

Antworten:

9

Eine Lösung, die nicht davon abhängt org-export-filter-src-block-functionsund Ihnen mehr Flexibilität bietet, ist die Verwendung des :exportsHeader-Arguments (siehe (info "(org) Exporting code blocks")). Wenn Sie das Argument auf "" setzen, werden :exports noneweder der Codeblock noch die Ergebnisse exportiert.

Wenn Sie eine Backend-spezifische Regel bevorzugen, können Sie eine Bedingung als Argument verwenden:

#+begin_src elisp :exports (when (eq org-export-current-backend 'html) "none")
(+ 1 2)
#+end_src
mutbuerger
quelle
Während die akzeptierte Lösung funktioniert, wenn alle Quellcodeblöcke in einer Organisationsdatei ausgeschlossen werden müssen, funktioniert diese Lösung, wenn nur bestimmte Quellcodeblöcke ausgeschlossen werden sollen. Dies ist anpassbarer, ohne zusätzliche Funktionen zu erstellen.
Emacs User
Ordentlich! Ist diese Verwendung von Lisp-Code als Header-Argument-Wert dokumentiert?
JeanPierre
Ich bin mir nicht sicher, aber ein Blick auf org-babel-merge-paramsmacht dies ziemlich offensichtlich. Für die :resultsgibt es sogar einen expliziten (if (stringp value) value (eval value t))... aus welchem ​​Grund auch immer.
Mutbuerger
7

Basierend auf Abschnitt 12.15 der Organisationsdokumentation:

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

Ersetzen Sie "[entfernter Quellblock]" natürlich durch eine leere Zeichenkette!

Jean Pierre
quelle
Dies funktioniert auch global, was großartig ist. Vielen Dank!
Grassdog