def blankTextNodesRemoved()

in src/main/scala/managehelpcontentpublisher/HtmlToJson.scala [54:68]


  def blankTextNodesRemoved(e: Element): Element = {

    def go(acc: Set[TextNode])(curr: Node): Set[TextNode] =
      curr match {
        case t: TextNode if t.isBlank => acc + t
        case _: TextNode              => acc
        case e: Element =>
          e.childNodes.asScala.flatMap(go(acc)).toSet
      }

    val cleaned = e.clone()
    val blankText = go(Set.empty)(cleaned)
    blankText.foreach(_.remove())
    cleaned
  }