9

我正在尝试在 Github 页面上构建我的博客,出于显而易见的原因,我必须使用 Jekyll-paginate。问题是,除了欢迎页面,我不使用 index.html 页面。我在名为文章的文件夹中有一个名为 index.html 的单独页面,因此博客的 url 应该是xyz.github.io/articles/.

然而,这带来了一个主要问题——显然 jekyll-paginate 拒绝在博客根目录中没有明确的 index.html 的情况下工作。因此,我尝试使用没有此类限制的 jekyll-paginate-v2,并且效果很好!

但是,github页面不支持jekyll-paginate-v2,因此,我又回到了第1方。我该怎么办?

注意:这是我的代码:

索引.md

---
layout: home
title: SomuSysAdmin
---

If you're new to this site and have no idea what's going on, first go and read the [About](about.md) section of the blog.

Here's a list of all the major articles this blog contains: 

## [Red Hat Certified Systems Administrator (RHCSA) Guide]({% post_url 2017-09-11-RHCSA %})

这是我的 _config.yml:

# -----------------------------------------------------------------------------
#  User configuration
# -----------------------------------------------------------------------------

title:               SomuSysAdmin

# The unique resource location of your page.
# Set to `https://<username>.github.io` when hosting on GitHub Pages
url:                 https://somuSysAdmin.github.io

# Set to '' when hosting a blog on GitHub Pages, ie on `//<username>.github.io`
# Set to '/<reponame>' when using the `gh-pages` branch of a repository
baseurl:             ''

# A very short description of your page
tagline:             Easiest way to earn some SysAdmin mojo!

# A short description of the page, used in the sidebar and as fallback for the meta description tag.
# Markdown enabled, but don't use more than one paragraph (enforced by `>`)
description:         >
  A short set of notes and pointers concerning everything I know about System Administration.
# This should be the same author as first entry in `_data/authors.yml`
author:
  name:              Somenath Sinha
  email:             somu.sysa_fakeID@gmail.com

# Fallback image and color
image:               /assets/img/nap.jpg
color:               '#4ea97e'

# The font used for headings. Expects a string that is a valid CSS font-family value.
font_heading:        "'Roboto Slab', Helvetica, Arial, sans-serif"

# The text font. Expects a string that is a valid CSS font-family value.
font:                "'Noto Sans', Helvetica, Arial, sans-serif"

# The string encoding what fonts to fetch from Google Fonts.
# See: https://qwtel.com/hydejack/docs/configuration/
google_fonts:        Roboto+Slab:700|Noto+Sans:400,400i,700,700i

# If you do not use a Google Fonts, uncomment the line below
# no_google_fonts:     true

# Set your Google Analytics id to receive `pageview` events.
# To remove Google Anaylics from your page, remove the line below.
google_analytics:    <UA-XXXXXXXX-X>

# Setting a disqus shortname will enable the comment section on pages with `comments: true` in the front matter
disqus_shortname:    somusa

# This text will appear in the footer of every page. Markdown enabled.
copyright:           '&copy; 2017 Somenath Sinha. All rights reserved.'

# Format of the permalinks
permalink:           pretty

# Pagination configuration (used by the `blog` layout)
paginate:            5
paginate_path:       '/page-:num/'

# If you are upgrading form a v5 verison of Hydejack, uncomment the two lines below,
# so that the location of the feed XML stays the same.
# feed:
#   path:              atom.xml

# Set to true when building with the `--lsi` option
# See: https://jekyllrb.com/docs/variables/#site-variables
# use_lsi:             true

# Set to `true` if you don't want to show an icon after each link that opens to an external site
# no_mark_external:    true

# Uncomment this line if third party plugins fail to work with dynimically loaded pages
# disable_push_state:  true

# Uncomment this line if want to disable the touch drawer on mobile
# disable_drawer: true

# -----------------------------------------------------------------------------
#  Collections
# -----------------------------------------------------------------------------

collections:
  featured_categories:
    permalink:       /category/:name/
    output:          true
  featured_tags:
    permalink:       /tag/:name/
    output:          true
  projects:
    permalink:       /projects/:path/
    output:          true

