我正在使用 rdoc 记录 Ruby 项目,并且发现了 darkfish rdoc 格式化程序。我真的很喜欢它,但:call-seq:标签不再起作用了。相反,它将文字字符串放入:call-seq:文档中,然后将调用序列本身格式化为代码块。我不想只从代码中取出所有 :call-seq: 块,因为我的大部分文档需要引用块中给出的实例名称和参数名称:call-seq:。有没有其他人有这个问题?我应该做什么,有解决方法吗?我很确定:call-seq:标签在我使用默认格式化程序之前可以工作,但我不能确定,因为我不知道如何返回生成原始格式(调用 rdoc 时不带任何参数,除了文件生成现在,即使我删除了 doc 文件夹,darkfish 也会输出!)有谁知道如何解决这个问题?
我目前正在使用Sphinx来记录一个混合语言项目,该文档不仅包含 Python 中的交互式会话示例,还包含 bash 和 Windows 命令行以及 MATLAB 和其他解释器中的交互式会话示例。虽然 Pygments 很好地突出显示了所有内容,但到目前为止我在文档中包含的所有交互式会话都显示在 HTML 输出中,前面带有 Python 提示符>>>. $例如,在记录 bash 会话时,如何将该提示更改为?
编辑澄清:
如 Sphinx 手册中的“显示代码示例”下所述,Sphinx 文档的 ReST 源可以包含如下代码:
>>> # python code here
>>> print "foo"
foo
Run Code Online (Sandbox Code Playgroud)
然后,此代码将转换为标记,如Python 标准库文档中的argparse 文档中演示的那样,将 后面的代码显示>>>为突出显示的代码片段。虽然很明显,可以简单地将未突出显示的块与其他提示字符一起排版,但我想知道如何将提示与argparse 示例>>>中显示的交互式提示样式结合起来。
我正在努力弄清楚如何将 Python 类的特定成员的文档放置在 Sphinx 文档的特定部分中,理想情况下,同时在另一个部分中自动记录其余部分。
我有一个Python课程
class MyClass(object):
def funky(self, arg):
"""Some docs."""
...
Run Code Online (Sandbox Code Playgroud)
定义my/module.py其中按预期工作,我可以使用以下方式记录而不会出现问题
***************************
MyModule - :mod:`my.module`
***************************
.. automodule:: my.module
.. autoclass:: MyClass
:members:
:undoc-members:
:show-inheritance:
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试更好地控制文档的组织时,我无法让事情正常进行。具体来说,我希望将一些成员记录在明确的部分中(此处仅显示一个成员,但会有多个),其余成员自动记录为一组。
但是当我尝试这个时,例如
***************************
MyModule - :mod:`my.module`
***************************
To document
===========
Things that are not yet documented.
.. automodule:: my.module
.. autoclass:: MyClass
:members:
:undoc-members:
:show-inheritance:
:exclude-members: funky
Funky things
------------
Some funky things.
.. automethod:: funky
Run Code Online (Sandbox Code Playgroud)
我明白了
警告:不知道要导入哪个模块来自动记录 u'funky' (尝试在文档中放置“module”或“currentmodule”指令,或者给出明确的模块名称)
但没有变化
.. currentmodule:: my.module
.. class:: MyClass
.. automethod:: …Run Code Online (Sandbox Code Playgroud) 当尝试创建我的 Rails 控制器和使用的参数的文档时,我遇到了困难,因为yard似乎期望这些参数作为方法参数存在。
# Renders a list of items
# @param params [Hash] the search parameters
# @option params [String] 'info' Only return items with this specific info
# @option params [Integer] 'limit' Only return <limit> items
def index
# ... do something smart here
end
Run Code Online (Sandbox Code Playgroud)
因此,对于此文档场将发出警告并且不会创建文档:
[warn]: @param tag has unknown parameter name: params
in file `app/controllers/items_controller.rb' near line 8
Run Code Online (Sandbox Code Playgroud)
有没有办法使用yard来记录这些类型的项目,或者我需要手动执行此操作?
我正在使用的项目没有 Stackage 上的文档(它们已经过时了)。这是 0.3 版的原始版本
https://hackage.haskell.org/package/reflex-dom-0.3/docs/Reflex-Dom-Widget-Basic.html
有人告诉我可以用 haddock 生成文档。我的电脑上有源代码(使用git clone)版本0.4
黑线鳕网页太先进了。
对于初学者来说,一旦进入我的目录,如何生成文档?
感谢我取得的答案之一,取得了进展,但这里有一条错误消息:
src/Reflex/Dom/Xhr.hs:154:0:
error: missing binary operator before token "("
#if MIN_VERSION_aeson(1,0,0)
^
Run Code Online (Sandbox Code Playgroud) 我正在使用 Spring Rest Docs 来记录我的 REST API。我在集成测试中使用mockMVC,并且想记录以下 JSON 响应:
GET /api/v1/customers/3b658b39-4264-4995-99d8-90a1672a75a7
{
"id": "3b658b39-4264-4995-99d8-90a1672a75a7",
"name": "Foo",
"nickname": "Bar",
"phones": [
{
"id": "6ca3a963-bacb-4770-a470-5902b4a17b77",
"alias": "Personal Phone 1",
"countryCode": "55",
"areaCode": "34",
"number": "99999-9999"
},
{
"id": "f3a3726b-b5f8-4652-a044-7bf3d95a37de",
"alias": "Personal Phone 2",
"countryCode": "55",
"areaCode": "34",
"number": "88888-8888"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我如何记录上面的电话列表?您可以使用以下代码片段,该代码片段使用 Spring REST 文档来记录此 API 操作:
this.mockMvc.perform(
get("/api/v1/customers/3b658b39-4264-4995-99d8-90a1672a75a7")
.accept(APPLICATION_JSON))
.andExpect(status().isOk())
.andDo(document("customer").withResponseFields(
fieldWithPath("id").description("Unique identifier"),
fieldWithPath("name").description("Customer full name"),
fieldWithPath("nickname").description("How the customer wants to be called")));
Run Code Online (Sandbox Code Playgroud) 我想为我的 ReDoc 添加一些额外的选项。对于当前的实现,我使用的是从 Swagger 生成的 json 文件,并将其添加到 html 页面中。这是如何完成的示例:
<body>
<redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
</body>
Run Code Online (Sandbox Code Playgroud)
我将此用作参考文档:https : //github.com/Rebilly/ReDoc
如何在标签中添加选项对象而不使用 ReDoc 对象?以及如何使用供应商扩展名,例如 x-logo?在文档中,这是通过 json 文件设置的,但我的 json 文件是从 Swagger 自动生成的。
我想在我的函数注释中包含一些示例代码,如下所示:
// Some example for using `foo`:
//
// ```
// f := Foo(...)
// g := Goo(f)
// ```
func Foo() {
...
}
Run Code Online (Sandbox Code Playgroud)
但是代码块在vscode中没有正确显示。什么是正确的方法呢?
当我阅读源代码时,我经常看到这样的东西(来自TextField):
/// {@macro flutter.widgets.editableText.keyboardType}
final TextInputType keyboardType;
Run Code Online (Sandbox Code Playgroud)
这是什么@macro意思?
我找到了答案,所以我将其作为自我回答问答发布在下面。
尝试研究 Kotlin 中的集合转换,我对AssociateWith转换扩展函数的文档有点困惑。
它说:
基本关联函数 AssociateWith() 创建一个 Map,其中原始集合的元素是键,并且通过给定的转换函数从它们生成值。如果两个元素相等,则映射中仅保留最后一个元素。
然而,当我使用包含重复元素的列表(即它们相等)测试此函数时,最后一个元素会从 map 中排除,只有第一个元素保留下来,这与文档中的内容相反。
fun main() {
val numbers = listOf("one", "two", "three", "four", "five", "four")
val mapOfNumbers = numbers.associateWith { it.length }
println(mapOfNumbers) //the first "four" element is the one that remains in the map
}
Run Code Online (Sandbox Code Playgroud)
在 Kotlin Playground 中运行它会打印以下内容
{一=3,二=3,三=5,四=4,五=4}
文档中的措辞是否正确,或者我的思路是否遗漏了一些内容?
documentation ×10
python ×2
rdoc ×2
ruby ×2
asp.net-mvc ×1
associate ×1
autodoc ×1
collections ×1
dart ×1
flutter ×1
go ×1
haddock ×1
haskell ×1
java ×1
kotlin ×1
python-2.7 ×1
spring ×1
swagger ×1
yard ×1