В этой заметке хочу рассмотреть одну из возможностей показать анотацию вашей записи в блоге или статьи, при условии что вы используете генератор статики Jekyll.
Я довольно часто использую генератор статических сайтов Jekyll, в часности и для компиляции этого веб-сайта в кучу статических файлов (основное преимущество - это, как правило, более безопасный и более быстрый веб-сайт из-за отсутствия серверных обращений к базе данных).
Я столкнулся с несколькими решениями для отображения анотации или выдержки из статьи на главной странице блога или в категории (если вы используете основную тему Jekyll, которая поставляется стандартно, вероятно, это ваш index.html).
Во всяком случае, решение, которое я хочу предложить, предназначено для того, чтобы позволить мне контролировать, какую часть записи блога или статьи я хочу отобразить в качестве анотации. Если я не выберу часть статьи, это нормально, Jekyll просто покажет анотацию сгенирированую из условий по умолчанию.
Да, на всякий случай, если вы не знали, Джекил использует Liquid для его шаблонов.
Пример:
<!-- index.html -->
<p class="post-excerpt">
{% if post.content contains '<!--excerpt.start-->' and post.content contains '<!--excerpt.end-->' %}
{{ ((post.content | split:'<!--excerpt.start-->' | last) | split: '<!--excerpt.end-->' | first) | strip_html | truncatewords: 20 }}
{% else %}
{{ post.content | strip_html | truncatewords: 20 }}
{% endif %}
</p>
<!-- _posts/some-random-post.html -->
<p>
Тут контент записи/статьи <!--excerpt.start-->это та часть текста которая будет отображатся как анотация к данной записи или статьи<!--excerpt.end-->. Дальше может продолжаться основной контент статьи...
</p>
Если я не добавлю в запись текст выделенный комментариями, открывающим - <!--excerpt.start-->
и закрывающим <!--excerpt.end-->
, Jekyll самостоятельно извлечет все содержимое записи/статьи, удалит теги HTML и обрежет его длину до 20 слов, после чего поставит многоточие ...
.