¿Cómo tener org-Publish publicar automáticamente las imágenes generadas?


7

Utilizo org-publishing para publicar exportaciones HTML de archivos de modo org con bastante frecuencia para compartir documentos con mis compañeros de trabajo, sin embargo, genero muchos diagramas con plantumly gnuplot. Estos diagramas no se envían al servidor remoto cuando exporto el archivo con C-c C-e P f.

Mi configuración se ve así:

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

Si tengo un archivo de modo org que se parece a:

* Header
Some prose

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

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

¿Cómo puedo hacer que Emacs publique automáticamente el archivo vinculado (my-file.png) en este caso? Incluso si publico todo el proyecto, las imágenes no se copian.

Respuestas:


7

Para publicar proyectos que consisten en múltiples tipos de archivos, agrego lo siguiente a mi .emacsarchivo:

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

Esto define una entrada myprojectwebque uso cuando publico desde org-mode usando C-c C-e P x. Esto myprojectwebconsiste en:

  • el archivo org (s) como se define en myprojectorg,
  • archivos de imagen como se definen en myprojectimages(que están en un subdirectorio), y
  • otros archivos (en este caso, archivos PDF, archivos CSS y scripts de shell), que se definen en myprojectother.

Estas dos últimas entradas se publican utilizando org-publish-attachmentlo que no hace más que copiar los archivos a publishing-directory.


Probé esto y funciona muy bien, ¡gracias!
Lee H
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.