求助, org 文件使用 emacs –script 执行 org-publish-all 的时候代码块没有高亮?

2022-04-29 22:47:09 +08:00
 gridsah

一个有点奇怪的问题。我在 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 了几个小时完全没有头绪。

953 次点击
所在节点    Emacs
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/850135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX