¿Hay alguna manera de hacer que el modo Org ignore los bloques src al exportar a html?

12

Tengo un documento de organización con bloques de origen dispersos que me gustaría excluir cuando exporto el archivo a html.

¿Hay alguna variable u opción que pueda establecer que ignore los bloques src?

Intenté usar el noexport como se muestra a continuación, pero el código aún aparece en el html resultante.

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

¡Gracias!

Perro de pasto
fuente
3
:exports noneDeberías hacerlo.
mutbuerger
2
@mutbuerger: ¿Podrías responder a eso? Realmente es la solución preferida. Se puede combinar con los valores predeterminados de argumento de encabezado, de modo que la exportación de todos los bloques de origen se puede controlar con una sola configuración y sin código de emacs lisp.
Timor

Respuestas:

10

Una solución que no depende org-export-filter-src-block-functionsy le brinda más flexibilidad es usar el :exportsargumento de encabezado (ver (info "(org) Exporting code blocks")). Al establecer el argumento en :exports noneresultados, no se exporta ni el bloque de código ni sus resultados.

Si prefiere una regla específica de back-end, puede usar un condicional como argumento:

#+begin_src elisp :exports (when (eq org-export-current-backend 'html) "none")
(+ 1 2)
#+end_src
mutbuerger
fuente
Si bien la solución aceptada funciona si es necesario excluir todos los bloques src en un archivo org, esta solución funciona si solo se deben excluir ciertos bloques src. Esto es más personalizable sin crear funciones adicionales.
Usuario de Emacs el
¡Ordenado! ¿Se documenta este uso del código lisp como valor de argumento de encabezado?
JeanPierre
No estoy seguro, pero un vistazo lo org-babel-merge-paramshace bastante obvio. Para el :resultshay incluso un explícito (if (stringp value) value (eval value t))... por cualquier razón.
mutbuerger
8

Basado en la sección 12.15 de la documentación de la organización:

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

¡Reemplaza "[bloque fuente eliminado]" con una cadena vacía, por supuesto!

Jean Pierre
fuente
Esto funciona a nivel mundial también, lo cual es genial. ¡Gracias!
Grassdog