从命令行批量导出组织模式文件

2024-01-13

假设我在某个目录中有几个org-mode files: foo1.org, foo2.org等等。我想要一个脚本(也许是一个 makefile),我可以调用类似的东西

$ generate-pdfs

and foo1.pdf, foo2.pdf等都会生成。

我想像这样的东西emacs --batch --eval <MAGIC>是一个好的开始,但我不知道其中的魔力。

唯一的解决方案是insideemacs 也可能很有趣。


正如你所说,Emacs 有--batch从 shell 中使用 Emacs 执行操作的选项。除此之外,您还可以使用-l标志从文件加载 Emacs Lisp 代码并执行它,以及-f执行单个 Lisp 函数的标志。

下面是一个基本示例,它将单个组织模式文件导出为 HTML:

emacs myorgfile.org --batch -f org-html-export-to-html --kill

也许您想要更高级的东西,例如导出/发布完整的组织模式项目。我没有示例代码,但它应该不会太复杂。

我还有一个前段时间编写的示例 Makefile,用于将目录中的所有组织模式文件导出为 HTML(并将 HTML 文件复制到另一个目录):

OUT_DIR=/some/output/dir/html
# Using GNU Make-specific functions here
FILES=$(patsubst %.org,$(OUT_DIR)/%.html,$(wildcard *.org))

.PHONY: all clean install-doc

all: install-doc

install-doc: $(OUT_DIR) $(FILES)

$(OUT_DIR):
        mkdir -v -p $(OUT_DIR)

%.html: %.org
        emacs $< --batch -f org-html-export-to-html--kill

$(OUT_DIR)/%.html: %.html
        install -v -m 644 -t $(OUT_DIR) $<
        rm $<

clean:
        rm *.html

EDIT:

使用 Org-mode 8 和新的导出引擎,HTML 导出功能发生了变化。

