首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组织模式代码块的结果中的内部链接和目标,例如与其他代码块的结果链接。

组织模式代码块的结果中的内部链接和目标,例如与其他代码块的结果链接。
EN

Stack Overflow用户
提问于 2017-09-21 22:21:55
回答 1查看 908关注 0票数 1

我使用组织模式编写软件文档,其中函数、变量等的API文档自动从代码的文档字符串(在公共Lisp中)中提取。然后将这些文档导出到HTML (我碰巧通过reStructuredText与牛rst狮身人面像一起完成了这一工作)。它的工作原理很大程度上类似于直接与Python一起使用Sphinx,但也适用于组织模式的所有特性,比如可执行代码块。

为了简单地展示这个原理,我在下面的Emacs中演示了一种简化的方法。我有一个代码块,它提取函数的文档(使用Common的格式并使用:结果输出raw,我避免了结果中的双引号,但为了简单起见,我将它们放在下面的简短演示中)。

代码语言:javascript
复制
#+name: function-doc
#+begin_src emacs-lisp :results output raw :exports results :var name='list
  (print (documentation name))
#+end_src

然后我用我想要记录的函数调用那个代码块,在导出过程中,这个调用被结果文档所取代。

代码语言:javascript
复制
#+CALL function-doc(name:'map)

自动插入导出文件中的映射的结果文档恰好如下所示。

代码语言:javascript
复制
"Map a FUNCTION across one or more SEQUENCEs, returning a sequence.
TYPE is the sequence type to return.

(fn TYPE FUNCTION SEQUENCE...)"

我可以在我的文档字符串中使用组织模式格式,并按预期导出这种格式。

现在来了我的问题。我想使用链接到API条目(例如函数的文档),在其他函数、变量等的文档字符串中,以及在主文本中(即不自动插入的文本)。用函数的名称自动插入目标是很容易的,我只需要相应地扩展我的代码块函数-doc。然而,在出口过程中找不到这些目标。即使我的函数文档中的目标与上面的代码块函数-doc一起自动添加,当我插入到该函数的org模式链接[ documentation ]时,org模式也会以以下错误中断导出。

代码语言:javascript
复制
user-error: Unable to resolve link: "MY-FUNCTION" 

有什么办法可以绕过这个限制吗?在导出过程中,组织模式代码块的结果中的目标是否可以被组织模式“看到”?

我已经尝试过各种解决办法,但到目前为止都没有成功。例如,我尝试使用org模式的宏而不是代码块,但是要有多行宏结果是非常棘手的(在定义带有换行符的org模式宏上报告的技巧对我来说还不够)。我正在寻找一种方法来将关于未解决的链接的错误消息转换为警告,但我发现的所有选项是标记断开的链接,如下所示。有什么方法可以输出或者忽略(表面上的)断裂的链接?

代码语言:javascript
复制
#+OPTIONS: broken-links:mark 

我还考虑首先将我的org文件自动导出到一个已经插入了所有代码块结果的组织中,这样org模式就可以看到链接的所有目标,但是很明显,如果链接(表面上看上去)中断,将一个org文件导出到org模式也是不可能的。

有什么帮助吗?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-21 23:58:05

当只对狮身人面像使用reStructuredText导出时,我可以使用内联rST链接,如下所示。这里的另一个好处是rST链接不区分大小写,不像组织模式链接。

代码语言:javascript
复制
See also @@rst:`my-function`_@@.

如果我想要导出成多种格式,那么我可以定义一个组织模式宏,它生成上面的rST链接,以及其他导出格式的链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46354012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档