Я не самый большой поклонник WordPress, но я думаю, что одна вещь, которую WordPress получает правильно, это функциональность body_class
.
Я хочу воссоздать эту функцию, используя Jekyll и Жидкие метки .Я хочу иметь возможность совершать вызовы типа
<body class="{% body_class %}">
, которые будут автоматически генерировать классы на основе:
- Jekyll Template
- Текущее сообщение (если есть)
- Текущая страница (если есть)
- Текущая категория (если есть)
Примеры:
/ index.html с макетом по умолчанию приведет кв
<body class="layout-default page-index">
/ _ posts / 2012-01-01-my-unique-entry.markdown с макетом blog.html получится
<body class="layout-blog post-my-unique-entry">
Я знаю, что могу достичь всего этогоиспользуя передний вопрос YAML, но если я смогу автоматизировать это, чтобы удалить еще одну повторяющуюся переменную, это было бы идеально.
Из того, что я пытался сделать до сих пор, я использую следующую стратегию:
class BodyClassTag < Liquid::Tag
def initialize(tag_name, name, tokens)
super tag_name, name, tokens
end
def render(context)
# Build string from Jekyll instance variables possible here?
end
end
Liquid::Template.register_tag('body_class', BodyClassTag)
Есть идеи, если это возможно, и с чем связать, если так?