【问题标题】:Include handlebars partials when they exist based on context in Ghost根据 Ghost 中的上下文包含车把部分
【发布时间】:2020-03-10 21:37:50
【问题描述】:

我有一个customized theme for Ghost。我偶尔会邀请一位客座作者。我希望能够为每位作者添加任意数量的指向作者页面的自定义链接。

我知道authors-{{slug}}.hbs 约定可以用来为每个作者创建一个完整的自定义页面,但维护起来是一场噩梦。

相反,我试图在存在部分时尝试包含它。根据车把文档,{{#> partial }} 应该可以工作。但是,当我知道部分的确切名称时,这很有效。

我需要根据上下文动态命名部分的名称。在我的情况下,作者的幽灵蛞蝓。 According to the handlebar docs I need to pass in a function...

我尝试了几种方法,但gscan 不喜欢所有方法:

 {{#> (concat "partials/socials-" slug) }}
 {{#> (concat "partials/socials-" (lookup . 'slug')) }}
 {{#> concat "partials/socials-" (lookup . 'slug') }}
 {{#> "partials/socials-{{slug}}" }}
 {{#> partials/socials-{{slug}} }}

都给我:

Checking theme compatibility...

Your theme has 1 error!
----

Errors
------
Important to fix, functionality may be degraded.

- Error: Templates must contain valid Handlebars
Files: author.hbs

【问题讨论】:

    标签: handlebars.js ghost-blog


    【解决方案1】:

    您以前使用过内容块吗?它们是一种重用模板代码的方法,但仍然允许自定义,它是 Casper 中使用的一种方法,您从中分叉出来。在page.hbs 中查看这些行:https://github.com/jessehouwing/jessehouwingnl-Casper/blob/customized/page.hbs#L58-L65

    以及default.hbs中显示的这一行:https://github.com/jessehouwing/jessehouwingnl-Casper/blob/customized/default.hbs#L127

    您可以创建一个继承现有author.hbs 模板的自定义作者模板。对于这个例子,我将通过创建author-ghost.hbs 为作者“ghost”创建一个自定义作者页面:

    {{!< author}}
    
    {{#contentFor "links"}}
      <ul>
        <li><a href="https://example.com">Example link</a></li>
        <li><a href="https://example.com">Example link</a></li>
        <li><a href="https://example.com">Example link</a></li>
      </ul>
    {{/contentFor}}
    

    上面的代码继承了author.hbs,并创建了一个名为links的块。然后在原始的author.hbs 模板中,我们可以将块引用添加到我们希望块内容出现的位置:

    {{{block "links"}}}
    

    这不仅会在自定义作者模板中插入代码,而且如果作者没有自定义作者模板,它也会优雅地回退到不输出。

    希望这会有所帮助!

    【讨论】:

    【解决方案2】:

    我遇到了同样的问题,在这里我是如何解决的。只需使用此语法中的查找即可。

      {{#foreach navigation}}
        <li class="nav-{{slug}}">
          <a href="{{url}}" class="social-link" target="_blank" rel="noopener">
           {{>(lookup . 'slug')}}
         </a>
        </li>
      {{/foreach}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2017-05-20
      • 2020-10-30
      相关资源
      最近更新 更多