diff options
author | Olivier Hallot <olivier.hallot@libreoffice.org> | 2018-11-16 10:00:39 -0200 |
---|---|---|
committer | Olivier Hallot <olivier.hallot@libreoffice.org> | 2018-11-28 10:53:51 +0100 |
commit | 49baef5df55850a72b9385f7ec2b9eb98486e48a (patch) | |
tree | 6b93f9c4a1ea4116a125f9b2f90d8321494206ee | |
parent | 949606895b8d46fb97b0bfcda25cfb04f1f61e32 (diff) |
tdf#121797 XHP extensions (Help part)
WIP. This is the Help part.
Extend the XML parser to include new incantations of the <paragraph>
tag, namely
<h1> to <h6>
<note>, <tip> and <warning>
Extension to the <item> tag:
<menuitem>, <input>, <literal>, <widget> and <keycode>
* removed test files
Change-Id: I2a473ee8772606f5e84bb02e651bccc6749598f4
Reviewed-on: https://gerrit.libreoffice.org/63954
Tested-by: Jenkins
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
-rw-r--r-- | help3xsl/default.css | 17 | ||||
-rw-r--r-- | help3xsl/online_transform.xsl | 59 | ||||
-rw-r--r-- | helpers/xmlhelp.dtd | 65 |
3 files changed, 130 insertions, 11 deletions
diff --git a/help3xsl/default.css b/help3xsl/default.css index e6a59ad8b8..285d1e9002 100644 --- a/help3xsl/default.css +++ b/help3xsl/default.css @@ -124,10 +124,23 @@ pre, border-top: 1px solid black; } .emph, -.menuitem, -.keycode { +.menuitem { font-weight: bold; } +.keycode { + /*font-weight: bold;*/ + font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace; +} +.widget{ + padding: 1px 10px; + background: #f0f0f0; + background: linear-gradient(to bottom,#f0f0f0,#fcfcfc); + border-radius: 3px; + color: #303030; + border: 1px solid #a0a0a0; + border-bottom-width: 2px; + white-space: nowrap; +} /* div's for warning, tip and note */ .note, .tip, diff --git a/help3xsl/online_transform.xsl b/help3xsl/online_transform.xsl index 95892bdd4c..59eb5120a8 100644 --- a/help3xsl/online_transform.xsl +++ b/help3xsl/online_transform.xsl @@ -800,6 +800,65 @@ </xsl:call-template> </xsl:template> +<!-- XHP extensions (2018) --> +<!-- H1-H6 --> +<xsl:template match="h1 | h2 | h3 | h4 | h5 | h6"> + <xsl:element name="{local-name()}"> + <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute><xsl:apply-templates /> + </xsl:element> +</xsl:template> +<xsl:template match="h1 | h2 | h3 | h4 | h5 | h6" mode="embedded"> + <xsl:element name="{concat('h',substring-after(local-name(),'h') + 1)}"> + <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute><xsl:apply-templates mode="embedded"/> + </xsl:element> +</xsl:template> + +<!-- INPUT --> +<xsl:template match="input"> + <span class="input" data-tooltip="{$ui_copyclip}"><xsl:apply-templates /></span> +</xsl:template> +<xsl:template match="input" mode="embedded"> + <span class="input" data-tooltip="{$ui_copyclip}"><xsl:apply-templates mode="embedded"/></span> +</xsl:template> + +<!--MENUITEM, KEYCODE, LITERAL, WIDGET--> +<xsl:template match="menuitem | keycode | literal | widget"> + <span class="{local-name()}"><xsl:apply-templates /></span> +</xsl:template> +<xsl:template match="menuitem | input | keycode | literal" mode="embedded"> + <span class="{local-name()}"><xsl:apply-templates mode="embedded"/></span> +</xsl:template> + +<!--NOTE TIP AND WARNING--> +<xsl:template match="tip | note | warning"> + <xsl:variable name="imgsrc"> + <xsl:choose> + <xsl:when test="local-name()='note'"><xsl:value-of select="$note_img"/></xsl:when> + <xsl:when test="local-name()='tip'"><xsl:value-of select="$tip_img"/></xsl:when> + <xsl:when test="local-name()='warning'"><xsl:value-of select="$warning_img"/></xsl:when> + </xsl:choose> + </xsl:variable> + <div class="{local-name()}"> + <div class="noteicon"><img src="{$imgsrc}" alt="{local-name()}" title="{local-name()}"/></div> + <div class="notetext"><p id="{@id}"><xsl:apply-templates /></p></div> + </div> + <br/> +</xsl:template> +<xsl:template match="tip | note | warning" mode="embedded"> + <xsl:variable name="imgsrc"> + <xsl:choose> + <xsl:when test="local-name()='note'"><xsl:value-of select="$note_img"/></xsl:when> + <xsl:when test="local-name()='tip'"><xsl:value-of select="$tip_img"/></xsl:when> + <xsl:when test="local-name()='warning'"><xsl:value-of select="$warning_img"/></xsl:when> + </xsl:choose> + </xsl:variable> + <div class="{local-name()}"> + <div class="noteicon"><img src="{$imgsrc}" alt="{local-name()}" title="{local-name()}"/></div> + <div class="notetext"><p id="{@id}"><xsl:apply-templates mode="embedded"/></p></div> + </div> + <br/> +</xsl:template> + <!-- In case of missing help files --> <xsl:template match="help-id-missing"><xsl:value-of select="$Id"/></xsl:template> diff --git a/helpers/xmlhelp.dtd b/helpers/xmlhelp.dtd index d6564f5f4e..20dbe802db 100644 --- a/helpers/xmlhelp.dtd +++ b/helpers/xmlhelp.dtd @@ -21,6 +21,9 @@ Version 03-Feb-2006 Version 06-Jun-2017 Made xml-lang optional (#IMPLIED) + +Version Nov 2018 + Added extensions: H1, .. H6, menuitem, keycode, literal input, widget, note, tip, warning --> <!ELEMENT ahelp (#PCDATA | embedvar | br | comment | emph | sub | sup | item | link | switchinline | variable)*> @@ -38,7 +41,7 @@ Version 06-Jun-2017 <!ELEMENT bascode (paragraph+)> -<!ELEMENT body (section | paragraph | table | comment | bookmark | switch | embed | list | sort | bascode)*> +<!ELEMENT body (h1 | h2 | h3 | h4 | h5 | h6 | section | paragraph | table | comment | bookmark | switch | embed | list | sort | bascode | note | warning |tip)*> <!ELEMENT bookmark (bookmark_value)*> <!ATTLIST bookmark @@ -59,12 +62,12 @@ Version 06-Jun-2017 localize CDATA #IMPLIED > -<!ELEMENT case (paragraph | table | comment | bookmark | embed | link | list | switch | section | sort | bascode)*> +<!ELEMENT case (h1 | h2 | h3 | h4 | h5 | h6 | note | warning |tip | paragraph | table | comment | bookmark | embed | link | list | switch | section | sort | bascode)*> <!ATTLIST case select CDATA #REQUIRED > -<!ELEMENT caseinline (#PCDATA | image | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object)*> +<!ELEMENT caseinline (#PCDATA | image | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object | keycode | menuitem | input | literal | widget)*> <!ATTLIST caseinline select CDATA #REQUIRED > @@ -76,9 +79,9 @@ Version 06-Jun-2017 date CDATA #REQUIRED > -<!ELEMENT default (paragraph | table | comment | bookmark | embed | link | list | switch | section | sort | bascode)*> +<!ELEMENT default (h1 | h2 | h3 | h4 | h5 | h6 | note | warning |tip | paragraph | table | comment | bookmark | embed | link | list | switch | section | sort | bascode)*> -<!ELEMENT defaultinline (#PCDATA | image | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object)*> +<!ELEMENT defaultinline (#PCDATA | image | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object | keycode | menuitem | input | literal | widget)*> <!ELEMENT embed EMPTY> <!ATTLIST embed @@ -95,12 +98,46 @@ Version 06-Jun-2017 <!ELEMENT emph (#PCDATA | item | comment | help-id-missing)*> +<!ELEMENT menuitem (#PCDATA)> + +<!ELEMENT keycode (#PCDATA)> + +<!ELEMENT input (#PCDATA)> + +<!ELEMENT literal (#PCDATA)> + +<!ELEMENT widget (#PCDATA)> + <!ELEMENT sub (#PCDATA | item | comment | help-id-missing)*> <!ELEMENT sup (#PCDATA | item | comment | help-id-missing)*> <!ELEMENT filename (#PCDATA)> +<!ELEMENT h1 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h1 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT h2 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h2 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT h3 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h3 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT h4 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h4 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT h5 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h5 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT h6 (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST h6 id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + <!ELEMENT helpdocument (meta, body)> <!ATTLIST helpdocument version CDATA #REQUIRED @@ -122,7 +159,7 @@ Version 06-Jun-2017 type CDATA #REQUIRED > -<!ELEMENT link (#PCDATA | embedvar | emph | sub | sup | item | variable | switchinline)*> +<!ELEMENT link (#PCDATA | embedvar | emph | sub | sup | item | variable | switchinline | keycode | menuitem | input | literal | widget)*> <!ATTLIST link href CDATA #REQUIRED name CDATA #IMPLIED @@ -157,7 +194,7 @@ Version 06-Jun-2017 width CDATA #IMPLIED > -<!ELEMENT paragraph (#PCDATA | image | comment | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object | bookmark | help-id-missing)*> +<!ELEMENT paragraph (#PCDATA | image | comment | embedvar | br | emph | sub | sup | item | link | switchinline | variable | ahelp | object | bookmark | menuitem | input | keycode | literal | widget | help-id-missing)*> <!ATTLIST paragraph role CDATA #REQUIRED level CDATA #IMPLIED @@ -168,7 +205,7 @@ Version 06-Jun-2017 localize CDATA #IMPLIED > -<!ELEMENT section (section | paragraph | table | list | comment | bookmark | embed | switch | sort | bascode)*> +<!ELEMENT section (section | h1 | h2 | h3 | h4 | h5 | h6 | paragraph | table | list | comment | bookmark | embed | switch | sort | bascode | note |warning | tip)*> <!ATTLIST section id CDATA #REQUIRED > @@ -228,10 +265,20 @@ Version 06-Jun-2017 status (DRAFT | FINAL | PUBLISH | STALLED | DEPRECATED) #IMPLIED > -<!ELEMENT variable (#PCDATA | ahelp | embedvar | br | emph | sub | sup | item | link | variable | image | object | switchinline)*> +<!ELEMENT variable (#PCDATA | ahelp | embedvar | br | emph | sub | sup | item | link | variable | image | object | switchinline | keycode | menuitem | input | literal | widget)*> <!ATTLIST variable id CDATA #REQUIRED visibility (hidden | visible) #IMPLIED > +<!ELEMENT note (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST note id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> +<!ELEMENT tip (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST tip id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> + +<!ELEMENT warning (#PCDATA | comment | embedvar | br | emph | item | link | switchinline | variable | ahelp | bookmark | keycode | menuitem | input | literal | widget)*> +<!ATTLIST warning id CDATA #REQUIRED xml-lang CDATA #IMPLIED localize CDATA #IMPLIED +> <!ELEMENT help-id-missing EMPTY> |