Сохраните разметку мопса с переменными в переменной (чтобы не дублировать)

#syntax #pug #markup

Вопрос:

Я продублировал код в pug mixin, используя шаблонные литералы (строка шаблона)

    input(class=`${concatenatedClasses}`, type=`${type}`, placeholder=`${placeholder}`)
 

Код выглядит так:

   if modificator === 'masked'
    .text-field__wrapper-masked
      input(class=`${concatenatedClasses}`, type=`${type}`, placeholder=`${placeholder}`)
  else if modificator === 'email'
    -placeholder = 'Email'
    -type = 'email'
    .text-field__wrapper-subscription
      span.material-icons
        | arrow_forward
      input(class=`${concatenatedClasses}`, type=`${type}`, placeholder=`${placeholder}`)
  else
    input(class=`${concatenatedClasses}`, type=`${type}`, placeholder=`${placeholder}`)
 

Я хочу хранить дублированный код в переменной, поэтому мне не нужно дублировать. Подобный этому:

   -let textFieldOutput = input(class=`${concatenatedClasses}`, type=`${type}`, placeholder=`${placeholder}`)

  if modificator === 'masked'
    .text-field__wrapper-masked
      #{textFieldOutput}
  else if modificator === 'email'
    -placeholder = 'Email'
    -type = 'email'
    .text-field__wrapper-subscription
      span.material-icons
        | arrow_forward
      #{textFieldOutput}
  else
    #{textFieldOutput}
 

Но это приводит к синтаксической ошибке, когда я пытаюсь сохранить разметку мопса в переменной.

   - Error: Error parsing body of the with expression
 

Есть ли способ сделать это?

Большое спасибо за ваше внимание и помощь.

Комментарии:

1. Используйте другой миксин для дублированного содержимого