Я использую Express, Pug Js и Prismi c .io (headless CMS) для создания статьи в блоге.
Prismi c end-point возвращает JSON body с «типом» для каждой части статьи, т.е. это может быть абзац, изображение, заголовок или список.
Затем я использую pug js to case оператор для обработки каждого типа следующим образом:
div(class='article-body')
- let ul_list = false
- let ol_list = false
each item in document.ik_article_content
case item.type
when 'paragraph'
- ol_list = false
- ul_list = false
p #{item.text}
when 'heading1'
h1 #{item.text}
when 'heading2'
h2 #{item.text}
when 'heading3'
h3 #{item.text}
when 'heading4'
h4 #{item.text}
when 'image'
img(class='article-body__image' src=`${item.url}`)
when 'hyperlink'
a(href=`${item.text}`)
when 'o-list-item'
if !ol_list
- ol_list = true
ol
li #{item.text}
else
li #{item.text}
when 'list-item'
if !ul_list
- ul_list = true
ul
li #{item.text}
else
default
p #{item.text}
Prismi c возвращается к типам: 'o-list-item' (упорядоченный список) и 'list-item' (неупорядоченный список).
Мне нужно для интерпретации этих типов для создания открывающих и закрывающих тегов or.
Проблема в том, что я не уверен, как это сделать, особенно с pug js, который автоматически закрывает теги.
В В приведенном выше коде я попытался создать переменную, которая указывает, что список запущен, а затем я пытаюсь установить для этой переменной значение false, если список закончился. Но это не работает.
Как еще я мог бы обрабатывать динамическое создание упорядоченных и неупорядоченных списков с помощью pug js?
Спасибо.