Ich exportiere sehr oft Dateien im Organisationsmodus und fast alle enthalten Code. Wenn ich Code exportiere, färbt er den Text in Abhängigkeit von meinem Thema. Ich wechsle jedoch regelmäßig zwischen einem dunklen und einem hellen Thema. Im Fall des hellen Themas müssen die <code>
Blöcke einen hellen Hintergrund haben, und für ein dunkles Thema müssen sie einen dunklen Hintergrund haben (andernfalls erhalte ich hellgelben Text auf einem grauen Hintergrund und er ist nicht lesbar).
Ich muss diese Zeile für dunkle Hintergründe hinzufügen:
#+HTML_HEAD: <style>pre.src {background-color: #303030; color: #e5e5e5;}</style>
Und denken Sie daran, es zu entfernen, wenn ich auf einen hellen Hintergrund wechsle
Gibt es eine Möglichkeit, die Hintergrundfarbe des aktuellen Designs beim Export automatisch zu erkennen und im CSS des exportierten HTML zu verwenden?
BEARBEITEN
Ich gehe mit Jordons Antwort (danke Jordon, du bekommst die Karma-Punkte!), Aber ich wollte die Lösung posten, die ich meinem Code hinzugefügt habe, da es sich um eine leicht modifizierte Version seiner Antwort handelte:
(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)
Dies legt nicht nur die Hintergrundfarbe, sondern auch die Vordergrundfarbe fest. Außerdem wird die Zeile an die vorhandene org-html-head-extra
Einstellung angehängt , damit kein anderer HTML- Code versehentlich überschrieben wird. Ich habe getestet und das funktioniert großartig für mich!
disable-theme
), möchte ich Emacs nicht mit einem separaten Thema neu starten müssen, nur um HTML zu exportieren, was ich mehrmals am Tag mache.
org-html-head-extra
angehängt, was zu einem unbegrenzten Wachstum führt, obwohl die Funktionalität des Stils nicht beeinträchtigt wird.