【问题标题】:Making custom YARD markdown制作自定义 YARD 降价
【发布时间】:2013-10-11 02:22:07
【问题描述】:

我想使用YARDoc 记录以下方法。

# Here is my method
# @arg woop [Woop] *dangerous* this parameter is output to the screen
def shoop(woop)
  puts woop
end

这会生成 HTML,其中dangerous 以粗体显示。因为我必须解析这个输出,所以我想要一个自定义 HTML 标记。换句话说,我想让下面的代码注释被YARDoc解析时,dangerous这个词被<div class="custom"></div>标签包围,而不是<b><\b>标签,这样更容易解析与Nokogiri。并不是说目前无法使用 Nokogiri 进行解析,只是有点尴尬并且容易受到 YARD 代码更改的影响。

# Here is my method
# @arg woop [Woop] **dangerous** this parameter is output to the screen
def shoop(woop)
  puts woop
end

YARD 中是否有任何功能可以让我完成此操作?我查看了创建自定义模板,但这似乎更多地涉及解析代码。然后我检查了创建自定义降价模板,但我没有看到这可以或应该如何完成。我开始觉得我在找错树了,我会很感激 Google 关键字给我的方式。

为什么我首先要解析 HTML:
正如我在前面的问题中所描述的,我试图定义一个接口而不必复制代码。在此示例中,我希望服务器“调用”危险的方法与不危险的方法不同。

【问题讨论】:

  • 你能解释一下为什么你需要解析输出吗?也许有一些方法可以创建包含您需要的数据的自定义输出格式,这样您就可以避免解析 HTML。
  • 我试过了,但如果不把这个问题变成代码审查,恐怕我不知道如何提供更多细节。

标签: ruby yard


【解决方案1】:

Markdown 允许您包含内联 html。所以不妨试试:

# Here is my method
# @arg woop [Woop] <div class="custom">dangerous</div> this ....
def shoop...
...

如果可行,您可以覆盖 doc/css/common.css 文件中的默认 css。

【讨论】:

  • 我不知道 css 文件,所以谢谢你,但我仍然宁愿没有内联 HTML,因为这会使我的文档更难阅读。
  • 那么另一种方法可能是在 css 文件中重新定义 .bold.strong 属性。这样您就可以使用普通的降价,但 *dangerous***dangerous** 会按照您希望的方式格式化?
  • 我真正关心的并不是标签本身的格式,因为我将使用 Nokogiri 解析此输出以用于其他目的。我现在已经在我的问题中澄清了这一点。
  • 嗯,好的。查看this SO answer,它描述了如何从 html 的角度处理自定义标签。我知道您说过您不喜欢内联 html,但这可能是实现目标的一种方式。你也许可以做类似&lt;yourtag&gt;dangerous&lt;/yourtag&gt; 的事情并为它定义一些css。绝对让我知道这是否有效......
  • 我现在看到自定义标签的想法是一个糟糕的选择。我现在已经编辑了我的问题,只提到了带有 div 的自定义类标签,因为它提供了我正在寻找的相同功能,而无需 Javascript 解决方法。
猜你喜欢
  • 1970-01-01
  • 2016-01-26
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 2016-04-16
相关资源
最近更新 更多