Использование `title` с ScalaTags

Тег заголовка не работает должным образом с библиотекой ScalaTags.

import scalatags.Text.all._

title("My Awesome Website")

Как я могу заставить это работать?

В справочных документах / руководствах обычно отсутствует вездесущий тег заголовка. Я надеюсь, что разработчик исправит это..

https://github.com/lihaoyi/scalatags

Не работает, как ожидалось:

Если вы посмотрите, как такие теги, как link, script, head, html используются title тег должен работать так же.

По какой-то причине разработчик решил сделать этот тег ConcreteHtmlTag[Nothing] а не тип бывшего тега ConcreteHtmlTag[String], Также странно, что этот тег находится в Tags2 пакет, а не Tags это обычно используемый тег в конце концов.

3 ответа

Решение

Кажется, этот работает:

scala> scalatags.Text.tags2.title("test")
res7: scalatags.Text.TypedTag[Nothing] = <title>test</title>

Кажется, что title в scalatags.Text.all является атрибутом тега (scalatags.generic.Attr) а не TypedTag, Является ли это неуместным или нет (или должно быть TypedTag[String]), Я не знаю. Возможно, это просто столкновение символов в вашем коде.

Явный import scalatags.Text.tags2.title должен помочь.

Вместо импорта allЕсть альтернативный импорт, который вы можете использовать.

import scalatags.Text.short._
import scalatags.Text.tags2._

html(
  head(
    title("Your Title Here")
  ),
  body(

  )
)

Дополнительные примеры приведены в разделе " Управление импортом " в документации.

Альтернативно

      import scalatags.Text.all.{title=>titleAttr,_}
import scalatags.Text.tags2.title

Если вы используете скальатру, вам также захочется защитить голову.

      import scalatags.Text.all.{head=>headTag, title=>titleAttr,_}
import scalatags.Text.tags2.title
Другие вопросы по тегам