org-modeファイルを頻繁にエクスポートしますが、ほとんどすべてにコードが含まれています。コードをエクスポートすると、テーマに応じてテキストが色付けされますが、暗いテーマと明るいテーマを定期的に切り替えます。明るいテーマの場合、<code>
ブロックの背景は明るい必要があり、暗いテーマの場合、暗い背景が必要です(そうでなければ、灰色の背景に明るい黄色のテキストが表示され、判読できません)。
暗い背景には次の行を追加する必要があります。
#+HTML_HEAD: <style>pre.src {background-color: #303030; color: #e5e5e5;}</style>
そして、明るい色の背景に切り替えるたびに削除することを忘れないでください
エクスポート時に現在のテーマの背景色を自動的に検出し、エクスポートされたHTMLのCSSで使用する方法はありますか?
編集
私はジョーダンの答えに行きます(ジョーダンに感謝、カルマポイントを獲得します!)
(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
に追加され、無限の成長につながりますが、スタイルの機能は損なわれません。