Kuruluş modu dosyalarını oldukça sık dışa aktarıyorum ve neredeyse hepsinin içinde kod var. Dışa aktarma kodunu yaptığımda, temama bağlı olarak metni renklendirmekle bitiyor, ancak düzenli olarak karanlık bir tema ile hafif bir tema arasında geçiş yapıyorum. Işık teması durumunda, <code>
blokların açık bir arka plana sahip olması gerekir ve karanlık bir tema için karanlık bir arka plana sahip olmaları gerekir (aksi halde grimsi bir arka plan üzerinde açık sarı metinle bitirdim ve okunamıyor).
Koyu arka planlar için bu satırı eklemeliyim:
#+HTML_HEAD: <style>pre.src {background-color: #303030; color: #e5e5e5;}</style>
Sonra açık renkli bir arka plana geçtiğimde kaldırmayı unutma
Geçerli temanın arka plan rengini dışa aktarma sırasında otomatik olarak tespit edip dışa aktarılan HTML'nin CSS'sinde kullanmamın bir yolu var mı?
DÜZENLE
Jordon'un cevabına gidiyorum (teşekkürler Jordon, karma puanları alıyorsunuz!), Ancak koduma ekleyeceğim çözümü göndermek istedim, çünkü cevabının biraz değiştirilmiş bir versiyonuydu:
(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)
Bu sadece arka plan rengini değil, aynı zamanda ön plan rengini de ayarlar. Ayrıca satırı mevcut org-html-head-extra
ayara ekler, böylece diğer HTML’nin üzerine yanlışlıkla yazılmaz. Test ettim ve bu benim için harika!
disable-theme
), günde birkaç kez yaptığım HTML'yi dışa aktarmak için Emacs'ı ayrı bir temayla yeniden başlatmak istemem.
org-html-head-extra
stilin işlevselliği bozulmayacak olsa da sınırsız büyümeye neden olacak şekilde eklenir.