[LyX/master] Rename-XHTMLStream-to-XMLStream #3.

Pavel Sanda sanda at lyx.org
Thu Jun 18 13:54:47 UTC 2020


commit ebcaa5b1db605a3420c23a2e6b28a3b06ed4e180
Author: Pavel Sanda <sanda at lyx.org>
Date:   Thu Jun 18 15:58:48 2020 +0200

    Rename-XHTMLStream-to-XMLStream #3.
    
    Fix paragraph id in xHTML output to the pre-refactoring status.
    Tested on math manual (plus minus nonessential newlines).
    
    Slightly modified patch from Thibaut Cuvelier.
---
 src/output_xhtml.cpp |   13 +++++++++----
 src/xml.h            |    5 +----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/output_xhtml.cpp b/src/output_xhtml.cpp
index 428e6c7..3f8c0a4 100644
--- a/src/output_xhtml.cpp
+++ b/src/output_xhtml.cpp
@@ -161,15 +161,18 @@ namespace {
 // convenience functions
 
 inline void openParTag(XMLStream & xs, Layout const & lay,
-                       std::string parlabel)
+                       const std::string & parlabel)
 {
-	xs << xml::ParTag(lay.htmltag(), lay.htmlattr(), parlabel);
+	string attrs = lay.htmlattr();
+	if (!parlabel.empty())
+		attrs += " id='" + parlabel + "'";
+	xs << xml::ParTag(lay.htmltag(), attrs);
 }
 
 
 void openParTag(XMLStream & xs, Layout const & lay,
                 ParagraphParameters const & params,
-                std::string parlabel)
+                const std::string & parlabel)
 {
 	// FIXME Are there other things we should handle here?
 	string const align = alignmentToCSS(params.align());
@@ -178,7 +181,9 @@ void openParTag(XMLStream & xs, Layout const & lay,
 		return;
 	}
 	string attrs = lay.htmlattr() + " style='text-align: " + align + ";'";
-	xs << xml::ParTag(lay.htmltag(), attrs, parlabel);
+	if (!parlabel.empty())
+		attrs += " id='" + parlabel + "'";
+	xs << xml::ParTag(lay.htmltag(), attrs);
 }
 
 
diff --git a/src/xml.h b/src/xml.h
index 45fb52f..b4339ba 100644
--- a/src/xml.h
+++ b/src/xml.h
@@ -247,15 +247,12 @@ struct CompTag
 
 
 /// A special case of StartTag, used exclusively for tags that wrap paragraphs.
-/// parid is only used for HTML output; XML is supposed to use attr for this. TODO: REMOVE PARID.
+/// parid is only used for HTML output; XML is supposed to use attr for this.
 struct ParTag : public StartTag
 {
     ///
     explicit ParTag(std::string const & tag, const std::string & attr): StartTag(tag, from_utf8(attr)) {}
     ///
-    explicit ParTag(std::string const & tag, const std::string & attr, const std::string & parid):
-            StartTag(tag, from_utf8(attr + (parid.empty() ? (" id='" + parid + "'") : ""))) {}
-    ///
     ~ParTag() {}
 };
 


More information about the lyx-cvs mailing list