Как использовать Jekyll-paginate без индекса.HTML-код?
Я пытаюсь построить свой блог на страницах Github, и мне приходится использовать Jekyll-paginate по очевидным причинам. Проблема в том, что я не использую индекс.html-страница для всего, кроме страницы приветствия. У меня есть отдельная страница под названием index.html в папке называется articles, поэтому url для блога должен быть xyz.github.io/articles/
.
Примечание : Вот мой код:
Index.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: '© 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: '↩︎'
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
---
Итак, есть ли способ использовать Jekyll-paginate без использования явного индекса.HTML-код?
Вот что происходит, когда я пытаюсь запустить jekyll на моем нынешнем блоге без индекса.html:
$ 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.
Как вы можете видеть, пагинация не работает вообще! Итак, как мне это исправить?Я новичок в markdown и jekyll, так что я могу даже упустить что-то очевидное! Пожалуйста, помогите мне исправить это!
1 ответ:
Документация по разбиению Джекилла на страницы гласит:
Пагинация работает только в HTML файлах
Пагинация не работает из файлов Markdown или Textile с вашего сайта Jekyll. Пагинация работает, когда вызывается из 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>
(дополнительные сведения о сниппетах и конфигурации см. В документации .)
EDIT: я думаю, что ваша проблема заключалась в вашей установке
paginate_path
. Вы установили его в'/page-:num/'
, поэтому Jekyll Paginate искалindex.html
в корне вашего сайта.