帖子在 jekyll(多站点)博客上显示不正确——只有 post 代码

Posts not showing correctly on jekyll (multiple site) blog -- only post code

我有一个用 Jekyll 构建的个人网站,并托管在 Github 个页面上。我正在尝试在同一域中添加子站点博客。为此,我设置了一个 blog.md 页面并遵循了该网站的说明:https://www.garron.me/en/blog/multi-blog-site-jekyll.html。这个想法是,如果我访问 http://<mydomain>.com 它将转到我的个人网站,如果我转到 http://<mydomain>.com/blog 它将转到另一个同样使用 jekyll 设置的站点。

我的文件结构与上面 link 中建议的不同。是这样的:

/personalwebsite
   config.yml
   index.md
   (other personal website pages).md
   blog.md
   /_site
   /_layouts
   /_posts    

我的 index.md 页面是完全自定义的,我为该网站编写了自己的布局。这是一个静态站点,_posts 中的所有内容都被它忽略。我的 blog.md 页面也在根文件夹中,并且根据 _config.yml 进行更改。我正在尝试使用 Github jekyll 主题。主题加载,但不是显示 posts,而是显示代码:

这就是 blog.md 的样子:

---
layout: blog
title: the blog
permalink: blog
---

{% raw %}
{% for post in site.posts %}
   {% if post.categories contains 'blog' %}
   <div class="post">
       <h3 class="title"><a href="{{ post.url }}">{{ post.title }}</a></h3>
    <p class="meta">Date: {{ post.date }}</p>
    <div class="entry">
        {{ post.content | strip_html | truncatewords: 100 }}
    </div>
</div>
{% endif %}
{% endfor %}
{% endraw %}

这就是 post 的样子:

---
layout: post
title: New test
category: blog
---

This is a test post

如果我删除 blog.md 中的 {% raw %} 部分,post 将显示如下:

我已经检查过我的 post 是否在正确的位置,category 参数已填写,日期和 post 文件名的格式是否正确。我究竟做错了什么?除了 Github 元数据警告之外,Jekyll 不显示任何错误消息:

GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data

blog.md 是降价文件。

在 markdown 中,四个 space 缩进表示代码或预格式化文本。 Kramdown 会将此代码包装在 <pre> 标记中,从而产生您在网站上实际看到的内容。

如果您删除缩进(或保持在 4 space 秒以内),您的问题就解决了。

{% for post in site.posts %}
{% if post.categories contains 'blog' %}
<div class="post">
 <h3 class="title"><a href="{{ post.url }}">{{ post.title }}</a></h3>
 <p class="meta">Date: {{ post.date }}</p>
 <div class="entry">
  {{ post.content | strip_html | truncatewords: 100 }}
 </div>
</div>
{% endif %}
{% endfor %}