【问题标题】:Jekyll is not reading site.postsJekyll 没有阅读 site.posts
【发布时间】:2017-07-20 20:56:17
【问题描述】:

最近,我决定在 Github Pages 上开始我的博客。我 fork Jekyll-Now 并将代码拉入我的本地环境。

现在我正在运行 jekyll serve,但它没有读取 _posts 文件夹中的帖子!。

似乎无法读取index.html 中的site.posts 变量。如果我输出变量或将其检查为:{{ site.posts | inspect }} 那么它是空的。

帖子名称的格式正确 YYYY-MM-DD-TITLE.md 如果我在_posts 文件夹中运行jekyll serve,那么我将获得一个IndexOf 页面,其中列出了所有帖子,没有任何问题。

_config.yml的内容:

# Name of your site (displayed in the header)
name: My name

# Short bio or description (displayed in the header)
description: Blog on various topics

# URL of your avatar or profile pic (you could use your GitHub profile pic)
# avatar: https://raw.githubusercontent.com/barryclark/jekyll-now/master/images/jekyll-logo.png

# Includes an icon in the footer for each username you enter
footer-links:
  github: motleis/blog

baseurl: ""
permalink: /:title/

# The release of Jekyll Now that you're using
version: v3.4.0

# Jekyll 3 now only supports Kramdown for Markdown
kramdown:
  # Use GitHub flavored markdown, including triple backtick fenced code blocks
  input: GFM
  # Jekyll 3 and GitHub Pages now only support rouge for syntax highlighting
  syntax_highlighter: rouge
  syntax_highlighter_opts:
    # Use existing pygments syntax highlighting css
    css_class: 'highlight'

# Set the Sass partials directory, as we're using @imports
sass:
  style: :expanded # You might prefer to minify using :compressed

# Use the following plug-ins
gems:
  - jekyll-sitemap # Create a sitemap using the official Jekyll sitemap gem
  - jekyll-feed # Create an Atom feed using the official Jekyll feed gem

# Exclude these files from your production _site
exclude:
  - Gemfile
  - Gemfile.lock
  - LICENSE
  - README.md
  - CNAME

在_posts下:我只有简单的示例文件: 2014-3-3-Hello-World.md

---
layout: post
title: You're up and running!
---

Just a single line that should be displayed! 

这里是index.html的内容,应该列出帖子:

site.posts : {{ site.posts }}
My posts:
<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
      {{ post.excerpt }}
    </li>
  {% endfor %}
</ul>

结果是:

site.posts :
My Posts:

你可以看到 site.posts 是空的!

您对调试此问题有何建议?

我正在运行 jeykll-3.4.0

【问题讨论】:

  • 发布您在_posts 文件夹中的帖子及其文件名。还有_config.yml.
  • 感谢 @marcanuy 的评论和编辑我问题中的标记。我刚刚编辑了帖子,希望它更清楚
  • 似乎没问题,它应该与根文件夹(即包含_config.yml的文件夹)下的jekyll serve一起使用
  • 确实,我在_config.yml_posts 文件夹所在的根文件夹中运行jekyll serveIndex.html 也位于那里,并且似乎可以很好地编译到 _site 文件夹中。如果我用静态内容编辑index.html,它将被很好地构建。问题是由于某种原因没有访问变量。
  • 文件名是:YYYY-MM-DD-TITLE.md2014-3-3-Hello-World.md 不同

标签: jekyll github-pages


【解决方案1】:

更新答案:

检查您的帖子是否为 YYYY-MM-DD-title.MARKUP,即 2017-01-01-title.md 样式,其中 0 表示填充。

在 Jekyll 文档页面上 "Writing Posts" 的“创建帖子文件”下:

要创建新帖子,您只需在 _posts 目录中创建一个文件。如何命名此文件夹中的文件很重要。 Jekyll 要求博客文章文件按照以下格式命名:

YEAR-MONTH-DAY-title.MARKUP

其中 YEAR 是一个四位数,MONTH 和 DAY 都是两位数,MARKUP 是代表文件中使用的格式的文件扩展名。例如,以下是有效帖子文件名的示例:

2011-12-31-new-years-eve-is-awesome.md 2012-09-12-how-to-write-a-blog.md


以前的答案:

您的 _posts 文件夹是否位于您网站的根目录中?

否则我的主要建议是创建一个布局(在 layouts 文件夹中)专门用于显示您的索引(因此制作一个普通网页并复制并粘贴 index.md 文件的当前非前端内容)。据我了解,如果不是 Liquid 或 Markdown,您的代码将按原样显示,并且不会为构建网站而读取/处理。即使您的 index.md 页面的下半部分完全是空的,据我了解,它应该会显示您的帖子。

【讨论】:

  • 感谢您的回答。实际上,_posts 文件夹位于根目录。我将尝试按照您的建议创建布局。
  • _layouts 中有一个default.html 文件。如果我编辑它,将显示静态更改。所以我猜问题是没有读取变量。
  • 可以分享一下default.html文件吗?我描述的方法是我如何做自己的布局,所以虽然我认为能够通过 markdown 文件插入它看起来更好(就像你所做的那样),但这是我所做的妥协。所以我很好奇你的文件会发生什么。
  • 哦,我刚刚注意到了!也许您因为没有将帖子放在无序列表中而失去了一些东西?在“显示帖子索引”下进行检查。 jekyllrb.com/docs/posts
  • 所以他们进入了我在“创建帖子文件”下发送给你的链接中的真正细节(嗯,相对),但是在看到你发布的内容之后,我立即跳出来的是您的文件格式不正确。你需要写“2014-03-03-Hello-World.md”(注意多余的0)。
猜你喜欢
  • 2020-12-03
  • 1970-01-01
  • 2015-09-28
  • 2018-10-29
  • 1970-01-01
  • 2016-12-15
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多