Ghost Custom Pagination

7

Я просто создаю тему для платформы блогов для призраков, читая призрачные документы темы. все, что мне нужно сейчас, это настроить разбивку на страницы. документ говорит создать pagination.hbs внутри папки partial. но проблема в том, что я не знаю, как должна быть разметка.

Теги:
ghost-blog
blogs

2 ответа

18
Лучший ответ

Там короткая публикация здесь, в которой объясняется, где найти соответствующий бит кода для разбивки на страницы. hbs файл. Фактически вы сможете использовать код разбивки по умолчанию в качестве шаблона.

В качестве заметок этого сообщения вам нужно скопировать код разбивки по умолчанию из core/server/helpers/tpl/pagination.hbs в исходный код Ghost и использовать его для создания собственного файла pagination.hbs в каталоге partials вашей темы.

Вы увидите разметку, которую вам нужно изменить там, то есть:

<nav class="pagination" role="pagination">
    {{#if prev}}
        <a class="newer-posts" href="{{pageUrl prev}}">&larr;</a>
    {{/if}}
   <span class="page-number">Page {{page}} of {{pages}}</span>
    {{#if next}}
        <a class="older-posts" href="{{pageUrl next}}">&rarr;</a>
    {{/if}}
</nav>

Вам нужно перезапустить Ghost после сохранения изменений, чтобы увидеть изменения.

  • 1
    следует использовать role = "navigation" вместо role = "pagination" для лучшего вида.
0

Я создал некоторый код JavaScript, который расширяет разбивку по страницам Ghost по умолчанию. Вместо того, чтобы показывать "Страница 1 из X", он показывает ряд номеров страниц с помощью кнопок "предыдущий", "следующий", "первый" и "последний". Он также имеет многоточие в центре для сайтов с большим количеством страниц. Он полностью настраивается на странице настроек вставки кода.

Моя реализация создает компонент разбиения на страницы для начальной загрузки, но я уверен, что вы можете выводить все, что захотите, с учетом созданных классов и элементов (<nav> и <ul>).

Вот код, который я указываю перед {{ghost_foot}}. Таким образом, я могу переопределить некоторые параметры в разделе нижнего колонтитула ввода кода:

var prev;
var pages;
var page;
var next;
var pageUrlPrev;
var pageUrlNext;
var numbersSurroundingEllipses = 3;
var useSimplePagination = false;

Вот pagination.hbs для настраиваемая разбивка на страницы, которую я использую на своем сайте:

<script type="text/javascript">
    // set the values that we'll use in the bootstrap-pagination.js file
    {{!if there is no value for the variable, display a 0}}
    prev = {{#if prev}}{{prev}}{{else}}0{{/if}};
    pages = {{#if pages}}{{pages}}{{else}}0{{/if}};
    page = {{#if page}}{{page}}{{else}}0{{/if}};
    next = {{#if next}}{{next}}{{else}}0{{/if}};
    pageUrlPrev = '{{pageUrl prev}}';
    pageUrlNext = '{{pageUrl next}}';
    pageUrlFirst = '{{pageUrl 1}}';
    pageUrlLast = '{{pageUrl pages}}';
</script>
<nav>
  <ul class="pagination bootstrap-pagination">
  </ul>
</nav>

Вот код javascript, который добавит разбивку на страницы выше HTML.

Примечание. Поскольку эти ссылки создаются на клиенте, они не будут доступны поисковым системам при индексировании. Тем не менее, я понимаю, что поисковые системы используют теги link rel="prev" и link rel="next", которые вызывают Ghost для каждой из страниц индекса.

Вот как они выглядят для моего сайта:

<link rel="prev" href="https://cerkit.com/page/2/" />
<link rel="next" href="https://cerkit.com/page/4/" />

Это заставляет меня думать, что поисковые системы могут перемещаться между страницами и получать доступ ко всем ссылкам. Тем не менее, я не подтвердил это ни с кем, кто точно знал бы, так что сделайте некоторые исследования, если вы считаете, что это может быть проблемой.

Я также убедился, что я отправил ссылку на ссылку для сайта Ghost в поисковые системы, чтобы убедиться.

Это дает вам еще один вариант при работе с разбиением на страницы.

Здесь - полная запись в моем блоге, в которой содержится несколько деталей.

У меня есть все это (и несколько других трюков Ghost, как привязка значков шрифта Awesome к ссылкам навигации) на моем веб-сайте: cerkit.com.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню