Exportação de organização: como incluir um arquivo HTML pré-gerado ao exportar organização para HTML?


7

Estou reescrevendo minha home page pessoal como um arquivo organizacional que exporto para HTML. Neste documento HTML, gostaria de incluir o conteúdo de alguns fragmentos HTML pré-gerados armazenados em outros arquivos (minha lista de publicações conforme gerada por bibtex2html).

Aqui está um exemplo de documento:

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

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

Eu tentei usar, #+INCLUDE:mas isso escapa todo o HTML e, portanto, mostra a fonte HTML na página resultante, não o fragmento HTML renderizado.

Eu também tentei o seguinte

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

mas a #+INCLUDEdiretiva não é interpretada dentro do bloco HTML.

Parece que deve haver uma maneira fácil de conseguir isso, mas não consigo encontrá-lo.


Primeiro, eu gostaria de definir um apropriado :html-preambleou a :html-postamble, talvez usando a #+SETUPFILE:para invocá-lo. Outra abordagem seria adicionar um org-export-html-final-hook, possivelmente com a ajuda de auto-insert.
Brian Z

11
Obrigado @BrianZ por essas sugestões. Infelizmente, :html-preamblee :html-postamblenão funcionará porque eu preciso inserir os fragmentos HTML no meio do arquivo, não no começo e no final. org-export-html-final-hooké mencionado em um ChangeLog, mas não consigo encontrar sua definição em nenhum lugar da fonte. apropostambém não sabe disso. Vou postar uma solicitação de recurso para um sinalizador literal para #+INCLUDE.
tmalsburg 18/03/2015

Respostas:


8

Cf. No segundo parágrafo do manual da organização, #+INCLUDEé possível arquivar o que você deseja usar (sintaxe da organização v9)

#+INCLUDE: "file.html" export html

Para a Org v8, você escreveria #+INCLUDE: "file.html" html.

Esta inserção é um bloco e requer o modo organizacional v8.3 ou superior.

11.4 Incluir arquivos

Durante a exportação, você pode incluir o conteúdo de outro arquivo. Por exemplo, para incluir o arquivo '.emacs', você pode usar:

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

O primeiro parâmetro nomeia o arquivo a incluir. O segundo e terceiro parâmetro opcional especificam a marcação (por exemplo, 'exemplo' ou 'src') e, se a marcação for 'src', o idioma para formatar o conteúdo.


11
Como eu disse na pergunta original, isso não funciona. Ele escapa todo o HTML, de modo que eu veja a fonte HTML, mas não a versão renderizada do HTML no arquivo de saída.
tmalsburg

Ok, funciona, mas apenas no modo organizacional versão 8.3 (instável). Talvez você possa adicionar essa informação crucial à solução. Obrigado.
tmalsburg

Mesmo problema com a última organização do github 8.3.4, tento incluir o código html em htmlcommentbox.com para permitir comentários.
barrios

3

Estou usando o modo org 8.2.10

Embora eu estivesse esperando #+INCLUDE: "path" htmltrabalhar, ele estava formatando o conteúdo do arquivo em <p>tags.

Para contornar esse problema, usei um bloco de código sh:

#+BEGIN_SRC sh :exports results :results value html
#!/bin/bash
/bin/cat ~/path/to/file.html
#+END_SRC
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.