commit dd7863b6ac70d3d1e6298306dab6c3b7235c9e99
Author: Richard Heck <[email protected]>
Date: Sat Jul 30 01:29:06 2016 -0400
Fix thinko from earlier commit.
We need to output the deferred material AFTER the paragraph is closed.
---
lib/layouts/stdinsets.inc | 4 +++-
src/insets/InsetCaption.cpp | 14 +++++++++-----
src/insets/InsetFloat.cpp | 2 +-
src/insets/InsetText.cpp | 8 ++++----
src/output_xhtml.cpp | 7 ++++---
5 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/lib/layouts/stdinsets.inc b/lib/layouts/stdinsets.inc
index a40572f..3f6a4a6 100644
--- a/lib/layouts/stdinsets.inc
+++ b/lib/layouts/stdinsets.inc
@@ -556,13 +556,14 @@ InsetLayout Caption:Standard
LabelString standard
LaTeXType command
LatexName caption
- NeedProtect 1
+ NeedProtect 1
MultiPar false
Argument 1
LabelString "Short Title|S"
Tooltip "The caption as it appears in the list of
figures/tables"
InsertCotext 1
EndArgument
+ HTMLTag div
HTMLStyle
div.float-caption {
text-align: center;
@@ -580,6 +581,7 @@ InsetLayout Caption:Unnumbered
LabelString unlabelled
LatexName caption*
ResetArgs 1
+ HTMLAttr "class='float-caption float-caption-unnumbered'"
End
diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp
index 613249b..149a40c 100644
--- a/src/insets/InsetCaption.cpp
+++ b/src/insets/InsetCaption.cpp
@@ -293,7 +293,7 @@ int InsetCaption::docbook(odocstream & os,
}
-docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const
+docstring InsetCaption::xhtml(XHTMLStream &, OutputParams const & rp) const
{
if (rp.html_disable_captions)
return docstring();
@@ -308,10 +308,14 @@ docstring InsetCaption::xhtml(XHTMLStream & xs,
OutputParams const & rp) const
else
attr = attr + " class='" + our_class + "'";
}
- xs << html::StartTag(tag, attr);
- docstring def = getCaptionAsHTML(xs, rp);
- xs << html::EndTag(tag);
- return def;
+ odocstringstream ods;
+ XHTMLStream ourxs(ods);
+ ourxs << html::StartTag(tag, attr) << html::CR();
+ docstring def = getCaptionAsHTML(ourxs, rp);
+ ourxs << html::EndTag(tag) << html::CR();
+ if (!def.empty())
+ return ods.str() + "\n" + def;
+ return ods.str();
}
diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp
index e1538e2..fa79c52 100644
--- a/src/insets/InsetFloat.cpp
+++ b/src/insets/InsetFloat.cpp
@@ -300,7 +300,7 @@ docstring InsetFloat::xhtml(XHTMLStream & xs, OutputParams
const & rp) const
odocstringstream ods;
XHTMLStream newxs(ods);
- newxs << html::StartTag(htmltype, attr);
+ newxs << html::StartTag(htmltype, attr) << html::CR();
InsetText::XHTMLOptions const opts =
InsetText::WriteLabel | InsetText::WriteInnerTag;
docstring deferred = InsetText::insetAsXHTML(newxs, rp, opts);
diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp
index df4f6e2..0bc38a3 100644
--- a/src/insets/InsetText.cpp
+++ b/src/insets/InsetText.cpp
@@ -621,7 +621,7 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs,
OutputParams const & rp,
InsetLayout const & il = getLayout();
if (opts & WriteOuterTag)
- xs << html::StartTag(il.htmltag(), il.htmlattr());
+ xs << html::StartTag(il.htmltag(), il.htmlattr()) << html::CR();
if ((opts & WriteLabel) && !il.counter().empty()) {
BufferParams const & bp = buffer().masterBuffer()->params();
@@ -633,9 +633,9 @@ docstring InsetText::insetAsXHTML(XHTMLStream & xs,
OutputParams const & rp,
cntrs.counterLabel(from_utf8(il.htmllabel()),
bp.language->code());
// FIXME is this check necessary?
if (!lbl.empty()) {
- xs << html::StartTag(il.htmllabeltag(),
il.htmllabelattr());
- xs << lbl;
- xs << html::EndTag(il.htmllabeltag());
+ xs << html::StartTag(il.htmllabeltag(),
il.htmllabelattr())
+ << lbl
+ << html::EndTag(il.htmllabeltag());
}
}
}
diff --git a/src/output_xhtml.cpp b/src/output_xhtml.cpp
index 585ee2c..1dd4ef1 100644
--- a/src/output_xhtml.cpp
+++ b/src/output_xhtml.cpp
@@ -878,13 +878,14 @@ ParagraphList::const_iterator makeParagraphs(Buffer const
& buf,
runparams, text.outerFont(distance(begin, par)),
open_par, close_par);
- if (!deferred.empty()) {
- xs << XHTMLStream::ESCAPE_NONE << deferred <<
html::CR();
- }
if (close_par) {
closeTag(xs, lay);
xs << html::CR();
}
+
+ if (!deferred.empty()) {
+ xs << XHTMLStream::ESCAPE_NONE << deferred <<
html::CR();
+ }
}
return pend;
}