<p>, in violation of the DTD. I guess we could close the paragraph and then do
the <hr />, but isn't there a better solution? There's actually a LyX bug here,
I think, since a line surely ought not appear in a normal paragraph?
-* The same issue arises with InsetVSpace, unsurprisingly.
+* The same issue arises with InsetVSpace, unsurprisingly. And also with the inline
+ version of InsetListings.
+* One option here, actually, would be to use just <div> and never use <p>, setting
+ the spacing and such via CSS.
* The code that manages the nesting of tags is pretty primitive. It needs a lot
of work.
These insets are basically done, though there are probably issues here and there,
and there are even some FIXMEs:
Bibitem, Branch, Caption, Collapsable, Footnote, Hyperlink, Info, Label, Line,
- Marginal, Note, Newline, Newpage, Quotes, Space, SpecialChar, Wrap
+ Listings, Marginal, Note, Newline, Newpage, Quotes, Space, SpecialChar, Wrap
These insets do nothing for XHTML:
ERT, OptArg, Phantom
InsetInclude: I think we just want to include it, straightforwardly. Probably will
base this more on the latex() routine, then. Another possibility, maybe with a
flag of some sort, would be to do it as a separate file, to which we link.
- InsetListings: Probably just output it as <pre>.
InsetRef: Presumably, this is an internal link. But what should the text be, and how
should we get it? Probably some validation thing again, where labels tell us where
they are. Alternatively, we could parse the aux file.
// NOTE: I use {} to quote text, which is an experimental feature
// of the listings package (see page 25 of the manual)
int lines = 0;
- bool isInline = params().isInline();
+ bool const isInline = params().isInline();
// get the paragraphs. We can not output them directly to given odocstream
// because we can not yet determine the delimiter character of \lstinline
docstring code;
}
+docstring InsetListings::xhtml(odocstream & os, OutputParams const & rp) const
+{
+ odocstringstream out;
+
+ bool const isInline = params().isInline();
+ if (isInline)
+ out << "<br />\n";
+ else {
+ out << "<div class='float float-listings'>\n";
+ docstring caption = getCaptionHTML(rp);
+ if (!caption.empty())
+ out << "<div class='float-caption'>" << caption << "</div>\n";
+ }
+
+ out << "<pre>\n";
+ docstring def = InsetText::xhtml(out, rp);
+ out << "\n</pre>\n";
+
+ if (isInline) {
+ out << "<br />\n";
+ os << out.str();
+ } else {
+ out << "</div>";
+ // In this case, this needs to be deferred, but we'll put it
+ // before anything the text itself deferred.
+ def = out.str() + '\n' + def;
+ }
+ return def;
+}
+
+
docstring InsetListings::contextMenu(BufferView const &, int, int) const
{
return from_ascii("context-listings");