[提问] Org-mode 导出 html 时的 Wrong type argument 错误

如果文件中用了

#+include xxx.org

C-c C-e h h 导出 HTML 时会报错

org-check-agenda-file: Wrong type argument: stringp, nil

我基本没有什么自定义配置,就是用 org 写写笔记,上网搜了一下,好像没有人遇到过我这个问题。

有人遇到过同样的问题并解决么?谢谢。

另,第一次用 Discourse,怎么标记 提问已解决

1 个赞

include 另一个文件好像不是这么写的?

org-check-agenda-file 的函数调用时遇到一个参数类型错误,需要 String 结果给了 nilM-x toggle-debug-on-error 会给 backtrace,根据它能进一步知道具体是哪一个函数触发了这个错误。

不用标记提问,因为一般一眼就能看出来是在提问。在回帖底下点省略号(“显示更多”)展开,再点“这个回复解决了问题”的按钮。

Org 的问题

抱歉我发帖的时候漏了冒号。我试过:

#+INCLUDE: xxx.org

#+INCLUDE: xxx.org src

#+INCLUDE: “xxx.org” export html

#+INCLUDE: xxx.org :lines "1-"

等等各种组合。C-c ' 能顺利进入相应的 buffer,但导出都是同样的错误。比如随便两个文件 text-1.orgtext-2.org ,在 text-2.org 里插入

#+INCLUDE: text-1.org

导出就报错,打开 debug 如下:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  file-exists-p(nil)
  org-check-agenda-file(nil)
  org-agenda-prepare-buffers((nil))
  org-map-entries(#[nil "\300\301 !\207" [org-reduced-level org-current-level] 2])
  org-export--prepare-file-contents("h:/test/text-1.org" nil 0 1)
  org-export-expand-include-keyword()
  org-export-as(html nil nil nil (:output-file "./test-2.html"))
  org-export-to-file(html "./test-2.html" nil nil nil nil nil)
  org-html-export-to-html(nil nil nil nil)
  org-export-dispatch(nil)
  funcall-interactively(org-export-dispatch nil)
  call-interactively(org-export-dispatch nil nil)
  command-execute(org-export-dispatch)

不太懂 elisp,怎么让它有参数?

帖子如何标记 [已解决] 的问题

找到了标记按钮了,谢谢。

确实有些奇怪,export 怎么就调用起 agenda 的函数来了?要是排除掉你的配置还有这个问题,试试给 org-mode 提交个 bug,说不定是个 bug 呢。

谢谢你的提醒,经过搜索 GNU 的 Bug Tracker 发现它还真是个 Bug。

贴上我找到的信息给后来人:

Bug Report:https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22469

Thread:http://thread.gmane.org/gmane.emacs.bugs/111992

解决方案

不要 998,不要 98,只要升级 Emacs…

诶…这个问题我上个月在网上来回来去搜了好几天,看过用 Makefile 发布,查过别人写的 publish.el,我都没想过它是个 Bug…脑子锈了。:rolling_eyes: