在org-9.6.15中,我尝试通过设置org-hide-emphasis-markers
改变markup的显示状态,发现已经折叠过的markup不会展开。需要重新渲染已经被折叠的的markup才能生效(也就是手动去更改所有markup元素的text-property)。org在org-do-emphasize
中使用这个变量,但是我不知道什么时候会调用org-do-emphasize
,它的调用似乎只是局部的。
如何做一个hideshow函数,根据org-hide-emphasis-markers
的状态去控制整个buffer里(已经渲染过)的markup显示状态?
更详细一点,我想知道的是,有哪些工具是可以org可以提供给用户的,不用完全靠自己去解析org文档。如果自己解析可能会出很多问题。
steve
3
关于这点我有发言权,可以到 worg 去查询:
Org-mode for developers
有 2 个常用的 API:
-
Org Element API
这个 API 是关于 org-mode 各类元素提取的
-
Using the Mapping API (The Org Manual) 这个 API 是用于快速定位元素位置的
org 是内置自己的解析引擎的,不需要用户自己解析,但 org-element-api 还不够完整,新任项目主持人希望能够将解析引擎完全迁移到 org-element-api。
2 个赞
如果你手动更改了 org-hide-emphasis-markers
,希望立马看到效果的话,可以手动运行一下 (org-restart-font-lock)
,就可以了。
如果你想在函数里实现,只需要在更改 org-hide-emphasis-markers
后加一条 (org-restart-font-lock)
就行呀。
2 个赞