0

我有一个使用车把和金属匠的静态网站。我可以从我的 metalsmith 配置文件中创建一个collection调用,但插件会忽略降价文件,因此始终为空carrierspatterncarriers

我的 JS 文件有 metalsmith 配置,如下所示

      ...//other metalsmith plugins
      .use(
        collections({
          carriers: { pattern: '**/*.md' }
        })
      )
      .use(markdown())
      .use(
        layouts({
          engine: 'handlebars',
          directory: './src/layouts',
          partials: './src/partials'
        })
      )
      ...//other metalsmith plugins

我的carriers.hbs包含以下内容

    <section id="carriers" class="integrations">
      <div class="cards">
        {{log collections}}
        {{#each collections.carriers }}
          <h5>{{this.title}}</h5>
        {{/each}}
      </div>
    </section>

{{log collections}}Handlebars 内置帮助程序记录了这一点,{ carriers: [ metadata: undefined ] }生成的 html 文件如下所示

<main>
  <section id="carriers" class="integrations">
    <div class="cards">

    </div>
  </section>
</main>

那么我在这里错过了什么?

4

1 回答 1

1

更新
所以我对 Metalsmith 有了更多的经验,现在知道了为什么 markdown 文件不可用。这是因为Metalsmith.source('my-directory')不包含降价文件并且它们位于另一个文件夹中。


可悲的是,我没有解决方案,因为我的项目太大而无法根据我在 Metalsmith 的一点经验来追踪。但是,我认为引起问题并要注意的要点是

  1. 国际化插件结构对于记住它如何与其他插件一起使用很重要
  2. 构建过程中插件的顺序(例如markdown()必须在之前layouts())否则您可能会收到错误或意外结果
  3. collections插件的模式
于 2018-11-15T06:34:15.693 回答