1) Расширение в вашем примере будет «код», так, например, для генератора шаблона питона, вы могли бы сделать:
templateTypes += ("py" -> "some.python.PythonFormat")
2) Дело в том, что ускользает HTML символов является some.lang.LangFormat
классом, который должен реализовать класс play.api.template.Format
. Это имеет следующие два метода:
/**
* A template format defines how to properly integrate content for a type `T` (e.g. to prevent cross-site scripting attacks)
* @tparam T The underlying type that this format applies to.
*/
trait Format[T <: Appendable[T]] {
type Appendable = T
/**
* Integrate `text` without performing any escaping process.
* @param text Text to integrate
*/
def raw(text: String): T
/**
* Integrate `text` after escaping special characters. e.g. for HTML, “<” becomes “&lt;”
* @param text Text to integrate
*/
def escape(text: String): T
}
Таким образом, вы можете просто сделать escape
делегатом raw
, если вы не хотите делать какие-либо вытекание.
Что касается управления разрывами строк, это аспект самих шаблонов, если вы поместите разрывы строк в шаблон, они появятся в результате. Так, например:
@if(foo) {
@bar
}
будет иметь разрывы строк, в то время как:
@if(foo) {@bar}
не будет.