commit 1176fab1d479b21a2cc0d165cf341c99ad0661c1
Author: Thibaut Cuvelier <tcuvel...@lyx.org>
Date:   Wed Nov 18 05:54:08 2020 +0100

    DocBook: make InsetText respect tag types.
---
 autotests/export/docbook/svglo.xml  |   19 ++++++++++++++-----
 development/autotests/invertedTests |    1 +
 lib/layouts/svglobal3.layout        |    3 +++
 src/insets/InsetText.cpp            |   16 ++++++++--------
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/autotests/export/docbook/svglo.xml 
b/autotests/export/docbook/svglo.xml
index 47c242a..c7d3a40 100644
--- a/autotests/export/docbook/svglo.xml
+++ b/autotests/export/docbook/svglo.xml
@@ -4,13 +4,22 @@
 <article xml:lang="en_US" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:m="http://www.w3.org/1998/Math/MathML"; 
xmlns:xi="http://www.w3.org/2001/XInclude"; version="5.2">
 <info>
 <title>Title</title>
-<subjectset role='pacs'><subject><subjectterm>PACS code1 <!-- \and  -->
+<subjectset role='pacs'>
+<subject><subjectterm>PACS code1 <!-- \and  -->
 PACS code2 <!-- \and  -->
-more</subjectterm></subject></subjectset><subjectset 
role='mcs'><subject><subjectterm>MSC code1 <!-- \and  -->
-MSC code2 <!-- \and  -->
-more</subjectterm></subject></subjectset><keywordset><keyword>First keyword 
<!-- \and  -->
+more</subjectterm></subject>
+</subjectset>
+<keywordset>
+<keyword>First keyword <!-- \and  -->
 Second keyword <!-- \and  -->
-More</keyword></keywordset><abstract>
+More</keyword>
+</keywordset>
+<subjectset role='mcs'>
+<subject><subjectterm>MSC code1 <!-- \and  -->
+MSC code2 <!-- \and  -->
+more</subjectterm></subject>
+</subjectset>
+<abstract>
 <para>Abstract text.   </para>
 </abstract>
 
diff --git a/development/autotests/invertedTests 
b/development/autotests/invertedTests
index 754bea3..fe3aad4 100644
--- a/development/autotests/invertedTests
+++ b/development/autotests/invertedTests
@@ -443,6 +443,7 @@ 
export/examples/Articles/American_Astronomical_Society_%28AASTeX_v._6.2%29_docbo
 #   - Springer. (The svmono_light should still pass.)
 export/templates/Books/Springer.*/.*_docbook5
 !export/export/docbook/svmono_light_docbook5
+!export/export/docbook/svglo_docbook5
 export/export/docbook/sv.*_docbook5
 #   - scrbook with too many customisations.
 export/templates/Theses/PhD_Thesis/.*_docbook5
diff --git a/lib/layouts/svglobal3.layout b/lib/layouts/svglobal3.layout
index 3e9503d..25d146a 100644
--- a/lib/layouts/svglobal3.layout
+++ b/lib/layouts/svglobal3.layout
@@ -74,6 +74,7 @@ InsetLayout Flex:PACS
        LabelString     "PACS"
        DocBookTag          subjectset
        DocBookAttr         role='pacs'
+       DocBookTagType      block
        DocBookItemWrapperTag      subject
        DocBookItemWrapperTagType  paragraph
        DocBookItemTag      subjectterm
@@ -89,6 +90,7 @@ InsetLayout Flex:Subclass
        LabelString     "Mathematics Subject Classification"
        DocBookTag          subjectset
        DocBookAttr         role='mcs'
+       DocBookTagType      block
        DocBookItemWrapperTag      subject
        DocBookItemWrapperTagType  paragraph
        DocBookItemTag      subjectterm
@@ -104,6 +106,7 @@ InsetLayout Flex:CRSC
        LabelString     "CR Subject Classification"
        DocBookTag          subjectset
        DocBookAttr         role='crsc'
