Как передать содержимое нескольких абзацев в Jade mixin в качестве аргумента

Например, скажем, у меня есть миксин для создания постов в блоге:

mixin blogPost(title, content)
    article
        h1= title
        p= content

Используется так:

+blogPost("Post Title","Post Content")

Результаты в:

<article>
    <h1>Post Title</h1>
    <p>Post Content</p>
</article>

Это хорошо работает, но, скажем, я не знаю, сколько абзацев в части поста "содержание контента", я знаю только, что будет один или несколько. Так, например, содержание сообщения может быть:

**Title**
My awesome blog post

**Post Content** 
This is my awesome blog post.

This is a new paragraph about my awesome blog post.

Будет ли что-то подобное сделать свое дело?

mixin blogPost(title, content)
article
    h1= title
    - for each paragraph in content
        p= content

Называется так:

+blogPost("Post Title", {"This is my awesome blog post.","This is a new paragraph about my awesome blog post."})

Будет ли это работать? Есть ли способ лучше?

1 ответ

Решение

Да, это сработало бы, но ваша смешанная логика не совсем верна, и вам нужно передавать абзацы содержимого в виде массива строк, а не объекта, как в вашем примере.

Mixin Changes

  • Удалить for ключевое слово
  • задавать p= paragraphне content который является массивом

С этими изменениями ваш миксин должен выглядеть примерно так

mixin blogPost(title, content)
article
    h1= title
    - each paragraph in content
        p= paragraph

Тогда просто не забудьте вызвать mixin с массивом строк

+blogPost("Post Title", ["This is my awesome blog post.","This is a new paragraph about my awesome blog post."])
Другие вопросы по тегам