Как передать строку, содержащую кавычки, в качестве параметра `include` в Liquid / Jekyll? - PullRequest
0 голосов
/ 21 марта 2019

Учтите: я хочу передать блок текста в качестве параметра в теге include.Блок текста содержит цитату.Например:

Breaking news:

Area man says, "This is newsworthy!"

Есть несколько способов сделать это:

1.Заключите в одинарные кавычки

{%
    include newsitem.html
    content='Breaking news:

Area man says, "This is newsworthy!"'
%}

Это не идеально, поскольку в текстовом блоке могут быть одинарные кавычки / апострофы.

2.Используйте captures

{% capture newscontent %}
Breaking news:

Area man says, "This is newsworthy!"
{% endcapture %}
{%
    include newsitem.html
    content=newscontent
%}

Это не идеально, потому что оно многословно.

3.Escape-кавычки

{%
    include newsitem.html
    content="Breaking news:

Area man says, \"This is newsworthy!\""
%}

Это не идеально, потому что если есть много кавычек, им всем понадобится обратный слеш, который будет утомительно добавлять.

4.Используйте captures и include

{% capture content %}{% include_relative newscontent.md %}{% endcapture %}
{%
    include newsitem.html
    content=content
%}

Это не совсем идеально, потому что это также довольно многословно.

5.Использовать frontmatter и / или YAML

---
newscontent: |
  Breaking news:

  Area man says, "This is newsworthy!"
---

{%
    include newsitem.html
    content=page.newscontent
%}

Это не идеально, потому что оно странным образом распределяет содержимое страницы.


Теперь, я абсолютно признаю, что это все действительно тривиальные жалобы,Но в основном для того, чтобы лучше познакомиться с Jekyll / liquid, я хотел бы знать, есть ли другой способ передать многострочные параметры, содержащие кавычки, в include. GREAT было бы, если бы я мог использовать backtics или какой-либо другой символ, который не очень часто встречается в текстовом содержимом:

{%
    include newsitem.html
    content=`Breaking news:

Area man says, "This is newsworthy!"`
%}

К сожалению, это не поддерживается.о чем ты думаешь?Спасибо!

...