Commit e7f90532 by Amelin Konstantin

Rewrite render, delete tag with nested not found

parent 9872178a
...@@ -64,19 +64,35 @@ abstract class Template(protected[this] val source: Node) { ...@@ -64,19 +64,35 @@ abstract class Template(protected[this] val source: Node) {
def template: Node def template: Node
def render: Node = { def render: Node = {
val rule: RewriteRule = new RewriteRule { val rule1: RewriteRule = new RewriteRule {
override def transform(n: Node): NodeSeq = {
val children = n.child.filter {
case c: Elem => true
case _ => false
}
n match {
case v: Elem if v.attributes.isEmpty && children.nonEmpty && children.forall(_.text == msgNotFound) =>
NodeSeq.Empty
case v: Elem if v.attributes.nonEmpty && v.attributes.value.text.contains(msgNotFound) =>
v.copy(attributes = v.attributes.filter(_.value.text != msgNotFound))
case _ => n
}
}
}
val rule2: RewriteRule = new RewriteRule {
override def transform(n: Node): NodeSeq = n match { override def transform(n: Node): NodeSeq = n match {
case v if v.text == msgNotFound => case v: Elem if v.text == msgNotFound =>
NodeSeq.Empty NodeSeq.Empty
case v: Elem if v.attributes.nonEmpty && v.attributes.value.text.contains(msgNotFound) =>
v.copy(attributes = v.attributes.filter(_.value.text != msgNotFound))
case _ => n case _ => n
} }
} }
val rt = new RuleTransformer(rule) val rt1 = new RuleTransformer(rule1)
rt.transform(template).head val rt2 = new RuleTransformer(rule2)
rt2.transform(rt1.transform(template)).head
} }
def log(): Unit = data.foreach(e => println(e._2)) def log(): Unit = data.foreach(e => println(e._2))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment