Helptools: handle refsectX for sub-sections 59/17859/2
Clément DAVID [Fri, 4 Mar 2016 14:36:00 +0000 (15:36 +0100)]
Change-Id: I42bcff874ee95e485baaae8dcf8788b859ad5a7e

scilab/modules/helptools/data/css/style.css
scilab/modules/helptools/src/java/org/scilab/modules/helptools/DocbookTagConverter.java
scilab/modules/helptools/src/java/org/scilab/modules/helptools/HTMLDocbookLinkResolver.java
scilab/modules/helptools/src/java/org/scilab/modules/helptools/HTMLDocbookTagConverter.java

index 0fe8923..961dcc4 100644 (file)
@@ -42,6 +42,20 @@ h3 {
     margin-bottom: 10px;
 }
 
+h4 {
+    color: #000063;
+    font-weight: bold;
+    font-size:120%;
+    margin-bottom: 5px;
+}
+
+h5 {
+    color: #000063;
+    font-weight: bold;
+    font-size:110%;
+    margin-bottom: 1px;
+}
+
 .programlisting {
     font-family: monospace;
     font-size: 100%;
@@ -347,4 +361,4 @@ table.revhistory
 table.revhistory tr.title td
 { 
   background-color: #9999CC;
-}
\ No newline at end of file
+}
index 70f7866..fceb12f 100644 (file)
@@ -637,6 +637,9 @@ public abstract class DocbookTagConverter extends DefaultHandler implements Conv
     public abstract String handleRefname(final Map<String, String> attributes, final String contents) throws SAXException;
     public abstract String handleRefpurpose(final Map<String, String> attributes, final String contents) throws SAXException;
     public abstract String handleRefsection(final Map<String, String> attributes, final String contents) throws SAXException;
+    public abstract String handleRefsect1(final Map<String, String> attributes, final String contents) throws SAXException;
+    public abstract String handleRefsect2(final Map<String, String> attributes, final String contents) throws SAXException;
+    public abstract String handleRefsect3(final Map<String, String> attributes, final String contents) throws SAXException;
     public abstract String handleRefsynopsisdiv(final Map<String, String> attributes, final String contents) throws SAXException;
     public abstract String handleReplaceable(final Map<String, String> attributes, final String contents) throws SAXException;
     public abstract String handleRevdescription(final Map<String, String> attributes, final String contents) throws SAXException;
index 3c9304f..0f54eed 100644 (file)
@@ -43,13 +43,13 @@ public class HTMLDocbookLinkResolver extends DefaultHandler {
 
     private static boolean isCaseInsensitiveOS = System.getProperty("os.name").toLowerCase().contains("windows");
 
-    private Map<String, String> mapId = new LinkedHashMap<String, String>();
-    private List<String> listIdIgnoreCase = new ArrayList<String>();
-    private Map<String, String> toc = new LinkedHashMap<String, String>();
-    private Map<String, String> mapIdPurpose = new LinkedHashMap<String, String>();
-    private Map<String, String> mapIdRefname = new LinkedHashMap<String, String>();
-    private Map<String, TreeId> mapTreeId = new HashMap<String, TreeId>();
-    private Map<String, String> mapIdDeclaringFile = new HashMap<String, String>();
+    private Map<String, String> mapId = new LinkedHashMap<>();
+    private List<String> listIdIgnoreCase = new ArrayList<>();
+    private Map<String, String> toc = new LinkedHashMap<>();
+    private Map<String, String> mapIdPurpose = new LinkedHashMap<>();
+    private Map<String, String> mapIdRefname = new LinkedHashMap<>();
+    private Map<String, TreeId> mapTreeId = new HashMap<>();
+    private Map<String, String> mapIdDeclaringFile = new HashMap<>();
     private TreeId tree = new TreeId(null, "root");
 
     private TreeId currentLeaf = tree;
@@ -327,7 +327,7 @@ public class HTMLDocbookLinkResolver extends DefaultHandler {
         return "No id attribute in <refentry> or <refnamediv> in file " + str + " at line " + locator.getLineNumber();
     }
 
-    class TreeId {
+    public class TreeId {
 
         String id;
         TreeId parent;
@@ -345,7 +345,7 @@ public class HTMLDocbookLinkResolver extends DefaultHandler {
 
         void add(TreeId child) {
             if (children == null) {
-                children = new ArrayList<TreeId>();
+                children = new ArrayList<>();
             }
             child.pos = children.size();
             children.add(child);
index edb0c10..d45105b 100644 (file)
@@ -821,6 +821,12 @@ public class HTMLDocbookTagConverter extends DocbookTagConverter implements Temp
         } else if (parent.equals("refsection") && Pattern.matches("^[ \\t]*ex[ea]mpl[eo].*", contents.toLowerCase())) {
             hasExamples = true;
             return encloseContents("h3", clazz, contents);
+        } else if (parent.equals("refsect1")) {
+            return encloseContents("h3", clazz, contents);
+        } else if (parent.equals("refsect2")) {
+            return encloseContents("h4", clazz, contents);
+        } else if (parent.equals("refsect3")) {
+            return encloseContents("h5", clazz, contents);
         } else {
             return encloseContents("h3", clazz, contents);
         }
@@ -1039,6 +1045,54 @@ public class HTMLDocbookTagConverter extends DocbookTagConverter implements Temp
     }
 
     /**
+     * Handle a refsect1
+     * @param attributes the tag attributes
+     * @param contents the tag contents
+     * @return the HTML code
+     * @throws SAXEception if an error is encountered
+     */
+    public String handleRefsect1(final Map<String, String> attributes, final String contents) throws SAXException {
+        String id = attributes.get("id");
+        if (id != null) {
+            return "<a name=\"" + id + "\"></a>" + encloseContents("div", "refsect1", contents);
+        } else {
+            return encloseContents("div", "refsect1", contents);
+        }
+    }
+
+    /**
+     * Handle a refsect2
+     * @param attributes the tag attributes
+     * @param contents the tag contents
+     * @return the HTML code
+     * @throws SAXEception if an error is encountered
+     */
+    public String handleRefsect2(final Map<String, String> attributes, final String contents) throws SAXException {
+        String id = attributes.get("id");
+        if (id != null) {
+            return "<a name=\"" + id + "\"></a>" + encloseContents("div", "refsect2", contents);
+        } else {
+            return encloseContents("div", "refsect2", contents);
+        }
+    }
+
+    /**
+     * Handle a refsect3
+     * @param attributes the tag attributes
+     * @param contents the tag contents
+     * @return the HTML code
+     * @throws SAXEception if an error is encountered
+     */
+    public String handleRefsect3(final Map<String, String> attributes, final String contents) throws SAXException {
+        String id = attributes.get("id");
+        if (id != null) {
+            return "<a name=\"" + id + "\"></a>" + encloseContents("div", "refsect3", contents);
+        } else {
+            return encloseContents("div", "refsect3", contents);
+        }
+    }
+
+    /**
      * Handle an anchor
      * @param attributes the tag attributes
      * @param contents the tag contents