要使前面的示例适用于 Org 7 或更早版本,请替换org-html-export-to-html with org-export-as-html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从命令行批量导出组织模式文件 的相关文章

  • Emacs -- 修改 `fill-column-indicator.el` 以在空白处显示

    我正在寻求一些帮助来修改fill column indicator el由 Alp Aker 设计 以便垂直线在空白处可见 无论空白模式是否处于活动状态 以下是该库的 Github 存储库的链接 https github com alpak
  • SBCL初始化文件

    我想知道应该在哪里保存 sbclrc 文件 我尝试将其保存在我的 sbcl 文件夹中 但它似乎不起作用 我使用的是 Windows XP 和 Emacs 版本 23 我正在尝试设置 asdf install 这就是为什么我要修改初始化文件
  • 在多个 emacs 缓冲区上执行特定命令

    有没有办法在多个缓冲区上执行 emacs 命令 而不必单独选择它们并在每个单独的缓冲区上执行它 我通常打开与特定正则表达式匹配的多个文件 例如 py并希望启用特定模式 例如hs minor mode or glasses mode在每个上
  • 在 Emacs 中,如何更改迷你缓冲区完成列表窗口?

    我想为迷你缓冲区完成列表设置一个特定的窗口 目前 我有 3 个窗口采用此配置 在这种情况下 我想使用左下窗口作为迷你缓冲区完成列表 目前 它似乎是随机的一个窗口 大多数时候它喜欢使用最右边的窗口 它太薄了 无法在我不必水平滚动的情况下显示完
  • Mac OS High Sierra 下无法打开 pty

    我的问题的本质是 用户程序如何在 Mac OS High Sierra 上打开 pty 例如 dev ptyp0 设备名称的标准 open 似乎不起作用 尽管它的保护是 crw rw rw 上下文是在 Mac OS 下运行 Emacs 在
  • 在 Slime 中复制/猛拉整个 Lisp 表单

    有没有办法在 Slime Emacs 中复制 猛拉整个表单 例如 如果我有以下功能 myfunc lst myotherfunc lst 我想复制 复制 myotherfunc lst 当我的光标位于该表单的左括号或右括号时 在 Slime
  • 更改 Common Lisp REPL 中文本的颜色

    我想控制 Common Lisp 中显示的文本的颜色 像这样的伪代码 print color red hello blue world 有什么办法可以做到这一点吗 我使用 SBCL 我的 repl 位于 emacs 内 谢谢 您可以使用AN
  • 要求 Emacs 更清楚地突出显示哪个窗口(窗格)具有焦点(光标)

    假设我将 Emacs 窗口分成多个图块 例如 When I switch between tiles aka windows in Emacs to edit my files e g using C x o I can see on wh
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色
  • Emacs Lisp 中函数名称中的“internal”是什么意思?

    有些人使用双破折号来表示该功能可能会发生变化 函数名称中的双减号 约定在 Emacs Lisp 中意味着什么 https stackoverflow com questions 3180390 what does the double mi
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • 设置自动完成以处理语义

    我在 Emacs 中的自动完成包方面遇到问题 目前我已经启动并运行了 cedet 并具有适当的自动完成功能 但自动完成包有一些奇怪的行为 它不会使用语义 参议员 的数据库 直到我显式访问包含文件并创建 C u M x bovinate 然后
  • Emacs cperl - 常量块中的缩进

    我正在运行基于 GNU Emacs 24 3 50 2 的 Aquamacs 3 0a cperl 版本是 6 2 当我编辑 Perl 常量块时 我得到了我不想要的额外缩进 use constant ONE gt 1 TWO gt 2 TH
  • 如何显示在 Emacs 中 hippie-expand 命令创建的所有可能的补全?

    我想列出所有项目hippie expand创建 然后通过移动光标并按 RET 键从中进行选择 有什么办法可以做到这一点吗 这是我为此目的使用的 global set key kbd M i complete with helm requir
  • 在 Emacs 中追逐标签后切换到原始缓冲区

    I use M 跳转到类 函数的定义 有时有多个类具有相同的标签 所以我需要使用C u M 跳转到多个文件 因此有多个缓冲区 现在我的问题是 如何快速回到原来的缓冲区 我知道C x b 但是您需要输入缓冲区名称 或者它只是默认为您提供您访问
  • 组织模式下的内联代码

    Markdown 允许embedded code 这怎么能在org mode 我了解源代码块 begin example blah blah end example 但我想要的是这样的 显然 具有正确的语法 我不知道 This is emb
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For
  • Flymake的临时文件可以在系统临时目录下创建吗?

    我目前正在使用以下代码在 emacs 中连接 Flymake 和 Pyflakes defun flymake create temp in system tempdir filename prefix make temp file or
  • 在 Elisp 中如何获取变量的初始值?

    在Emacs Lisp中 是否有一个函数可以获取由以下方式初始化的符号的初始值defvar 像some function如下图所示 defvar var initial value setq var changed value some f

