Я пытаюсь получить больше контроля над выдержками из моего поста в Джекилле. Использование кода выдержки по умолчанию в моем случае не очень хорошо работает, так как он (а) должен быть первым абзацем, а (б) по-прежнему отображается на странице. Для большинства моих постов в блоге я хочу либо пользовательский текст, который не должен быть частью настоящего поста в блоге, либо текст, который позже будет опубликован в посте. Я надеялся сделать это с помощью блока, который может дополнительно принимать параметр для визуализации содержимого (хотя я добавлю эту особенность c позже). В настоящее время у меня есть этот плагин для проверки концепции:
require "jekyll"
module Jekyll
class RenderExcerptBlock < Liquid::Block
def render(context)
page = context.registers[:page]
content = super
page["excerpt"] = content.lines[0..50]
content
end
end
end
Liquid::Template.register_tag "excerpt", Jekyll::RenderExcerptBlock
, который теоретически позволил бы мне сделать это:
{% excerpt %}
A snippet of this post
{% endexcerpt %}
Однако, это дает ошибку при запуске jekyll build
:
Liquid Exception: Key excerpt cannot be set in the drop. in /Users/nick.chambers/blog/_posts/2020-01-21-unix-shell-scripting-with-bash.md
ERROR: YOUR SITE COULD NOT BE BUILT:
------------------------------------
Key excerpt cannot be set in the drop.
Возможно ли каким-либо образом переопределить значение этого регистра? В качестве альтернативы, есть ли у Джекилла способ достичь этого?