Org-Export: Wie kann eine vorgenerierte HTML-Datei beim Exportieren von org in HTML eingefügt werden?

7

Ich schreibe meine persönliche Homepage als Organisationsdatei um, die ich in HTML exportiere. In dieses HTML-Dokument möchte ich den Inhalt einiger vorgenerierter HTML-Fragmente aufnehmen, die in anderen Dateien gespeichert sind (meine Liste der Veröffentlichungen, wie sie von generiert wurden bibtex2html).

Hier ist ein Beispieldokument:

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

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

Ich habe versucht, zu verwenden, #+INCLUDE:aber das entgeht dem gesamten HTML und zeigt daher die HTML-Quelle auf der resultierenden Webseite, nicht das gerenderte HTML-Fragment.

Ich habe auch folgendes versucht

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

Die #+INCLUDEDirektive wird jedoch nicht im HTML-Block interpretiert.

Es scheint, dass es einen einfachen Weg geben sollte, dies zu erreichen, aber ich kann ihn anscheinend nicht finden.

tmalsburg
quelle
Zuerst würde ich versuchen, ein geeignetes :html-preambleoder ein geeignetes zu definieren :html-postamble, vielleicht ein #+SETUPFILE:, um es aufzurufen. Ein anderer Ansatz wäre das Hinzufügen eines org-export-html-final-hook, möglicherweise mit Hilfe von auto-insert.
Brian Z
1
Danke @BrianZ für diese Vorschläge. Leider :html-preambleund :html-postamblewird nicht funktionieren, da ich die HTML-Fragmente in der Mitte der Datei nicht am Anfang und Ende einfügen muss. org-export-html-final-hookwird in einem ChangeLog erwähnt, aber ich kann seine Definition nirgendwo in der Quelle finden. aproposweiß es auch nicht. Ich werde eine Feature-Anfrage für eine wörtliche Flagge für posten #+INCLUDE.
Tmalsburg

Antworten:

8

Vgl. Im zweiten Absatz des Org-Handbuchs #+INCLUDEkönnen Sie archivieren, was Sie möchten (Org v9-Syntax).

#+INCLUDE: "file.html" export html

Für Org v8 würden Sie schreiben #+INCLUDE: "file.html" html.

Diese Einfügung ist ein Block und erfordert org-mode v8.3 oder höher.

11.4 Dateien einschließen

Während des Exports können Sie den Inhalt einer anderen Datei einfügen. Um beispielsweise Ihre '.emacs'-Datei einzuschließen, können Sie Folgendes verwenden:

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

Der erste Parameter benennt die einzuschließende Datei. Der optionale zweite und dritte Parameter geben das Markup an (dh 'Beispiel' oder 'src') und, wenn das Markup 'src' ist, die Sprache zum Formatieren des Inhalts.

Rasmus
quelle
1
Wie ich in der ursprünglichen Frage sagte, funktioniert dies nicht. Es entweicht jeglichem HTML, so dass ich die HTML-Quelle sehe, aber nicht die gerenderte Version des HTML in der Ausgabedatei.
Tmalsburg
Ok, es funktioniert aber nur im org-Modus Version 8.3 (instabil). Vielleicht könnten Sie diese entscheidende Information zur Lösung hinzufügen. Vielen Dank.
Tmalsburg
Gleiches Problem mit der neuesten Organisation von Github 8.3.4. Ich versuche, HTML-Code von htmlcommentbox.com einzuschließen , um Kommentare zu aktivieren.
Barrios
3

Ich benutze den Org-Modus 8.2.10

Obwohl ich erwartet hatte #+INCLUDE: "path" htmlzu arbeiten, formatierte es den Dateiinhalt in <p>Tags.

Um dieses Problem zu umgehen, habe ich einen sh-Codeblock verwendet:

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