如何在模板引擎中引用 HTML meta 标签?

How to reference HTML meta tags in a template engine?

我正在使用 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.<attribute>的方式来引用我在markdown文件中设置的变量(post.title,post.author)

但是,我想用 HTML 而不是 markdown 来写我的帖子。我想知道我怎么还能

  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.html 流动模板中引用这些元标记名称和内容对。

如果您对此有任何帮助,我将不胜感激。谢谢!

默认情况下,您可以将 HTML 个文件用作 Jekyll 中的 post 或 collection 个项目:

  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 %}