Это, вероятно, простой вопрос, но как показать предварительные просмотры моих сообщений на странице по умолчанию? Я использую тему Jekyll Bootstrap Tom.
Как показать предварительный просмотр сообщения? (Использование темы Jekyll Bootstrap)
Ответ 1
Просматривая функции здесь, я нашел strip_html и truncatewords.
Здесь приведен пример "списка сообщений" с 75 словами текста предварительного просмотра.
<ul >
{% for post in site.posts limit 4 %}
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
{{ post.content | strip_html | truncatewords:75}}<br>
<a href="{{ post.url }}">Read more...</a><br><br>
{% endfor %}
</ul>
Ответ 2
Это также работает, по крайней мере, с 1.0.0
, встроено и прост в использовании.
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
<p>{{ post.excerpt }}</p>
</li>
{% endfor %}
</ul>
Смотрите здесь.
Ответ 3
Мне понравился подход комментариев <!--more-->
от WordPress, поэтому я написал что-то в этих строках:
_plugins/more.rb:
module More
def more(input, type)
if input.include? "<!--more-->"
if type == "excerpt"
input.split("<!--more-->").first
elsif type == "remaining"
input.split("<!--more-->").last
else
input
end
else
input
end
end
end
Liquid::Template.register_filter(More)
Ваше сообщение будет выглядеть следующим образом:
---
layout: post
title: "Your post title"
published: true
---
<p>This is the excerpt.</p>
<!--more-->
<p>This is the remainder of the post.</p>
Затем вы можете использовать его в своих шаблонах:
Показать выдержку (все выше комментария <!--more-->
):
<summary>{{ post.content | more: "excerpt" }}</summary>
Показать остаток (все после комментария <!--more-->
):
<article>{{ post.content | more: "remaining" }}</article>
Любой аргумент, отличный от excerpt
или remaining
, просто покажет весь пост.
Ответ 4
Это старый вопрос, который еще хотел бы добавить обходной путь для проблемы форматирования, как показано в @Talon876 answer здесь.
В конце каждого сообщения добавление закрывающих тегов, таких как </em>,</strong> or </b>
, может быть не таким аккуратным, но оно поддерживает форматирование, показывая выдержки.
Например:
<ul >
{% for post in site.posts limit 4 %}
<li><span>{{ post.date | date_to_string }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
{{ post.content | strip_html | truncatewords:75}}
</em></strong> <!-- This is what does the task-->
<br>
<a href="{{ post.url }}">Read more...</a><br><br>
{% endfor %}
</ul>