无法将组织模式导出为可折叠 HTML

ksb*_*ksb 5 org-mode

我试图为从组织模式导出的 HTML 文件中的部分提供基本的折叠/折叠功能,因为我要共享的文件非常大。我在 Mac 上使用 Emacs 26.2 (9.0) 和 Org 9.1.9。

这似乎是一个内置功能,但我还没有看到#+INFOJS_OPT在导出到 HTML 之前向我的组织文件添加命令有任何效果。我还看到邮件列表中提到了另一个工具,但没有任何示例,我不知道如何将其应用于我拥有的特定组织文件。

例如,以下文件被转换为 HTML,它看起来与没有 INFOJS_OPT 行的同一文件相同

#+Title+: JS test
#+INFOJS_OPT: path:js/org-info.js
#+INFOJS_OPT: toc:nil ltoc:nil view:overview mouse:underline
#+INFOJS_OPT: home:https://orgmode.org buttons:nil
* Chapter 1
** Section 1
*** Part 1
 - csp
** Section 2
 - cs2p
Run Code Online (Sandbox Code Playgroud)

我有一个新下载的js/org-info.js副本。

生成的 HTML 略有不同,但这似乎没有效果。我不知道如何折叠生成的 HTML - 即使在 org-info.js 之外也可以使用解决方案。

Dyl*_*sta 2

似乎 org-info.js 不再维护了。他们在这里提供 JavaScript 源代码,供任何愿意调整/更新它的人使用。

https://lists.gnu.org/r/emacs-orgmode/2017-07/msg00049.html

幸运的是有人更新了它(感谢丹尼尔·克莱门特!)。

程序是:

#+HTML_HEAD_EXTRA: <script type="text/javascript"  src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
#+HTML_HEAD_EXTRA: <script type="text/javascript" src="esquemadorg.js"></script>
Run Code Online (Sandbox Code Playgroud)

确保指向相对于 html 导出文件所在位置的src="esquemadorg.js"文件。

导出的文档中将出现一些西班牙语(或葡萄牙语?)文本。您可以在文件中进行完整搜索esquemadorg.js并将其更改为英文。我的现在看起来像这样。

    par.append(document.createTextNode("Press on a section header to collaps/expand it."));
    par.append( $( document.createElement('a') ).text(" COLLAPSE ALL ").addClass("globalexpandtool").click(close_all_sections));
    par.append( $( document.createElement('a') ).text(" SHOW ALL  ").addClass("globalexpandtool").click(open_all_sections));
    $("div#table-of-contents").after(par);
Run Code Online (Sandbox Code Playgroud)