В моем блоге Jekyll я бы хотел, чтобы некоторые должности не имели названия. Как я могу изменить Jekyll codebase, чтобы сделать это так, чтобы сообщения не нуждались в заголовке?Сообщение без заголовка в Jekyll
ответ
Вам не нужно изменять jekyll codebase для удаления названий. Это можно сделать, используя различные макеты с соответствующими фильтрами и тегами для жидкости.
Для отдельных почтовых страниц просто создайте новый файл макета (например, «_layouts/no-title-post.html»), который не содержит тег {{ page.title }}
. В исходном файле _posts задайте переднюю задачу YAML, чтобы вызвать ее. Например:
---
layout: no-title-post
---
Отметим здесь, что «название:» не требуется в передней материи YAML. Если jekyll нуждается в нем, значение будет автоматически упаковано из имени файла. Например, «_posts/2012-04-29-a-new-post.md» автоматически изменит свою переменную title на «A New Post». Если ваши шаблоны не вызывают теги заголовка, это не имеет значения. Вы можете включить «заголовок:» в передний вопрос, и он просто не будет отображаться.
Вы также можете отобразить страницу без заголовка на страницах вашего листинга/индекса. Проверьте раскладку сообщений, чтобы определить, должно ли отображаться заголовок. Например, чтобы показать заголовки на всех страницах кроме те, которые имеют макет «без титульного пост», вы могли бы сделать что-то вроде этого:
{% for post in paginator.posts %}
{% if post.layout != 'no-title-post' %}
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
{% endif %}
<div class="postContent">
{{ post.content }}
</div>
{% endfor %}
В этом случае ссылка на саму страницу также удаляется. Если страница должна быть адресной, вам нужно будет добавить ссылку в другое место.
у меня был тот же сомнение, то я наткнулся на это на самом деле простое решение:
{% if post.title %}
<h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
{% endif %}
, а затем в самом почтовом файле вы бы оставить title
переменной пустым:
---
layout: post
title:
---
Этот путь, h1
не будет печатать, если заголовок пуст. Я нашел этот метод особенно полезным для типов сообщений, таких как кавычки, которые большую часть времени не имеют названий.
решение edemundo «s больше не работает во всех случаях с Джекила 3.
Я использую пустое название по умолчанию:
defaults:
-
scope:
type: "posts"
values:
layout: "post"
title: ""
Затем вы можете сравнить заголовки против пустой строки в верстку, например:
{% if post.title == "" %}
{{ post.content | strip_html | truncatewords:5 }}
{% else %}
{{ post.title }}
{% endif %}
Если вы хотите автоматическую генерацию заголовка можно использовать в качестве frontmatter:
---
title: ""
---
это очень хорошо работало с установкой jekyll/poole. – gvoysey
Вы пробовали загрузить исходный код и просмотреть его для публикации статей? – huon
Я знаю очень мало Руби! –
Все в порядке, я уверен, что вы можете подобрать достаточно, чтобы делать то, что хотите (я тоже мало знаю о Руби). Для получения дополнительной информации вы имеете в виду, что имя файла не должно быть в форме «year-month-day-title»? Или так, что вам не нужно «title: ...» в первом вопросе сообщения? – huon