+       DocBookTagType      block
        DocBookItemWrapperTag      subject
        DocBookItemWrapperTagType  paragraph
        DocBookItemTag      subjectterm
diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp
index d33a43b..fe3d160 100644
--- a/src/insets/InsetText.cpp
+++ b/src/insets/InsetText.cpp
@@ -625,7 +625,7 @@ void InsetText::docbook(XMLStream & xs, OutputParams const 
& rp, XHTMLOptions op
        // Start outputting this inset.
        if (opts & WriteOuterTag) {
                if (!il.docbookwrappertag().empty() && il.docbookwrappertag() 
!= "NONE" && il.docbookwrappertag() != "IGNORE")
-                       xs << xml::StartTag(il.docbookwrappertag(), 
il.docbookwrapperattr());
+                       xml::openTag(xs, il.docbookwrappertag(), 
il.docbookwrapperattr(), il.docbookwrappertagtype());
 
                if (!il.docbooktag().empty() && il.docbooktag() != "NONE" && 
il.docbooktag() != "IGNORE") {
                        docstring attrs = docstring();
@@ -633,14 +633,14 @@ void InsetText::docbook(XMLStream & xs, OutputParams 
const & rp, XHTMLOptions op
                                attrs += from_ascii(il.docbookattr());
                        if (il.docbooktag() == "link")
                                attrs += from_ascii(" xlink:href=\"") + 
text_.asString() + from_ascii("\"");
-                       xs << xml::StartTag(il.docbooktag(), attrs);
+                       xml::openTag(xs, il.docbooktag(), attrs, 
il.docbooktagtype());
                }
 
                if (!il.docbookitemwrappertag().empty() && 
il.docbookitemwrappertag() != "NONE" && il.docbookitemwrappertag() != "IGNORE")
-                       xs << xml::StartTag(il.docbookitemwrappertag(), 
il.docbookitemwrapperattr());
+                       xml::openTag(xs, il.docbookitemwrappertag(), 
il.docbookitemwrapperattr(), il.docbookitemwrappertagtype());
 
                if (!il.docbookitemtag().empty() && il.docbookitemtag() != 
"NONE" && il.docbookitemtag() != "IGNORE")
-                       xs << xml::StartTag(il.docbookitemtag(), 
il.docbookitemattr());
+                       xml::openTag(xs, il.docbookitemtag(), 
il.docbookitemattr(), il.docbookitemtagtype());
        }
 
        // No need for labels that are generated from counters. They should be 
handled by the external DocBook processor.
@@ -657,16 +657,16 @@ void InsetText::docbook(XMLStream & xs, OutputParams 
const & rp, XHTMLOptions op
 
        if (opts & WriteOuterTag) {
                if (!il.docbookitemtag().empty() && il.docbookitemtag() != 
"NONE" && il.docbookitemtag() != "IGNORE")
-                       xs << xml::EndTag(il.docbookitemtag());
+                       xml::closeTag(xs, il.docbookitemtag(), 
il.docbookitemtagtype());
 
                if (!il.docbookitemwrappertag().empty() && 
il.docbookitemwrappertag() != "NONE" && il.docbookitemwrappertag() != "IGNORE")
-                       xs << xml::EndTag(il.docbookitemwrappertag());
+                       xml::closeTag(xs, il.docbookitemwrappertag(), 
il.docbookitemwrappertagtype());
 
                if (!il.docbooktag().empty() && il.docbooktag() != "NONE" && 
il.docbooktag() != "IGNORE")
-                       xs << xml::EndTag(il.docbooktag());
+                       xml::closeTag(xs, il.docbooktag(), il.docbooktagtype());
 
                if (!il.docbookwrappertag().empty() && il.docbookwrappertag() 
!= "NONE" && il.docbookwrappertag() != "IGNORE")
-                       xs << xml::EndTag(il.docbookwrappertag());
+                       xml::closeTag(xs, il.docbookwrappertag(), 
il.docbookwrappertagtype());
        }
 }
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to