【问题标题】:Getting "pages" from different collection with Assemble使用 Assemble 从不同的集合中获取“页面”
【发布时间】:2013-08-02 10:54:33
【问题描述】:

假设我有一个来自集合的页面,我想在其中列出来自不同页面集合的每个 yaml 标记。 如果它们在同一个集合中,则可以解决问题:

<section class="see-also">
<header>Related Contents:</header>
   {{#each tags}}
   <p>In <span class="tag">{{tag}}</span>:</p>
      {{#each pages}}
        <li><a href="{{relative ../../../page.dest dest}}">{{data.title}}</a></li>
      {{/each}}
   {{/each}}
 </section>

但是由于我试图从另一个页面上的页面访问这个集合,这怎么能实现呢?

【问题讨论】:

    标签: handlebars.js gruntjs template-engine assemble


    【解决方案1】:

    我建议为此创建一个custom helper。由于没有简单的方法可以编写一个可以按照您所描述的方式为您的特定设置工作的帮助程序,因此这里有一个很好的示例,说明如何使用自定义帮助程序来解决类似问题:https://github.com/assemble/assemble/issues/254

    【讨论】:

      【解决方案2】:

      如果我有这个用例,我可能会将“页面”yaml 放在单独的 yml 文件中,而不是嵌入到页面中。

      如果在 gruntfile 中包含数据文件的路径:

      assemble: {
        options: {
          data: ['<%= site.data %>', 'data/*.yml']
        }
      }
      

      您的文件结构包括:

      ── data
      │   └── page1.yml
      │   └── page2.yml
      

      您可以从任何地方访问{{#each page1.pages}}。

      或者您可以拥有一个 shared.yml 文件,其中包含所引用的页面集合等信息,其余数据保留在每个页面上。

      更多资源:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-31
        • 2011-10-07
        • 2018-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        • 1970-01-01
        相关资源
        最近更新 更多