假设这很简单,但很难用新行打印出html标签的NodeSeq(所以当我在网页浏览器中查看源代码时,我可以从上到下扫描)
原样,NodeSeq打印为一条长行。
示例代码:
listOfPaths map ( jsNode(_) ) reduce (_++_)
def jsNode(path: String): NodeSeq =
<script type="text/javascript" src={"/static/js/"+path}></script>
那么,如何在每个节点的末尾获得 \ n ?
由于
答案 0 :(得分:4)
无论您使用什么来呈现HTML,这都是一项工作。例如,如果您使用scala.xml.PrettyPrinter,则可以执行以下操作:
val printer = new xml.PrettyPrinter(80, 2)
val paths = List("script-1.js", "script-2.js")
val header = <head>{paths map ( jsNode(_) ) reduce (_++_)}</head>
现在,当您致电printer.format(header)
时,您将获得以下信息:
<head>
<script type="text/javascript" src="/static/js/script-1.js"></script>
<script type="text/javascript" src="/static/js/script-2.js"></script>
</head>
请注意,PrettyPrinter
构造函数的第一个参数指定页面宽度,第二个参数指定缩进的空格数。
如果您只是想要快速和肮脏的东西,可以在元素之间(或之后)删除文本节点:
paths map ( jsNode(_) ) reduce (_++ Text("\n") ++ _)
但另一种解决方案几乎总是更可取。