summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/TodoEntryElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'org/madore/damlengine/TodoEntryElement.java')
-rw-r--r--org/madore/damlengine/TodoEntryElement.java39
1 files changed, 18 insertions, 21 deletions
diff --git a/org/madore/damlengine/TodoEntryElement.java b/org/madore/damlengine/TodoEntryElement.java
index 6ba7c5d..7a8c272 100644
--- a/org/madore/damlengine/TodoEntryElement.java
+++ b/org/madore/damlengine/TodoEntryElement.java
@@ -35,16 +35,16 @@ public final class TodoEntryElement extends TodoDefaultElement {
LangHelper.setLangNorec(article, explicitLang);
node.getParentNode().replaceChild(article, node);
- String entryNumberStr = node.getAttributeNS(null, "number");
+ final String entryNumberStr = node.getAttributeNS(null, "number");
if ( ! Pattern.matches("^\\d{4}$", entryNumberStr) )
throw new IllegalArgumentException("entry number attribute must be of the form NNNN");
- String entryDateStr = node.getAttributeNS(null, "date");
- Matcher entryDateMatcher = Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})$").matcher(entryDateStr);
+ final String entryDateStr = node.getAttributeNS(null, "date");
+ final Matcher entryDateMatcher = Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})$").matcher(entryDateStr);
if ( ! entryDateMatcher.matches() )
throw new IllegalArgumentException("entry date attribute must be of the form YYYY-MM-DD");
- String entryYearStr = entryDateMatcher.group(1);
- String entryMonthStr = entryDateMatcher.group(2);
- String entryDayStr = entryDateMatcher.group(3);
+ final String entryYearStr = entryDateMatcher.group(1);
+ final String entryMonthStr = entryDateMatcher.group(2);
+ final String entryDayStr = entryDateMatcher.group(3);
String entryDowStr = node.getAttributeNS(null, "day-of-week");
{
final int entryYear = Integer.parseInt(entryYearStr);
@@ -61,10 +61,12 @@ public final class TodoEntryElement extends TodoDefaultElement {
}
}
}
- String entryCatStr = node.getAttributeNS(null, "cat");
- String entryDoSinglePageStr = node.getAttributeNS(null, "single-page");
- String entryCdateStr = node.getAttributeNS(null, "cdate");
- ArrayList<String> entryCatList;
+ final String entryCatStr = node.getAttributeNS(null, "cat");
+ final String entryDoSinglePageStr
+ = node.hasAttributeNS(null, "single-page")
+ ? node.getAttributeNS(null, "single-page") : null;
+ final String entryCdateStr = node.getAttributeNS(null, "cdate");
+ final ArrayList<String> entryCatList;
if ( entryCatStr.equals("") ) {
entryCatList = new ArrayList<String>(0);
} else {
@@ -76,7 +78,11 @@ public final class TodoEntryElement extends TodoDefaultElement {
}
}
- String entryIdStr = "d."+entryDateStr+"."+entryNumberStr;
+ final WeblogLink lk = new WeblogLink(entryYearStr, entryMonthStr,
+ entryDayStr, entryNumberStr, "",
+ entryDoSinglePageStr);
+ lk.setTypeStandard();
+ String entryIdStr = lk.getFragment();
article.setAttributeNS(null, "id", entryIdStr);
{
String classAtt = node.getAttributeNS(null, "class");
@@ -102,16 +108,7 @@ public final class TodoEntryElement extends TodoDefaultElement {
header.appendChild(ctx.doc.createTextNode("\n"));
Element permalink = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "a");
- if ( entryDoSinglePageStr.equals("") )
- permalink.setAttributeNS(null, "href",
- entryYearStr+"-"+entryMonthStr+".html"
- +"#"+entryIdStr);
- else
- permalink.setAttributeNS(null, "href",
- entryYearStr+"-"+entryMonthStr
- +"-"+entryDayStr+"-"+entryDoSinglePageStr
- +".html"
- +"#"+entryIdStr);
+ permalink.setAttributeNS(null, "href", lk.getTarget(""));
permalink.setAttributeNS(null, "rel", "bookmark");
Element time = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "time");
permalink.appendChild(time);