]> git.lyx.org Git - lyx.git/commitdiff
DocBook: make InsetText respect tag types.
authorThibaut Cuvelier <tcuvelier@lyx.org>
Wed, 18 Nov 2020 04:54:08 +0000 (05:54 +0100)
committerThibaut Cuvelier <tcuvelier@lyx.org>
Fri, 20 Nov 2020 17:41:03 +0000 (18:41 +0100)
autotests/export/docbook/svglo.xml
development/autotests/invertedTests
lib/layouts/svglobal3.layout
src/insets/InsetText.cpp

index 47c242a877a8660e176e27b3f0f1e646c6050fd4..c7d3a4071b5f51d8b78444ba16709dce1063d896 100644 (file)
@@ -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>
 
index 754bea361d631ba53d504825fe87557102a1e053..fe3aad4533cf211cdc3fea1ede7a97f14d316191 100644 (file)
@@ -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
index 3e9503d3b37be3a4c918932ded4d8dc450b52b92..25d146a3a385ee6eead22a7f095f283357cb2ca1 100644 (file)
@@ -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
index d33a43bcbea80a15fe135613a15fa06ee4cbf033..fe3d1607106ba7326bf33fed71f4c7cdeb890929 100644 (file)
@@ -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());
        }
 }