From 5d04d7e32ab93c6b3c3ec7e3698f0a41b55fa4cb Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Wed, 7 Sep 2011 18:24:44 +0200 Subject: Also use HTML5 elements (article, header, footer) for weblog entries. --- org/madore/damlengine/TodoEntryTitleElement.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'org/madore/damlengine/TodoEntryTitleElement.java') diff --git a/org/madore/damlengine/TodoEntryTitleElement.java b/org/madore/damlengine/TodoEntryTitleElement.java index e5da837..6a17a24 100644 --- a/org/madore/damlengine/TodoEntryTitleElement.java +++ b/org/madore/damlengine/TodoEntryTitleElement.java @@ -1,6 +1,7 @@ package org.madore.damlengine; import java.util.ArrayList; +import java.util.regex.Pattern; import org.w3c.dom.*; public final class TodoEntryTitleElement extends TodoDefaultElement { @@ -22,11 +23,19 @@ public final class TodoEntryTitleElement extends TodoDefaultElement { @Override public void handleNodeOnly() { + if ( ctx.ent == null ) + throw new IllegalStateException("entry context not defined in entry title element"); Element h2 = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "h2"); String explicitLang = LangHelper.getLangNorec(node); if ( explicitLang != null ) LangHelper.setLangNorec(h2, explicitLang); - node.getParentNode().replaceChild(h2, node); + ctx.ent.headerNode.appendChild(h2); + Node ws = node.getNextSibling(); + if ( ws != null && ( ws.getNodeType() == Node.TEXT_NODE + || ws.getNodeType() == Node.CDATA_SECTION_NODE ) + && Pattern.matches("^\\s*$",((CharacterData)ws).getData()) ) + node.getParentNode().removeChild(ws); + node.getParentNode().removeChild(node); h2.setAttributeNS(null, "class", "weblog-entry-title"); ArrayList childList = getChildList(this.node); ArrayList toProcess = new ArrayList(childList.size()); -- cgit v1.2.3