diff options
author | David A. Madore <david+git@madore.org> | 2020-12-01 19:27:25 +0100 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2020-12-01 19:27:25 +0100 |
commit | 9159426ee11be9d363955b15e4d91f13e2595431 (patch) | |
tree | 0aa33592909c0814be89f99081f2e04dd1df64a2 /org/madore/damlengine/TodoEmailDespammedElement.java | |
parent | d2d57b5cb65061a0fcfc7c59ab592bdf99b6e13a (diff) | |
download | damlengine-9159426ee11be9d363955b15e4d91f13e2595431.tar.gz damlengine-9159426ee11be9d363955b15e4d91f13e2595431.tar.bz2 damlengine-9159426ee11be9d363955b15e4d91f13e2595431.zip |
Update handling of "despammed" email addresses.
Support a new <d:email-plus /> element, support a "nolink" attribute
on the <d:email-despammed /> element, interchange <a> and <code>
elements on output.
Diffstat (limited to 'org/madore/damlengine/TodoEmailDespammedElement.java')
-rw-r--r-- | org/madore/damlengine/TodoEmailDespammedElement.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/org/madore/damlengine/TodoEmailDespammedElement.java b/org/madore/damlengine/TodoEmailDespammedElement.java index 9d393ed..fdeb0d5 100644 --- a/org/madore/damlengine/TodoEmailDespammedElement.java +++ b/org/madore/damlengine/TodoEmailDespammedElement.java @@ -23,24 +23,36 @@ public final class TodoEmailDespammedElement extends TodoDefaultElement { @Override public void handleNodeOnly() { Element out0 = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "code"); + Element out; + if ( node.getAttributeNS(null, "nolink").equals("") ) { + out = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "a"); + out.appendChild(out0); + out.setAttributeNS(null, "class", "despammed-address"); + } else + out = out0; String lang = LangHelper.getLangNorec(node); if ( lang != null ) - LangHelper.setLangNorec(out0, lang); - Element out1 = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "a"); - out0.appendChild(out1); - out1.setAttributeNS(null, "class", "despammed-address"); + LangHelper.setLangNorec(out, lang); + { + String classAtt = node.getAttributeNS(null, "class"); + if ( ! classAtt.equals("") ) + out0.setAttributeNS(null, "class", + "despammed-email "+classAtt); + else + out0.setAttributeNS(null, "class", "despammed-email"); + } ArrayList<Node> childList = getChildList(node); ArrayList<TodoElement> toProcess = new ArrayList<TodoElement>(childList.size()+8); for ( Node child : childList ) { - out1.appendChild(child); + out.appendChild(child); if ( child.getNodeType() == Node.ELEMENT_NODE ) { TodoElement it = TodoElement.getTodoElement((Element)child, this.ctx, this); toProcess.add(it); } } - node.getParentNode().replaceChild(out0, node); + node.getParentNode().replaceChild(out, node); this.ownerDeque.registerAtStart(toProcess); } |