L'objectif est de créer un fichier html autonome lors de l'exportation depuis orgmode afin que les images soient intrinsèques au fichier et qu'un seul fichier html puisse être distribué (j'essaie de le faire pour une classe que j'enseigne et que je veux donner aux étudiants un seul html qu'ils peuvent ouvrir dans un navigateur).
J'ai trouvé un extrait de code en ligne qui donne l'idée de ce que je veux:
#+BEGIN_SRC python :results output html :exports results
with open('/home/britt/Pictures/Britt0001.jpg', 'rb') as image:
data = image.read()
print '<img src="data:image/jpg;base64,%s">' % data.encode("base64")
#+END_SRC
Et j'essaie de l'intégrer dans elisp et de supprimer ainsi la dépendance vis-à-vis de python et comme une étape vers la création de ma propre fonction elisp qui pourrait avoir plus de détails.
Voici à quoi je suis arrivé. Des conseils appréciés.
#+BEGIN_src elisp :results output html :exports results
(setq myim (concat "<img src=\\"data:image/jpg;base64," (tob64 "/home/britt/Pictures/Britt0001.jpg") ">"))
(print myim)
#+END_SRC
et où tob64
est
(defun tob64 (filename)
(base64-encode-string
(with-temp-buffer
(insert-file-contents filename)
(buffer-string))))
Cela ne donne pas la mise en forme et les citations correctes.
Le but à atteindre est une variante de l' org-html-export-to-html
endroit où la fonction elisp pourrait vivre et être invoquée lorsqu'une option comme #+OPTIONS: embed-images-on-html-export:t
était invoquée.
Et en passant, pourquoi la fonctionnalité d'export au format HTML avec des images intégrées n'existe-t-elle pas déjà en mode org? Y a-t-il un problème plus important qui rend cela problématique pour moi de travailler?
print
ouinsert
. Va maintenant lireformat
. Difficile de savoir quoi chercher quand on ne connaît pas le nom des choses. Explorera vos conseils sur l'utilisation du crochet. Cela ne ressemble-t-il pas à quelque chose qui en vaut la peine?À partir du fil reddit https://www.reddit.com/r/orgmode/comments/7dyywu/creating_a_selfcontained_html/
la source
Comme alternative, vous pouvez utiliser le package ox-pandoc . Pandoc lui-même a une option de ligne de commande appelée --self-Contenu qui incorporera des images en HTML.
Pour vous utilisez cela uniquement pour l'exportateur pandoc HTML5, en le mettant dans votre .emacs:
En outre, vous pouvez également l'avoir pour html4:
Ou pour utiliser - autonome pour tout pandoc:
Notez que la
(standalone . t)
partie est facultative, je l'inclus uniquement car cela reproduit ensuite les valeurs par défaut de pandoc. Vous pouvez le supprimer si vous le souhaitez ou le remplacer par votre propre ensemble d'options.Enfin, vous pouvez faire la même chose pour un seul fichier en utilisant l'en-tête:
#+PANDOC_OPTIONS: self-contained:t
la source