使用的是 Spacemacs,为什么我的 org-mode 导出的 HTML 文件样式中源代码的注释很难看,请问如何修改?
导出的源代码与可能与你的编辑器主题有关。
说不准,有时候 emacs 导出代码的时候,会提取当前主题的颜色来使用。。。。 理由很简单: 既然用户用这种颜色的主题,肯定喜欢导出这种颜色
某些情况下(我不知道)也许会受到影响,但是如果用 Spacemacs-rocks/deploy.sh at master · emacs-china/Spacemacs-rocks · GitHub 脚本来生成,应该跟主题无关了。
不过这个脚本依赖特定版本(v8.3.6)的 org-mode,版本不对可能会出错,例如 org-mode 9.x 提示:
⋊> git clone --depth 1 https://github.com/emacs-china/Spacemacs-rocks/ && cd Spacemacs-rocks
⋊> sh ./deploy.sh
....
Please install htmlize from https://github.com/hniksic/emacs-htmlize
OP (@DL-85) 得到的高亮来自是 Emacs 的 Face (透过 htmlize.el
),Spacemacs Rocks 得到的高亮来自 highlight.js
。
如果需要像 Spacemacs Rocks 那样,需要:
- 引入
highlight.js
- Org 导出 HTML 时禁用
htmlize.el
- 交互模式下,我不知道怎么做到
- Batch 下,
htmlize.el
本来就不可用
- 替换
<pre ..>
标签的写法,参考 rasmus/org-html-wrap-blocks-in-code
禁用 htmlize.el
能顺利导出么,我对 org-mode 不太了解。现在用的是 emacs 几个版本正好都不是 org-mode 8.3:
⋊> sh ./deploy.sh emacs-25
Org-mode version 8.2.10 (release_8.2.10 @ /Applications/Emacs-25.3.app/Contents/Resources/lisp/org/)
Symbol’s function definition is void: org-element-update-syntax
⋊> sh ./deploy.sh emacs-26
Org mode version 9.1.2 (release_9.1.2-40-g6ca906 @ /Applications/Emacs-pretest-26.0.90.app/Contents/Resources/lisp/org/)
Please install htmlize from https://github.com/hniksic/emacs-htmlize
构建脚本(我做了些修改,使其支持指定 emacs)并没有显示禁用 htmlize,该特性只是处于不可用状态。但是 htmlize 不可用的时候会出错,如何忽略这个错误/显示禁用 htmlize?
看起来只是 8.3 可以,我们现在见到的 http://book.emacs-china.org 就是这么得到的。但貌似最近的版本不行了,如果强制使用 htmlize
的话,这就可以当作 Bug 了,因为 htmlize
本身就不好(但我承认它很酷),有足够的理由避免使用它:
- 受 Emacs 配色影响,很难重现
- Batch mode 下无效
我也不知道
http://book.emacs-china.org/ 的结果是在 Travis CI 上导出的,如果需要在本地导出的话:
$ wget -O - http://orgmode.org/org-8.3.6.tar.gz | tar xvz
$ emacs README.org --batch -l generate_readme.el -f org-html-export-to-html
$ open README.html
我修改了一下构建脚本,加入 htmlize:
-
deploy.sh
-emacs README.org --batch --eval="(load-file \"generate_readme.el\")" -f org-html-export-to-html --kill +${1:-emacs} README.org --batch --eval="(load-file \"generate_readme.el\")" -f org-html-export-to-html --kill
-
generate_readme.el
-(add-to-list 'load-path "./org-8.3.6/lisp") +(add-to-list 'load-path "~/.emacs.d/el-get-26.0.90/org-9.1.2/lisp") +(add-to-list 'load-path "~/.emacs.d/elpa-26.0.90/htmlize-20171017.141")
导出的效果如下:
似乎并没有什么问题?
htmlize.el
没发挥任何作用却必须得装上。
同意。然而我发现深背景的主题导出到默认白底 的网页效果简直hhhhhh 所以我把导出的代码块加了深色背景的css
导出的时候切亮色主题吧。。。
弱弱的问一下,spacemacs rocks 是用的 jekyll 生成 gh pages 的吗?
Edit:好吧,只有一个页面。
上游已经当作一个 Bug 修复了,现在把 org-html-htmlize-output-type
改成 nil
就行了。
被这个脚本坑了一把,里边修改了全局的 git_author_name
和 git_author_email
,当时没注意。后来往 github 推了几个提交之后才发现不对,还以为自己电脑被黑了,找了很久才找到原因。
不知道是不是可以改为项目本地设置,对 travis 有无影响?@xuchunyang @zilongshanren
这个脚本看起来只应该在 Travis CI 中运行,怎么被你运行了呢?是不小心么?
就是之前参与本帖讨论的时候运行过。