帖子在 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 %}
我有一个用 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 %}