我习惯于在 C++ 和 Python 项目中使用Sphinx。我刚刚在Clojure中启动了一个项目,我想重新使用我的 Sphinx/reStructuredText 技能来记录我的 Clojure 代码。由于 Clojure 没有内置域,因此我开始编写一个。
具有讽刺意味的是,Sphinx 的文档对编写扩展没有任何帮助。所以,从 Python 和 Javascript 的内置模式开始,我已经有了一些基本的元素。我可以使用以下指令为函数编写文档:
.. clj:ns:: clojure.core
.. clj:fn:: (filter f coll)
:param f: predicate
:param coll: collection
Built-in!
但是,HTML 输出会生成 C/Python 样式的签名。前面的示例生成如下内容:
filter(f, coll)
Parameters: * f - predicate
* coll - collection
Built-in!
我宁愿以 lisp-ish 形式获得签名:
(filter f coll)
Parameters: * f - predicate
* coll - collection
Built-in!
生成签名的代码似乎一直到docutils.addnodes
模块。如何让 Sphinx 使用 Sphinx 语法生成 HTML?可以用模板来完成,还是我需要破解整个构建器系统才能做到这一点?