# -----------------------------------------------------------------------------
#  Advanced configuration
# -----------------------------------------------------------------------------

gems:
  - jekyll-default-layout
  - jekyll-feed
  - jekyll-optional-front-matter
  - jekyll-paginate
  - jekyll-redirect-from
  - jekyll-relative-links
  - jekyll-sitemap

exclude:
  - README.md
  - node_modules
  - package.json
  - package-lock.json
  - Gemfile
  - Gemfile.lock

kramdown:
  footnote_backlink: '&#x21a9;&#xfe0e;'
  math_engine:       mathjax
  math_engine_opts:
    preview:         true
    preview_as_code: true

compress_html:
  comments:          ["<!-- ", " -->"]
  clippings:         all
  endings:           all
  ignore:
    envs:            [development]

sass:
  style:             compressed

这是我的文章/index.md 的内容:

---
layout  : blog
title   : Articles
menu    : true
order   : 1
---

那么,有什么方法可以在不使用显式 index.html 的情况下使用 jekyll-paginate?

当我尝试在没有 index.html 的当前博客上运行 jekyll 时,会发生以下情况:

$ bundle exec jekyll serve --incremental
Configuration file: D:/Git/blog/_config.yml
      Deprecation: The 'gems' configuration option has been renamed to 'plugins'. Please update your config file accordingly.
      Source: D:/Git/blog
      Destination: D:/Git/blog/_site
Incremental build: enabled
    Generating...
      Pagination: Pagination is enabled, but I couldn't find an index.html page to use as the pagination template. Skipping pagination.
                    done in 1.736 seconds.
Please add the following to your Gemfile to avoid polling for changes:
    gem 'wdm', '>= 0.1.0' if Gem.win_platform?
Auto-regeneration: enabled for 'D:/Git/blog'
  Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

如您所见,分页根本不起作用那么,我该如何解决呢?我是降价和 jekyll 的新手,所以我什至可能遗漏了一些明显的东西!请帮我修复它!

4

2 回答 2

9

Jekyll 分页的文档说:

分页仅适用于 HTML 文件

分页在 Jekyll 站点的 Markdown 或 Textile 文件中不起作用。当从名为 的 HTML 文件中调用分页时,分页可以工作,该文件index.html可以选择驻留在子目录中并通过paginate_path配置值从子目录中生成分页。

因此,如果您希望您的博客位于 URL/articles/和上/articles/N/,请在您的配置中指定:

paginate_path: "/articles/:num/"

并在目录中放置一个index.html文件articles,其中列出了当前页面的帖子:

<!-- This loops through the paginated posts -->
{% for post in paginator.posts %}
  <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
  <p class="author">
    <span class="date">{{ post.date }}</span>
  </p>
  <div class="content">
    {{ post.content }}
  </div>
{% endfor %}

<!-- Pagination links -->
<div class="pagination">
  {% if paginator.previous_page %}
    <a href="{{ paginator.previous_page_path }}" class="previous">Previous</a>
  {% else %}
    <span class="previous">Previous</span>
  {% endif %}
  <span class="page_number ">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
  {% if paginator.next_page %}
    <a href="{{ paginator.next_page_path }}" class="next">Next</a>
  {% else %}
    <span class="next ">Next</span>
  {% endif %}
</div>

(有关更多片段和配置详细信息,请参阅文档。)

编辑:我认为你的问题是你的paginate_path设置。您将其设置为'/page-:num/',因此 Jekyll Paginateindex.html在您的站点根目录中查找。

于 2017-09-12T20:29:55.520 回答
0

对我来说,解决方案是:

如果您想让您的博客页面index.html完全脱离,您需要做什么。

blog                   # New directory
└── index.html         # Your new blog page

在你的这个blog/index.html你需要添加这个将呈现博客页面(home布局是你拥有的地方paginator.posts

---
layout: home
title: Blog
permalink: /blog/
---

然后确保你有分页器配置_config.yml

# PAGINATION
paginate: 5
paginate_path: "/blog/page:num"
于 2020-05-21T21:15:43.700 回答