随机推荐

  • 如何对图像进行高质量缩放?

    我正在编写一些代码来在 C C 中缩放 32 位 RGBA 图像 我写了一些尝试 取得了一定的成功 但速度很慢 最重要的是 尺寸图像的质量不可接受 我将 OpenGL 即我的显卡 缩放的相同图像与我的例程进行了比较 结果发现它们的质量相差很
  • Laravel 5 Auth:这些凭据与我们的记录不匹配

    我刚刚开始使用 Laravel 5 我来自 Laravel 4 环境 所以应该不会太难 我听说 L5 带有一个内置的身份验证系统 非常简洁 我已经设置了从数据库到视图的所有内容 注册过程正常运行 之后它会自动登录 但是当我注销并尝试重新登录
  • paramiko.Proxycommand 无法设置套接字

    我正在尝试通过 SSH 连接到通过另一台计算机建立隧道的计算机paramiko http www lag net paramiko 在Python中 但我遇到了一些奇怪的问题 我的配置文件在 ssh config看起来像这样 Host re
  • 将 PartCover 2.3 与 .NET 4.0 运行时结合使用?

    我已经成功地将 PartCover 2 3 与 VS 2008 配合使用在我的 64 位机器上 https stackoverflow com questions 256287 how do i run partcover in x64 w
  • Java 中对单个字符串进行排序

    java中有没有一种本地方法可以按字符串的内容对字符串进行排序 例如 String s edcba gt abcde toCharArray其次是Arrays sort接下来是 String 构造函数调用 import java util
  • 使用 PHP 在 MySQL 中使用多维数组和聚合函数?

    UPDATED 如何在 u2 旁边再显示 1 列 称为 CUMULATIVE TOTAL它应显示学生总数 应付总额 已付总额和根据辅导员的应付总额 考虑我有 c1 c2 c3 c4 作为辅导员 u1 u2 作为大学 假设 c1 在每所大学有
  • 追加到元组并覆盖以前的值

    我正在使用 arcpy 来获取形状文件的所有折线 SearchCursor返回一个光标 以便我可以迭代形状文件的所有功能 问题是我想保存游标返回的所有对象以供以后使用 import arcpy from arcpy import env e
  • 当我可以使用等效代码时,为什么不应该在文件名中使用空格? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我读过很多关于不要在用于网络的文件名中使用空格的内容 例如网址 我不明白使用 有什么问题 20 在我的代码中引用名称时替换它们 使用此替换似乎更
  • 如何在 iOS swift 中将 .opus 文件转换为 .mp3/.m4a/.aac?

    我要玩 opus使用 AVAudioPlayer 文件 因为 AVAudioPlayer 不支持 opus文件 我正在尝试找到一种转换方法 opus到任何其他音频格式 以便我可以使用AVA音频播放器 有人能帮我解决这个问题吗 谢谢 你可以使
  • Sublime Text 3 在按 Enter 键后仅在 javascript 中的括号中缩进一个额外的制表符

    现在 我正在 Sublime Text 中使用 ReactJS 进行一个项目 每当我在括号之间按下回车键时 它就会中断到另一行并添加一个额外的空格 这是一个例子 初始启动 光标在中间 然后我按回车键 当前结果 然后它会添加这个额外的缩进 导
  • 将垂直滚动更改为水平滚动

    以前似乎有人问过这个问题 但没有得到足够的答案 我完全不知道如何做到这一点 包括没有插件 当我主动垂直向下滚动时 我希望我的网站能够水平滚动 我的意思的一些例子 http hotdot pro en http hotdot pro en a
  • 为什么工作管理器中的工作人员仍处于 ENQUEUED 状态?

    我正在使用 NetworkType CONNECTED 约束创建 OneTimeWorkRequest 但即使设备已连接到互联网 请求仍处于 ENQUEUED 状态 Constraints constraints new Constrain
  • Linux fork() 和 wait()

    我有一个难闻的问题 我有这个代码 int main pid t child parent int status 0 int i printf parent d n getpid for i 1 i lt 5 i if child fork
  • 一个头文件中有多个类与每个类有一个头文件

    无论出于何种原因 我们公司都有一个编码指南 其中规定 Each class shall have it s own header and implementation file 所以如果我们写一个类叫MyString我们需要一个关联的MyS
  • 标记提交以将它们分组到 Git 中

    有没有一种方法 常见做法可以在 Git 中标记和分组提交 据我了解 de facto例如 实践是引用以散列开头的问题编号和以 at 符号开头的人员 例如Fixed 23 or userName 并且像 BitBucket 或 Github
  • 匹配 Python 正则表达式搜索的第一个实例

    我正在寻找使用正则表达式匹配两个方括号的第一个实例 目前 我正在做 regex re compile lt r regex search line 适用于像这样的行 string returns string 但是当我在单独的行上尝试时 s
  • 多个复选框的自定义数据注释

    好的 我有这些产品复选框 我想确保至少选择一种产品 为此 我的 ViewModel 包含 DisplayName Product Line MinChecked 1 public List
  • 在返回 Promise 的函数前面添加 async 有什么好处?

    在这里前置 async 有什么好处 async function asyncFunc return new Promise function resolve reject 唯一的好处是async作为一个视觉标记 该函数将 总是 返回一个承诺
  • 使用可变引用迭代递归结构并返回最后一个有效引用

    我正在尝试递归节点结构 修改它们 然后返回最后一个Node我能做到的 我使用循环中的可变引用解决了问题非词汇生命周期 RFC 中的示例 https github com rust lang rfcs blob master text 209
  • 从命令行批量导出组织模式文件

    假设我在某个目录中有几个org mode files foo1 org foo2 org等等 我想要一个脚本 也许是一个 makefile 我可以调用类似的东西 generate pdfs and foo1 pdf foo2 pdf等都会生