X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDbkTextInterpreter.java;h=c853535440d03f758cccc12f1c0f73cf96afd032;hp=17810505057b5c4b1a077c86a1bbe1783c57ae28;hb=a23c1999af7205c71e253d4b698a37c267944ea8;hpb=2c7baf5cc1437770abc7df32e29e3c9ca29b7132 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 1781050..c853535 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 @@ -7,11 +7,9 @@ import static org.argeo.docbook.DbkUtils.isDbk; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.Reader; import java.io.StringReader; import java.nio.charset.StandardCharsets; import java.util.List; -import java.util.UUID; import javax.jcr.ImportUUIDBehavior; import javax.jcr.Item; @@ -20,27 +18,20 @@ import javax.jcr.NodeIterator; import javax.jcr.Property; import javax.jcr.PropertyIterator; import javax.jcr.RepositoryException; -import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; import org.apache.commons.io.IOUtils; -import org.argeo.cms.text.TextInterpreter; import org.argeo.docbook.DbkAttr; import org.argeo.docbook.DbkType; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; -import org.argeo.jcr.JcrxType; -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; /** Based on HTML with a few Wiki-like shortcuts. */ public class DbkTextInterpreter implements TextInterpreter { private DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + private String linkCssClass = DbkType.link.name(); + @Override public void write(Item item, String content) { try { @@ -208,7 +199,9 @@ public class DbkTextInterpreter implements TextInterpreter { } else if (child.getName().equals(DbkType.link.get())) { if (child.hasProperty(DbkAttr.XLINK_HREF)) { String href = child.getProperty(DbkAttr.XLINK_HREF).getString(); - sb.append(""); + // TODO deal with other forbidden XML characters? + href = href.replace("&", "&"); + sb.append(""); readAsSimpleHtml(child, sb); sb.append(""); } @@ -259,7 +252,10 @@ public class DbkTextInterpreter implements TextInterpreter { public String readSimpleHtml(Item item) { try { StringBuilder sb = new StringBuilder(); +// sb.append("
"); readAsSimpleHtml((Node) item, sb); +// sb.append("
"); +// System.out.println(sb); return sb.toString(); } catch (RepositoryException e) { throw new JcrException("Cannot convert " + item + " to simple HTML", e);