作爲替代方案,如果你需要更多的轉換*,你可以用這個啓動。它也將與嵌套的<a/>
標籤一起工作,無論這種標籤如何可能。
代碼中有一些需要轉義處理的地方。例如。一些字符以XML格式轉義,而這些字符在Latex中不會轉義,反之亦然。隨意添加此。
import xml._
val input = <p>And now try it on a <a href="link1">text</a> with <a href="link2">two urls</a></p>
def mkURL(meta: MetaData, text: String) = {
val url = meta.asAttrMap.get("href")
"\\url{%s}{%s}".format(url getOrElse "", text)
}
def transform(xhtml: NodeSeq): String = {
xhtml.map { node =>
node match {
case Node("p", _, [email protected]_*) => transform(ch)
case Node("a", meta, [email protected]_*) => mkURL(meta, transform(ch))
case x => x.toString
}
} mkString
}
println(transform(input))
// And now try it on a \url{link1}{text} with \url{link2}{two urls}
[*]增加對\emph
支持會是這樣的
case Node("em", _, [email protected]_*) => transform(ch).mkString("\\emph{", "", "}")
'
'應該段落 – 2010-11-19 05:17:25