Jekyll `site.posts` отображается пустым после включения пользовательского домена со страницей Github

Я создаю простой статический сайт как мой личный сайт с Jekyll. Я использую страницы GitHub для его размещения ( https://username.github.io/). В последнее время я пытаюсь включить в него свой пользовательский домен и столкнулся с проблемой.

Например, у меня есть страница под названием posts.html чей контент такой:

---
layout: page
title: Posts
permalink: posts
---

Some Text

<ul>
    {% for post in site.posts %}
        <li> List item </li>
    {% endfor %}
</ul>

Раньше все выглядело как положено. Но после включения пользовательского домена ни один элемент списка не появляется (хотя все отлично, когда я запускаю локально). Я полагаю site.posts кажется пустым. Любое предложение почему?

У меня есть другая страница, например, следующая, которая проходит через что-то, кроме site.posts, Это выглядит идеально даже после включения пользовательского домена.

---
layout: page
title: Books I Have Read
permalink: read-books
---

Some text

<ul>
    {% for book in site.data.read-books %}
        <li>
            <a href={{book.goodreads}}> {{book.title}} </a>;
            {{book.author}} [{{book.date}}]
            {% if book.comment %}
                <br/>
                (Opinion: {{book.comment}})
            {% endif %}
        </li>
    {% endfor %}
</ul>

Формат моих постов: YYYY-MM-DD-title.md

Имя каталога сообщений: _posts

Локальная версия Jekyll: 3.7.0

_config.yml содержание:

Title: Md. Taufique Hussain
brieftitle: Taufique
baseUrl: ""
# Where things are
source:          .
destination:     ./_site
collections_dir: .
plugins_dir:     _plugins
layouts_dir:     _layouts
data_dir:        _data
includes_dir:    _includes
collections:
  posts:
    output:   true

# Handling Reading
safe:                 false
include:              [".htaccess"]
exclude:              ["Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"]
keep_files:           [".git", ".svn"]
encoding:             "utf-8"
markdown_ext:         "markdown,mkdown,mkdn,mkd,md"
strict_front_matter: false

# Filtering Content
show_drafts: null
limit_posts: 0
future:      false
unpublished: false

# Plugins
whitelist: []
plugins:
    - jekyll-seo-tag

# Conversion
markdown:    kramdown
highlighter: rouge
lsi:         false
excerpt_separator: "\n\n"
incremental: false

# Serving
detach:  false
port:    4000
host:    127.0.0.1
baseurl: "" # does not include hostname
show_dir_listing: false

# Outputting
permalink:     date
paginate_path: /page:num
timezone:      null

quiet:    false
verbose:  false
defaults: []

liquid:
  error_mode: warn

# Markdown Processors
rdiscount:
  extensions: []

redcarpet:
  extensions: []

kramdown:
  auto_ids:       true
  entity_output:  as_char
  toc_levels:     1..6
  smart_quotes:   lsquo,rsquo,ldquo,rdquo
  input:          GFM
  hard_wrap:      false
  footnote_nr:    1

1 ответ

Решение

Во-первых, вы хотите локально протестировать Jekyll в конфигурации Github Pages, ваш Gemfile должен содержать:

source "https://rubygems.org"
gem 'github-pages'

Будут загружены все плагины, доступные на страницах gh, полный список смотрите здесь.

Это позволит вам воспроизвести ошибку gh pages, которая исходит из одной из ваших директив config:

collections_dir: .

Если вы удалите или прокомментируете эту директиву, все вернется на круги своя.

Другие вопросы по тегам