我寻找了 gem 附带的模板(我只能找到默认的 HTML 输出器),我在帮助和在线文档中搜索了一个将重定向到 STDOUT 的开关。我找不到任何关于如何解决这个问题的信息。
有没有一种简单的方法可以做到这一点(也许是一个 shell 命令?)还是我已经浏览了源代码?
创建以下文件test.rb
:
# This class is cool
class Test
# This method is also cool
def foo
end
end
您必须先编译 yard 文档,然后才能输出它。但是您不想要该doc
文件夹对吗?所以让我们省略它。
yardoc --no-output test.rb
这只会更新.yardoc
隐藏文件夹内的文档。doc
不会生成文件夹。
现在您可以通过以下几种方式查看特定对象的文档:
> yard display "Test"
# Outputs:
------------------------------------------ Class: Foo < Object
This class is cool
--------------------------------------------------------------
> yard display "Test#foo"
# Outputs:
------------------------------------------ Method: #meth (Foo)
(Defined in: foo.rb)
foo.meth -> Object
--------------------------------------------------------------
This method is cool
这是你得到的输出。yard display
您可以使用该命令获取任何类/方法的 yard 文档。
但是,嘿,输出很糟糕!让我们为它创建一个模板。templates
使用一些文件创建以下文件夹:
+ your app
+ templates
+ default
+ class
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
+ method
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
+ method_details
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
所有setup.rb
文件必须具有相同的内容,例如def init, super, sections T('docstring'), end
. 这将使text
输出仅显示文档,没有任何花哨的标题和内容。
现在只需运行相同的yard display
命令,但让我们使用我们的自定义模板:
> yard display Foo --template-path ./templates
This class is cool
> yard display "Foo#meth" --template-path ./templates
This method is cool
而已。您可能会发现yard doc
输出中可能有太多的前导/尾随新行,您可以使用其他一些标准的 linuxhead/tail
命令来解决这个问题。