1

所以它看起来很简单(但我不能让它工作)..

我想在我的 Gruntfile 中的 Assemble 中的选项对象中设置一个自定义属性,并想从我在 YML 中的一个局部上下文中访问它。

所以说我的项目中有一个文件夹,我的所有文档都在 .md-files.. (app/src/documentation)

在选项对象中,我想做类似的事情:

assemble: {
      options: {
        jsDoc: '<%= yeoman.app %>/src/documentation',
      },

然后在我的一个部分中,我想做以下事情:

---
title: Headings
status: In progress
tabs:
  - tab: html
  - tab: css
  - tab: js
  - tab: description
  - tab: links
jsDoc: filename.md
---
<!-- Show markdown documentation -->
{{md jsDoc}}

现在我收到一条错误消息:

Warning: Cannot call method 'indexOf' of undefined Use --force to continue.

任何人都可以就如何使其发挥作用提供任何提示/想法吗?

额外信息:为了让事情更复杂一点,我实际上想在另一个部分(使用我的自定义帮助程序)中使用 {{md jsDoc}},我可以访问我的其他部分上下文。

我已经做了几个要点,展示了我现在拥有的代码。

它位于此处:

https://gist.github.com/dgsunesen

  • “sgComponent helper” - 展示我如何使用我的助手
  • “Gruntfile” - 显示我的自定义助手的当前选项。
  • “标题” - 需要访问 jsDoc 选项并在 sgComponent.hbs 中呈现的部分
  • “sgComponent.js” - 我的自定义助手,它接受基本部分和要在其中呈现的部分
  • sgComponent.hbs - 我的基本部分,我的标题部分在其中呈现。

提前致谢!担

4

1 回答 1

0

如果你只是在它自己的部分中使用部分物质,那么它很简单......

---
title: Headings
status: In progress
tabs:
  - tab: html
  - tab: css
  - tab: js
  - tab: description
  - tab: links
jsDoc: "<%= jsDoc %>/filename.md"
---
<!-- Show markdown documentation -->
{{md headings.jsDoc}}

您可以使用 lodash 模板将主要jsDoc属性与部分属性结合起来。然后根据部分的名称进行引用{{headings.jsDoc}}

但是从查看您的帮助代码来看,您似乎希望jsDoc将其设置在另一个部分(动态添加)中,然后在sgComponent文件中使用。为此,我认为您需要将主要选项中的变量与jsDoc部分中的变量实际组合,而不是执行流程内容。如果您尝试使用 lodash 处理内容,它将进入循环,因为您如何在帮助程序中获取最重要的内容。

此外,请确保正确传递参数,因为该indexof错误可能来自globor yfm

希望这会有所帮助。

于 2014-07-21T15:34:57.267 回答