【问题标题】:Conditional HTML (depending on yaml front matter)条件 HTML(取决于 yaml 前端)
【发布时间】:2012-11-16 19:29:15
【问题描述】:

我是一个自认的网络笨蛋,所以放轻松。使用 Jekyll 我有一个网站,内容通过液体过滤器泵送以生成目录。 default.html 文件包含一些类似这样的内容。 . .

<div id='content'>
    {{ content | toc }}
    {{ content }}
</div>

如何使用 yaml 前端问题(使用 do_toc: true 之类的东西)使目录仅出现在指定页面上?

【问题讨论】:

    标签: html yaml jekyll liquid


    【解决方案1】:

    您可能希望为需要目录的页面和不需要目录的页面定义不同的布局。听起来您正在使用default.html 作为所有内容的模板。相反,请复制 default.html 的其他名称,例如toc.html,然后编辑该文件(呃,这确实意味着您必须在 HTML 中进行编辑)以在您想要的位置提供 div 块。

    然后在需要toc的页面中,在yaml header中,使用

    --- 
    layout: toc.html
    ---
    

    而不是

    --- 
    layout: default.html
    ---
    

    注意:无需复制default.html。只需在您的_layouts 目录中添加一个名为toc.html 的文件,其内容如下:

    ---
    layout: default.html
    ---
    <div id='content'>
     {{ content | toc }}
     {{ content }}
    </div>
    

    然后为您的页面编写 yaml 标头,如图所示。完全没有 HTML 的重复。

    【讨论】:

    • 这是一种方法,但它意味着大量的 HTML 代码重复。它不是很干燥。
    • 我不关注。它不涉及任何 HTML 重复。您有两种不同的布局:有目录的页面和没有目录的页面,因此您指定了两种不同的布局。我已经修改了我的答案,以显示一种更优雅的方式来指定您的第二个布局。
    • 哎呀+1。我确实说过我是一个网络笨蛋。我的坏
    • 哎呀+1/接受。我确实说过我是一个网络笨蛋....感谢您的简化。我的错。我想我必须复制/粘贴整个文件并进行 1 个微小的修改。
    • 哦,恭喜你突破 1K :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多