summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/TodoEmailDespammedElement.java
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2020-12-01 19:27:25 +0100
committerDavid A. Madore <david+git@madore.org>2020-12-01 19:27:25 +0100
commit9159426ee11be9d363955b15e4d91f13e2595431 (patch)
tree0aa33592909c0814be89f99081f2e04dd1df64a2 /org/madore/damlengine/TodoEmailDespammedElement.java
parentd2d57b5cb65061a0fcfc7c59ab592bdf99b6e13a (diff)
downloaddamlengine-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.java24
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);
}