Ich habe Probleme mit einigen verschachtelten Flüssigkeit Tags zu kompilieren, wenn der äußere Tag enthält mehrere Geschwister-Flüssigkeits-Tags. Dies funktioniert:Verschachtelte flüssige benutzerdefinierte Tag Blöcke
{% container %}
{% inner %}
Stuff Goes in here
{% endinner %}
{% endcontainer %}
aber nicht
{% container %}
{% inner %}
Stuff Goes in here
{% endinner %}
{% inner %}
Stuff Goes in here
{% endinner %}
{% endcontainer %}
bekomme ich folgende Fehlermeldung:
Liquid Exception: Liquid syntax error (line 1): 'container' tag was never closed in /.../_posts/blah.markdown/#excerpt
Liquid Exception: Liquid syntax error (line 1): 'container' tag was never closed in _includes/head.html, included in _layouts/default.html
Beachten Sie, dass #excerpt
im ersten Fehler? Wenn ich einen Auszug in die Front male. Alles funktioniert gut. Mein head.html umfassen wird standardmäßig mit einer neuen jekyll Website:
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
die if-Anweisung im Kopf entfernt wird, wird der Fehler weg gehen machen. Ich bin völlig verwirrt darüber, warum mehrere Geschwister diesen Fehler verursachen würden. Hier ist mein vereinfachte Plugin-Code:
module Jekyll
class RenderContainer < Liquid::Block
def initialize(tag_name, contain, tokens)
super
end
def render(context)
"<div class=\"container\">#{super}</div>"
end
end
class RenderInner < Liquid::Block
def initialize(tag_name, contain, tokens)
super
end
def render(context)
"<div class=\"inner\">#{super}</div>"
end
end
end
Liquid::Template.register_tag('container', Jekyll::RenderContainer)
Liquid::Template.register_tag('inner', Jekyll::RenderInner)
Schön! Danke, dass du eine fast einjährige Frage beantwortet hast! – jhummel