* Bug 14984: <imagedata>: + support id align width height style attributes 96/19396/6
Samuel GOUGEON [Sat, 19 Aug 2017 13:38:47 +0000 (15:38 +0200)]
 This is required for instance to improve palettes pages:
   http://bugzilla.scilab.org/8629
   http://bugzilla.scilab.org/14984

 Others improvements:
  - <tr>: id added (to become pointable, as <term> is already)
  - <revision> forced to valign="top" (already in CSS, but inefficient
    in help browser due to HTML4)
  - History section added to man.xml

Change-Id: Ia4705b59cc020549fde8963c1f59c153f05e965a

scilab/CHANGES.md
scilab/modules/helptools/help/en_US/man.xml
scilab/modules/helptools/src/java/org/scilab/modules/helptools/HTMLDocbookTagConverter.java

index 93fed0e..a610ba5 100644 (file)
@@ -234,6 +234,8 @@ bounds selected out of the axes areas is now restored, after the Scilab 5.4 regr
 Help pages:
 -----------
 
+* Support to `id`, `width`, `height`, `align` and `style` attributes added for the `<imagedata>` tag.
+* Support to `id` attribute added for the `<tr>` tag.
 * fixed / improved:  `members`, `part`, `ode`, `ode_optional_output`, `ode_roots`, `plot2d`, `roots`,
   `printf`, `sprintf`, `iconvert`, `stdev`, `xlabel`, `and_op`, `or_op`, `permute`, `tree2code`, `%helps`,
   `scilab|scilex`, `flipdim`, `Matplot_properties`, `meshgrid`, `ismatrix`, `xget`, `xset`, `ieee`, `evstr`,
@@ -447,6 +449,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#14922](http://bugzilla.scilab.org/show_bug.cgi?id=14922): The `%onprompt()` special function was not documented.
 * [#14925](http://bugzilla.scilab.org/show_bug.cgi?id=14925): `jdeff`: `invoke_lu()` deleted/corrupted the called java method after an error occured.
 * [#14981](http://bugzilla.scilab.org/show_bug.cgi?id=14981): Some vertical concatenations of cells and further cells extractions crash Scilab.
+* [#14984](http://bugzilla.scilab.org/show_bug.cgi?id=14984): Blocks screenshots could not be scaled nor aligned in palettes pages.
 * [#15006](http://bugzilla.scilab.org/show_bug.cgi?id=15006): `ode` help page still contained 'root' which has been replaced by 'roots'.
 * [#15008](http://bugzilla.scilab.org/show_bug.cgi?id=15008): scilab crashed when using operator AND (&, &&) or OR (| ||) with a string.
 * [#15010](http://bugzilla.scilab.org/show_bug.cgi?id=15010): Coselica did not simulate on Scilab 6.
index e081efd..4ca2334 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="man" xml:lang="en">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="man" xml:lang="en">
     <refnamediv>
         <refname>Scilab documentation format</refname>
         <refpurpose>on line help XML file description format</refpurpose>
@@ -744,7 +747,25 @@ end
             </revision>
             <revision>
                 <revnumber>6.0.0</revnumber>
-                <revdescription>Update the documentation to Docbook 5.1</revdescription>
+                <revdescription>
+                  <itemizedlist>
+                    <listitem>Documentation updated to Docbook 5.1</listitem>
+                    <listitem>&lt;td>: valign and style attributes are now supported.</listitem>
+                    <listitem>&lt;th>: align, valign and style attributes are now supported.</listitem>
+                    <listitem>&lt;tr>: valign attribute now supported.</listitem>
+                 </itemizedlist>
+                </revdescription>
+            </revision>
+            <revision>
+                <revnumber>6.0.1</revnumber>
+                <revdescription>
+                  <itemizedlist>
+                    <listitem>
+                      &lt;imagedata>: id, width, height, align and style attributes are now supported.
+                    </listitem>
+                    <listitem>&lt;tr>: id attribute now supported.</listitem>
+                  </itemizedlist>
+                </revdescription>
             </revision>
         </revhistory>
     </refsection>
index 9d0fb32..69b15a9 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2010 - Calixte DENIZET
+ * Copyright (C) 2016, 2017 - Samuel GOUGEON
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
@@ -668,15 +669,37 @@ public class HTMLDocbookTagConverter extends DocbookTagConverter implements Temp
 
     @Override
     public String generateImageCode(String fileName, Map<String, String> attrs) {
-        String alignAttr = attrs.get("align");
+        String idAttr    = attrs.get("id");
+        String alignAttr = attrs.get("align");   // mixes align and valign imagedata attributes
+        String widthAttr = attrs.get("width");
+        String heightAttr= attrs.get("height"); // officially named "depth" as imagedata attribute
+        String styleAttr = attrs.get("style");
         boolean addDiv = getGenerationType() != Backend.JAVAHELP || !isLinkedImage();
         final StringBuilder buffer = new StringBuilder(128);
         if (addDiv && alignAttr != null) {
-            buffer.append("<div style=\'text-align:").append(alignAttr).append("\'>");
+            buffer.append("<div style=\'text-align:").append(alignAttr).append("\'>\n");
         }
-        buffer.append("<img src=\'").append(fileName).append("\'/>");
+        buffer.append("<img src=\'").append(fileName).append("\' ");
+        if (!addDiv && alignAttr != null) {
+            buffer.append("align=\'").append(alignAttr).append("\' ");
+        }
+        if (idAttr != null){
+            buffer.append("id=\'").append(idAttr).append("\' ");
+        }
+        if (widthAttr != null){   // To avoid misshaping: setting width priority > setting height
+            buffer.append("width=\'").append(widthAttr).append("\' ");
+        }
+        else {
+            if (heightAttr != null) {
+                buffer.append("height=\'").append(heightAttr).append("\' ");
+            }
+        }
+        if (styleAttr != null) {
+            buffer.append("style=\'").append(styleAttr).append("\'");
+        }
+        buffer.append("/>\n");
         if (addDiv && alignAttr != null) {
-            buffer.append("</div>");
+            buffer.append("</div>\n");
         }
 
         return buffer.toString();
@@ -1510,8 +1533,9 @@ public class HTMLDocbookTagConverter extends DocbookTagConverter implements Temp
     public String handleTr(final Map<String, String> attributes, final String contents) throws SAXException {
         String bgcolor = attributes.get("bgcolor");
         String valign = attributes.get("valign");
+        String id = attributes.get("id");
 
-        return encloseContents("tr", new String[] {"bgcolor", bgcolor, "valign", valign}, contents);
+        return encloseContents("tr", new String[] {"id", id, "bgcolor", bgcolor, "valign", valign}, contents);
     }
 
     /**
@@ -1908,7 +1932,7 @@ public class HTMLDocbookTagConverter extends DocbookTagConverter implements Temp
      * @throws SAXEception if an error is encountered
      */
     public String handleRevision(final Map<String, String> attributes, final String contents) throws SAXException {
-        return encloseContents("tr", contents);
+        return encloseContents("tr", new String[] {"valign", "top"}, contents);
     }
 
     /**