我有一个用jekyll构建的个人网站,并托管在Github页面上。我正在尝试在同一域中添加子站点博客。为此,我建立了一个blog.md
页面,并按照以下网站的指示进行操作:https://www.garron.me/en/blog/multi-blog-site-jekyll.html。这个想法是,如果我访问http://<mydomain>.com
,它将访问我的个人网站;如果访问http://<mydomain>.com/blog
,它将访问另一个也由jekyll设置的站点。
我的文件结构与上面链接中的建议不同。就像这样:
/personalwebsite
config.yml
index.md
(other personal website pages).md
blog.md
/_site
/_layouts
/_posts
我的index.md
页面是完全自定义的,我为该网站编写了自己的布局。这是一个静态网站,_posts
中的所有内容均会被其忽略。我的blog.md
页面也在根文件夹中,并且根据_config.yml
进行更改。我正在尝试使用Github jekyll主题。主题已加载,但未显示帖子,而是显示了代码:
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 %}
这是帖子的样子:
---
layout: post
title: New test
category: blog
---
This is a test post
如果我删除{% raw %}
中的blog.md
部分,则帖子显示如下:
我已经检查过我的帖子在正确的位置,category
参数已填写,日期和帖子文件名的格式正确。我究竟做错了什么?除Github元数据警告外,Jekyll不显示任何错误消息:
GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data
答案 0 :(得分:3)
blog.md 是降价文件。
在markdown中,四个空格的缩进表示代码或预格式化的文本。
Kramdown会将这段代码包装在<pre>
标记中,从而产生您实际在网站上看到的结果。
如果您删除缩进(或将其保留在4个空格以下),则您的问题已解决。
{% 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 %}