मैं ऑर्ग-मोड फ़ाइलों को अक्सर निर्यात करता हूं, और उनमें से लगभग सभी में कोड है। जब मैं निर्यात कोड करता हूं, तो यह मेरे विषय के आधार पर पाठ को रंग देता है, हालांकि, मैं नियमित रूप से एक अंधेरे विषय और एक हल्के विषय के बीच स्विच करता हूं। प्रकाश विषय के मामले में, <code>
ब्लॉक के लिए एक हल्की पृष्ठभूमि की आवश्यकता होती है, और एक अंधेरे विषय के लिए उन्हें एक गहरे रंग की पृष्ठभूमि की आवश्यकता होती है (अन्यथा मैं एक भूरे रंग की पृष्ठभूमि पर हल्के पीले पाठ के साथ समाप्त होता हूं और यह अपठनीय है)।
मुझे डार्क बैकग्राउंड के लिए इस लाइन को जोड़ना है:
#+HTML_HEAD: <style>pre.src {background-color: #303030; color: #e5e5e5;}</style>
और फिर इसे किसी भी समय निकालने के लिए याद रखें जब मैं हल्के रंग की पृष्ठभूमि पर स्विच करता हूं
क्या कोई तरीका है जो मैं निर्यात समय पर वर्तमान थीम की पृष्ठभूमि का रंग स्वचालित रूप से पता लगा सकता हूं और इसे निर्यात किए गए HTML के सीएसएस में उपयोग कर सकता हूं?
संपादित करें
मैं जॉर्डन के जवाब के साथ जा रहा हूं (धन्यवाद जॉर्डन, आपको कर्म अंक मिलते हैं!), हालांकि मैं अपने समाधान को अपने कोड में जोड़ना चाहता था, क्योंकि यह उनके उत्तर का थोड़ा संशोधित संस्करण था:
(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)
यह न केवल पृष्ठभूमि रंग, बल्कि अग्रभूमि रंग भी सेट करता है। यह मौजूदा org-html-head-extra
सेटिंग के लिए लाइन को भी जोड़ता है ताकि अन्य HTML गलती से अधिलेखित न हो। मैंने परीक्षण किया है और यह मेरे लिए बहुत अच्छा काम करता है!
disable-theme
), मैं केवल HTML को निर्यात करने के लिए एक अलग विषय के साथ Emacs को पुनः आरंभ नहीं करना चाहता, जो मैं दिन में कई बार करता हूं।
org-html-head-extra
जुड़ जाता है, जो बिना रुके विकास की ओर जाता है, हालांकि शैली की कार्यक्षमता ख़राब नहीं होगी।