一个有点奇怪的问题。我在 emacs 里用 M-x lsz/org-export-publish Ret 执行导出的时候,代码块是可以正常高亮的。但一旦使用 emacs --script ~/.emacs.d/lisp/script-org-export-publish.el 来导出,代码块的高亮就没了
(use-package htmlize) (use-package org :hook ('before-save . 'lsz/org-mode-hook-func-before-save) :config (setq org-startup-truncated nil) (setq org-support-shift-select t) (setq org-use-sub-superscripts '{}) (setq org-use-fast-todo-selection t) (setq org-todo-keywords '((sequence "TODO(t)" "DOING(i)" "|" "DONE(d)" "ABORT(a)"))) ) (use-package ox-html :ensure org :config (setq org-html-htmlize-output-type 'inline-css) (setq org-src-fontify-natively t) ) (defun lsz/org-export-publish() "Publish org site by publish script." (interactive) (load "~/.emacs.d/lisp/script-org-export-publish.el")) (use-package ox-publish :ensure org :config ;; (setq org-html-postamble t) ;; (setq org-html-postamble-format '(("en" ""))) (setq org-export-with-sub-superscripts '{}) (setq org-publish-project-alist (let* ((lsz/site-path "~/Documents/LSZOrgArticle/") (lsz/site-pub-path "~/Documents/LSZOrgArticlePublish/") (get-content (lambda (x) (with-temp-buffer (insert-file-contents (concat lsz/site-path x)) (buffer-string)))) (lsz/site-postamble (funcall get-content "template/postamble.html")) (lsz/site-preamble (funcall get-content "template/preamble.html")) (lsz/site-head (funcall get-content "template/head.html"))) `( ("blog" :base-directory ,(concat lsz/site-path "article/blog/") :base-extension "org" :publishing-directory ,(concat lsz/site-pub-path "article/blog/") :publishing-function org-html-publish-to-html :recursive t :headline-levels 4 :auto-sitemap t :sitemap-filename "sitemap-index.org" :sitemap-title "blog" :html-doctype "html5" :html-head ,lsz/site-head :html-preamble ,lsz/site-preamble :html-postamble ,lsz/site-postamble :htmlized-source t :with-toc t ) ("reading" :base-directory ,(concat lsz/site-path "article/reading/") :base-extension "org" :publishing-directory ,(concat lsz/site-pub-path "article/reading/") :publishing-function org-html-publish-to-html :recursive t :headline-levels 4 :auto-sitemap t :sitemap-filename "sitemap-index.org" :sitemap-title "reading" :html-doctype "html5" :html-head ,lsz/site-head :html-preamble ,lsz/site-preamble :html-postamble ,lsz/site-postamble :htmlized-source t :with-toc t ) ("wiki" :base-directory ,(concat lsz/site-path "article/wiki/") :base-extension "org" :publishing-directory ,(concat lsz/site-pub-path "article/wiki/") ;; :publishing-function org-html-publish-to-html :recursive t :headline-levels 4 :auto-sitemap t :sitemap-filename "sitemap-index.org" :sitemap-title "wiki" ;; :html-doctype "html5" :html-head ,lsz/site-head :html-preamble ,lsz/site-preamble :html-postamble ,lsz/site-postamble ;; :htmlized-source t :with-toc t ) ("site" :base-directory ,(concat lsz/site-path "article/site/") :base-extension "org" :publishing-directory ,(concat lsz/site-pub-path "article/site/") :publishing-function org-html-publish-to-html :recursive t :headline-levels 4 :html-doctype "html5" :html-head ,lsz/site-head :html-preamble ,lsz/site-preamble :html-postamble ,lsz/site-postamble :htmlized-source t :with-toc nil ) ("static" :base-directory ,(concat lsz/site-path "article_static/") :base-extension "css\\|js\\|png\\|jpg\\|gif\\|zip\\|7z\\|rar\\|pdf" :publishing-directory ,(concat lsz/site-pub-path "/article_static") :publishing-function org-publish-attachment :recursive t ) ("all" :components ("blog" "reading" "wiki" "site" "static")) ))))
这是 ~/.emacs.d/lisp/script-org-export-publish.el
;;; need environment (package-initialize) (load "~/.emacs.d/init.el") ;;; publish file (org-publish-all)
这是正常渲染出来的,有代码高亮的 html
<pre class="src src-python"><span style="color: #a020f0;">import</span> csv <span style="color: #a020f0;">with</span> <span style="color: #483d8b;">open</span>(<span style="color: #8b2252;">'stock.csv'</span>,<span style="color: #8b2252;">'r'</span>) <span style="color: #a020f0;">as</span> fp: <span style="color: #a0522d;">reader</span> = csv.reader(fp) <span style="color: #a0522d;">titles</span> = <span style="color: #483d8b;">next</span>(reader) <span style="color: #a020f0;">for</span> x <span style="color: #a020f0;">in</span> reader: <span style="color: #a020f0;">print</span>(x) </pre>
这是 emacs --script 渲染出来的 html:
<pre class="src src-python"><span style="font-weight: bold;">import</span> csv <span style="font-weight: bold;">with</span> <span style="font-weight: bold;">open</span>(<span style="font-style: italic;">'stock.csv'</span>,<span style="font-style: italic;">'r'</span>) <span style="font-weight: bold;">as</span> fp: <span style="font-weight: bold; font-style: italic;">reader</span> = csv.reader(fp) <span style="font-weight: bold; font-style: italic;">titles</span> = <span style="font-weight: bold;">next</span>(reader) <span style="font-weight: bold;">for</span> x <span style="font-weight: bold;">in</span> reader: <span style="font-weight: bold;">print</span>(x) </pre>
效果图在 https://emacs-china.org/t/org-emacs-script-org-publish-all/20782
老哥们啊,这是咋回事,该从哪下手排查问题,我 google 了几个小时完全没有头绪。