Wie kann org-publish automatisch generierte Bilder veröffentlichen?


7

Ich verwende org-Publish, um häufig HTML-Exporte von Dateien im org-Modus zu veröffentlichen, um Dokumente für meine Kollegen freizugeben. Ich generiere jedoch viele Diagramme mit plantumlund gnuplot. Diese Diagramme werden beim Exportieren der Datei mit nicht an den Remote-Server gesendet C-c C-e P f.

Meine Konfiguration sieht so aus:

("org-pastebin"
 :base-directory "~/org/"
 :base-extension "org\\|zsh\\|html\\|png"
 :publishing-directory "/ssh:user@server:~/public_html/org/"
 :publishing-function org-html-publish-to-html
 :with-toc t
 :html-preamble t)

Wenn ich eine Organisationsmodus-Datei habe, die wie folgt aussieht:

* Header
Some prose

#+BEGIN_SRC plantuml :file my-file.png :results raw
...
#+END_SRC

#+RESULTS:
[[file:my-file.png]]

Wie kann ich Emacs in diesem Fall dazu bringen, die verknüpfte Datei (my-file.png) automatisch zu veröffentlichen? Selbst wenn ich das gesamte Projekt veröffentliche, werden die Bilder nicht kopiert.

Antworten:


7

Um Projekte zu veröffentlichen, die aus mehreren Dateitypen bestehen, füge ich meiner .emacsDatei Folgendes hinzu :

(setq org-publish-project-alist
  '(("myprojectorg"
     :base-directory "~/path/to/myproject/"
     :publishing-directory "/ssh:user@server:~/public_html/myproject/"
     :publishing-function org-html-publish-to-html
     :auto-preamble t
     )
    ("myprojectother"
     :base-directory "~/path/to/myproject/"
     :base-extension "css\\|pdf\\|sh"
     :publishing-directory "/ssh:user@server:~/public_html/myproject"
     :publishing-function org-publish-attachment
     )
    ("myprojectimages"
     :base-directory "~/path/to/myproject/images"
     :base-extension "png\\|jpg"
     :publishing-directory "/ssh:user@server:~/public_html/myproject/images"
     :publishing-function org-publish-attachment
     )
    ("myprojectweb" :components("myprojectorg" "myprojectother" "myprojectimages"))
   )
)

Dies definiert einen Eintrag, myprojectwebden ich beim Veröffentlichen aus dem Organisationsmodus mit verwende C-c C-e P x. Dies myprojectwebbesteht aus:

  • die Organisationsdatei (en) wie definiert in myprojectorg,
  • Bilddateien wie in myprojectimages(die sich in einem Unterverzeichnis befinden) definiert sind, und
  • andere Dateien (in diesem Fall PDFs, CSS-Dateien und Shell-Skripte), die in definiert sind myprojectother.

Diese beiden letzten Einträge werden veröffentlicht, wobei org-publish-attachmentnichts anderes getan wird, als die Dateien in das zu kopieren publishing-directory.


Getestet und es funktioniert super, danke!
Lee H
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.