Exportación de la organización: ¿Cómo incluir un archivo HTML pregenerado al exportar la organización a HTML?

7

Estoy reescribiendo mi página de inicio personal como un archivo de organización que exporto a HTML. En este documento HTML, me gustaría incluir el contenido de algunos fragmentos HTML pregenerados almacenados en otros archivos (mi lista de publicaciones generada por bibtex2html).

Aquí hay un documento de ejemplo:

* My personal home page
** Articles
[insert HTML file with list of articles here]

** Posters
[insert HTML file with list of posters here]

Intenté usar #+INCLUDE:pero eso escapa a todo HTML y, por lo tanto, muestra la fuente HTML en la página web resultante, no el fragmento HTML representado.

También probé lo siguiente

#+BEGIN_HTML
#+INCLUDE: "file.html"
#+END_HTML

pero la #+INCLUDEdirectiva no se interpreta dentro del bloque HTML.

Parece que debería haber una manera fácil de lograr esto, pero parece que no puedo encontrarlo.

Tmalsburg
fuente
Primero buscaría definir un apropiado :html-preambleo un :html-postamble, tal vez usando un #+SETUPFILE:para invocarlo. Otro enfoque sería agregar un org-export-html-final-hook, posiblemente con la ayuda de auto-insert.
Brian Z
1
Gracias @BrianZ por estas sugerencias. Desafortunadamente, :html-preambley :html-postambleno funcionará porque necesito insertar los fragmentos HTML en el medio del archivo, no al principio y al final. org-export-html-final-hookse menciona en un ChangeLog pero no puedo encontrar su definición en ninguna parte de la fuente. aproposTampoco lo sabe. Publicaré una solicitud de función para una bandera literal #+INCLUDE.
Tmalsburg

Respuestas:

8

Cf. el segundo párrafo del manual de Org sobre #+INCLUDEusted puede archivar lo que quiera usar (sintaxis Org v9)

#+INCLUDE: "file.html" export html

Para Org v8 escribirías #+INCLUDE: "file.html" html.

Este inserto es un bloque y requiere el modo org v8.3 o superior.

11.4 Incluir archivos

Durante la exportación, puede incluir el contenido de otro archivo. Por ejemplo, para incluir su archivo '.emacs', puede usar:

 #+INCLUDE: "~/.emacs" src emacs-lisp

El primer parámetro nombra el archivo a incluir. El segundo y tercer parámetro opcionales especifican el marcado (es decir, 'ejemplo' o 'src') y, si el marcado es 'src', el idioma para formatear los contenidos.

rasmus
fuente
1
Como dije en la pregunta original, esto no funciona. Se escapa de todo HTML de tal manera que veo la fuente HTML pero no la versión renderizada del HTML en el archivo de salida.
Tmalsburg
Ok, funciona pero solo en modo org versión 8.3 (inestable). Quizás podría agregar esa información crucial a la solución. Gracias.
Tmalsburg
El mismo problema con la última organización de github 8.3.4, trato de incluir el código html de htmlcommentbox.com para habilitar los comentarios.
barrios
3

Estoy usando el modo org 8.2.10

Aunque esperaba #+INCLUDE: "path" htmltrabajar, estaba formateando el contenido del archivo en <p>etiquetas.

Para solucionar este problema, utilicé un bloque de código sh:

#+BEGIN_SRC sh :exports results :results value html
#!/bin/bash
/bin/cat ~/path/to/file.html
#+END_SRC
promedio
fuente