J'exporte assez souvent des fichiers en mode org, et presque tous contiennent du code. Lorsque j'exporte du code, cela finit par colorer le texte en fonction de mon thème, cependant, je bascule régulièrement entre un thème sombre et un thème clair. Dans le cas du thème clair, les <code>
blocs doivent avoir un fond clair et pour un thème sombre, ils doivent avoir un fond sombre (sinon je me retrouve avec du texte jaune clair sur fond grisâtre et c'est illisible).
Je dois ajouter cette ligne pour les fonds sombres:
#+HTML_HEAD: <style>pre.src {background-color: #303030; color: #e5e5e5;}</style>
Et n'oubliez pas de le retirer chaque fois que je passe à un arrière-plan de couleur claire
Existe-t-il un moyen de détecter automatiquement la couleur d'arrière-plan du thème actuel au moment de l'exportation et de l'utiliser dans le CSS HTML exporté?
MODIFIER
Je vais avec la réponse de Jordon (merci Jordon, vous obtenez les points de karma!), Mais je voulais poster la solution que j'ai fini par ajouter à mon code, car c'était une version légèrement modifiée de sa réponse:
(defun my/org-inline-css-hook (exporter)
"Insert custom inline css to automatically set the
background of code to whatever theme I'm using's background"
(when (eq exporter 'html)
(let* ((my-pre-bg (face-background 'default))
(my-pre-fg (face-foreground 'default)))
(setq
org-html-head-extra
(concat
org-html-head-extra
(format "<style type=\"text/css\">\n pre.src {background-color: %s; color: %s;}</style>\n"
my-pre-bg my-pre-fg))))))
(add-hook 'org-export-before-processing-hook 'my/org-inline-css-hook)
Cela définit non seulement la couleur d'arrière-plan, mais également la couleur de premier plan. Il ajoute également la ligne au org-html-head-extra
paramètre existant afin que tout autre code HTML ne soit pas remplacé accidentellement. J'ai testé et cela fonctionne très bien pour moi!
disable-theme
), je ne veux pas avoir à redémarrer Emacs avec un thème séparé juste pour exporter du HTML, ce que je fais plusieurs fois par jour.
org-html-head-extra
est ajouté à, ce qui entraîne une croissance illimitée, bien que la fonctionnalité du style ne soit pas affectée.