X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDbkTextInterpreter.java;h=eafddd9243dddb232afaa4b5b44a0d2f6028358a;hb=44909f08709dd0bde1284e203a2495f03a613ed8;hp=25056efb7bd5e03b65e43431565583ba56893f54;hpb=7b6b34f956c231ec4dc7aab0acf85c6e7b592e39;p=gpl%2Fargeo-suite.git diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java index 25056ef..eafddd9 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkTextInterpreter.java @@ -1,5 +1,9 @@ package org.argeo.docbook.ui; +import static org.argeo.docbook.DbkUtils.isDbk; +import static org.argeo.docbook.DbkType.para; +import static org.argeo.docbook.DbkType.title; + import java.io.IOException; import java.io.StringReader; import java.util.List; @@ -23,7 +27,7 @@ public class DbkTextInterpreter implements TextInterpreter { try { if (item instanceof Node) { Node node = (Node) item; - if (node.isNodeType(DocBookTypes.PARA) || node.isNodeType(DocBookTypes.TITLE)) { + if (isDbk(node, para) || isDbk(node, title)) { String raw = convertToStorage(node, content); validateBeforeStoring(raw); Node jcrText; @@ -61,7 +65,7 @@ public class DbkTextInterpreter implements TextInterpreter { item.getSession().refresh(true); if (item instanceof Node) { Node node = (Node) item; - if (node.isNodeType(DocBookTypes.PARA) || node.isNodeType(DocBookTypes.TITLE)) { + if (isDbk(node, para) || isDbk(node, title)) { Node jcrText = node.getNode(Jcr.JCR_XMLTEXT); String txt = jcrText.getProperty(Jcr.JCR_XMLCHARACTERS).getString(); // TODO make it more robust @@ -84,6 +88,22 @@ public class DbkTextInterpreter implements TextInterpreter { public String readSimpleHtml(Item item) { String raw = raw(item); + // FIXME the saved data should be corrected instead. + if (raw.indexOf('&') >= 0) { + raw = raw.replace("&", "&"); + } + if (raw.indexOf('<') >= 0) { + raw = raw.replace("<", "<"); + } + if (raw.indexOf('>') >= 0) { + raw = raw.replace(">", ">"); + } + if (raw.indexOf('\"') >= 0) { + raw = raw.replace("\"", """); + } + if (raw.indexOf('\'') >= 0) { + raw = raw.replace("\'", "'"); + } // raw = "" + raw + ""; if (raw.length() == 0) return raw;