Краткие полужирные / курсивные слова в абзаце ScalaTags

Я пытаюсь найти наиболее краткий способ использовать курсив и полужирные шрифтовые стили на преимущественно английской прозе.

Единственная зависимость:

import scalatags.Text.all._

Это была 1-я версия:

p(id:="with-italics-verbose")("""
  Earlier sentence in paragraph.
  This is a sentence with
  """, 
  i("very"),
  """
  important words, so
  """,
  b("pay attention."),
  """
  Later sentence in same paragraph.
  """
)

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

Это 2-я версия, использующая комбинацию необработанной функции и интерполяции строк:

p(id:="with-italics-raw-interpolate")(raw(s"""
  Earlier sentence in paragraph.
  This is a sentence with ${i("very")}, important words, so ${b("pay attention")}.
  Later sentence in same paragraph.
  """
))

Это так хорошо, как я могу надеяться на использование ScalaTags? Используя последнюю версию 0.6.0.

2 ответа

Решение

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

За исключением этого, тройные кавычки не нуждаются в собственной строке, так что вы можете запустить что-то вроде

div(
  """
  This is the first sentence.
  The second sentence is """, i("quite"), """ fancy.
  This is the third sentence.
  """
)

Вот как я делаю это на сервере:

import scalatags.Text.all._

div(
  h1("Welcome to Scala.js"),
  p("The ", b("server"), " added this. Time to relax ☕")
)

Чтобы сделать то же самое на клиенте, используйте import scalatags.JsDom.all._

Другие вопросы по тегам