Прилепленная запись на странице GitHub с использованием плагина - PullRequest
2 голосов
/ 10 июля 2020

Я хочу, чтобы сообщение оставалось первым на странице, даже когда создаются новые сообщения. Я нашел этот плагин https://github.com/ibrado/jekyll-stickyposts/

, но я не знаю, что писать в etc в

{% assign sorted = paginator.posts | sort: "stickiness" %}
{% for post in sorted %}
...etc...
{% endfor %}

Также следует добавить к _config.yml

# Gems
plugins:
  - jekyll-stickyposts

Я использую тему Lanyon. Моя веб-страница находится здесь https://github.com/psireal9/lanyon.

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 июля 2020

После того, как вы определили плагин в своем _config.yml, как вы упомянули:

plugins:
    - jekyll-stickyposts

Как указано в документации для jekyll-stickynotes:

Если вы не используете paginator вообще, используйте что-то вроде:

{% assign sorted = site.posts | sort: "stickiness" %}
    {% for post in sorted %}
    ...etc...
{% endfor %}

Если вы используете исходный jekyll-paginate:

{% assign sorted = paginator.posts | sort: "stickiness" %}
    {% for post in sorted %}
    ...etc...
{% endfor %}

Похоже, ваш сайт использует исходную разбивку на страницы, поэтому второй вариант вам подходит. ...etc... - это то, что вы действительно хотите делать с прикрепленными сообщениями, переменная post может использоваться в for l oop, и она будет равна прикрепленному сообщению из списка sorted, которое только содержит прилепленные сообщения. Отсюда просто используйте HTML / CSS, чтобы задать стиль, который вы хотите, чтобы липкий лист выглядел в верхней части страницы. Имейте в виду, что это только сортирует все ваши сообщения сначала по прикрепленным сообщениям, поэтому вы, вероятно, захотите проверить, является ли сообщение прикрепленным сообщением, например:

{% assign sorted = paginator.posts | sort: "stickiness" %}
    {% for post in sorted %}
        {% if post.sticky %}
           <!-- Do something here with stickied post -->
        {% endif %}
{% endfor %}

Поместите это код в вашем /_layouts/page.html, чтобы сделать его глобальным для всех страниц, или /_layouts/post.html, если вы хотите, чтобы они отображались только поверх сообщений.

0 голосов
/ 20 июля 2020

Итак, вчера я нашел решение своей проблемы. Похоже, что plugin (https://github.com/ibrado/jekyll-stickyposts/) не работает. Итак, вот шаги:

  1. Удалить jekyll-stickyposts под # Gems в _config.yml
  2. Для публикации, которую вы хотите, чтобы она была липкой, просто добавьте sticky: true вперед иметь значение. Например:
---
layout: post
title: Introduction
sticky: true
---
Отредактируйте class="posts" в index.html следующим образом:
<div class="posts">
  {% for post in site.posts %}
  {% if post.sticky %}
  <div class="post">
    <h1 class="post-title">
      <a href="{{ post.url | absolute_url }}">
        {{ post.title }}
      </a>
    </h1>

    <span class="post-date">{{ post.date | date_to_string }}</span>

    {{ post.content }}
  </div>
  {% endif %}
  {% endfor %}
  
  {% for post in site.posts %}
  {% unless post.sticky %}
  <div class="post">
    <h1 class="post-title">
      <a href="{{ post.url | absolute_url }}">
        {{ post.title }}
      </a>
    </h1>

    <span class="post-date">{{ post.date | date_to_string }}</span>

    {{ post.content }}
  </div>
  {% endunless %}
  {% endfor %}
</div>

Я не пробовал писать сообщения не в разделе Home, но думаю, что это сработает.

...