【问题标题】:How to reference HTML meta tags in a template engine?如何在模板引擎中引用 HTML 元标记?
【发布时间】:2021-10-13 18:48:37
【问题描述】:

我正在使用 Jekyll 为我的博客站点构建一个静态站点。 Jekyll 使用液体模板引擎。

要引用_posts目录下的帖子(博文),index.html中的代码是这样的

<ul class="posts">

    {% for post in site.posts %}
    <!-- do stuff here -->

    <div class="container">
       <h4 class="card-title"><b>{{ post.title }}</b></h4>
       <p class="card-author">{{ post.author }}</p>
    </div>
    {% endif %}

</ul>

_posts 中的示例降价文件 (.md):

---
layout: default
title:  "Another Blog Post!"
date:   2021-08-09 00:00:00
cover_image: "https://raw.githubusercontent.com/sharmaabhishekk/sharmaabhishekk.github.io/master/images/cover.png"
categories: main
tag: "advanced"
author: "Abhishek Sharma"
---
Hi this is a blog post!

Jekyll offers powerful support for code snippets:

{% highlight ruby %}
def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
{% endhighlight %}

对于我的_posts 目录中的每个markdown 文件,它会对其进行迭代并适当地显示它。更重要的是,我可以使用post.&lt;attribute&gt;的方式来引用我在markdown文件中设置的变量(post.title,post.author)。

但是,我想在HTML 中写我的帖子,而不是降价。我想知道我怎么还能

  1. 如何遍历我的_posts 目录中的.html 文件?
  2. 如何在我的 html 文件中定义这些值?
  3. 模板引擎如何解析和读取这些变量?

对于 2.),我决定使用meta 标签来写入这些值。我不确定这是否是最佳做法,但这就是我正在做的事情。

<!DOCTYPE html>
<html lang="en">
  
  <head>
  <meta charset="UTF-8">
  <title>Site Title</title>
  <meta name="author" content="Abhishek Sharma">
  <meta name="title" content="Blog Post 1">
  <meta name="date" content="10-08-2021">

</head>

但是我不确定如何在我的index.htmlliquid 模板中引用这些元标记名称和内容对。

如果能提供任何帮助,我将不胜感激。谢谢!

【问题讨论】:

    标签: html markdown jekyll liquid static-site


    【解决方案1】:

    你可以在 Jekyll 中默认使用 HTML 文件作为帖子或收藏项:

    1. _posts/2020-01-01-example.md 重命名为_posts/2020-01-01-example.html
    2. 将内容改成 HTML(保持前文不变)

    您将以相同的方式(使用site.posts)对它们进行迭代,并且您将能够像以前一样访问前面的内容。

    您的示例文件如下所示(DOCTYPE 和您引用的其他标签在您的默认布局中):

    ---
    layout: default
    title:  "Another Blog Post!"
    date:   2021-08-09 00:00:00
    cover_image: "https://raw.githubusercontent.com/sharmaabhishekk/sharmaabhishekk.github.io/master/images/cover.png"
    categories: main
    tag: "advanced"
    author: "Abhishek Sharma"
    ---
    <p>Hi this is a blog post!</p>
    
    <p>Jekyll offers powerful support for code snippets:</p>
    
    {% highlight ruby %}
    def print_hi(name)
      puts "Hi, #{name}"
    end
    print_hi('Tom')
    #=> prints 'Hi, Tom' to STDOUT.
    {% endhighlight %}
    

    【讨论】:

    • 您的解决方案非常有帮助,谢谢 :) 我已经接受了答案,干杯!
    猜你喜欢
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多