Como o org-publish publica automaticamente imagens geradas?


7

Uso org-publish para publicar exportações HTML de arquivos de modo organizacional com bastante frequência para compartilhar documentos com meus colegas de trabalho. No entanto, gero muitos diagramas com plantumle gnuplot. Esses diagramas não são enviados para o servidor remoto quando exporto o arquivo C-c C-e P f.

Minha configuração se parece com:

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

Se eu tiver um arquivo de modo organizacional que se parece com:

* Header
Some prose

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

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

Como posso fazer com que o Emacs publique automaticamente o arquivo vinculado (my-file.png) neste caso? Mesmo se eu publicar todo o projeto, as imagens não serão copiadas.

Respostas:


7

Para publicar projetos que consistem em vários tipos de arquivo, adiciono o seguinte ao meu .emacsarquivo:

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

Isso define uma entrada myprojectwebque eu uso ao publicar do modo organizacional usando C-c C-e P x. Isso myprojectwebconsiste em:

  • o (s) arquivo (s) organizacional (s), conforme definido em myprojectorg,
  • arquivos de imagem, conforme definido em myprojectimages(que estão em um subdiretório) e
  • outros arquivos (neste caso, PDFs, arquivos CSS e scripts de shell), definidos em myprojectother.

Essas duas últimas entradas são publicadas usando o org-publish-attachmentque não faz nada além de copiar os arquivos para o arquivo publishing-directory.


Testei isso e funciona muito bem, obrigado!
Lee H
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.