所以看起来很简单(但我无法让它工作)..
我想在我的 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 - 我的基本部分,其中呈现我的标题部分。
提前致谢! 丹
最佳答案
如果您仅使用其自身部分内的部分物质,那么这非常简单......
---
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
错误可能来自 glob
或 yfm
。
希望这对一些人有帮助。
关于node.js - 在部分上下文中从 Assemble 的选项对象访问自定义基本 url 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24861075/