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) {
def template: 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 {
case v if v.text == msgNotFound =>
case v: Elem if v.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 rt = new RuleTransformer(rule)
rt.transform(template).head
val rt1 = new RuleTransformer(rule1)
val rt2 = new RuleTransformer(rule2)
rt2.transform(rt1.transform(template)).head
}
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