From c3f0e219685856bb00011abe8c6a2391c8d80ab6 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Tue, 6 Dec 2011 22:17:22 +0000 Subject: [PATCH] Activate ability to write CSS to a separate file. There is no UI for this yet, however. Includes elements of a patch by Rob Oakes. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40409 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index dd76314f05..8c1ea58e4a 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -1772,15 +1772,18 @@ void Buffer::writeLyXHTMLSource(odocstream & os, html::htmlize(doctitle, XHTMLStream::ESCAPE_ALL)) << "\n"; - os << "\n\n" - << features.getTClassHTMLPreamble() - << "\n\n" - << from_utf8(features.getPreambleSnippets()); + docstring styles = features.getTClassHTMLPreamble(); + if (!styles.empty()) + os << "\n\n" << styles << '\n'; + + styles = from_utf8(features.getPreambleSnippets()); + if (!styles.empty()) + os << "\n\n" << styles << '\n'; // we will collect CSS information in a stream, and then output it // either here, as part of the header, or else in a separate file. odocstringstream css; - docstring styles = from_utf8(features.getCSSSnippets()); + styles = from_utf8(features.getCSSSnippets()); if (!styles.empty()) css << "/* LyX Provided Styles */\n" << styles << '\n'; @@ -1805,9 +1808,29 @@ void Buffer::writeLyXHTMLSource(odocstream & os, docstring const dstyles = css.str(); if (!dstyles.empty()) { - os << "\n"; + bool written = false; + if (params().html_css_as_file) { + // open a file for CSS info + ofdocstream ocss; + string const fcssname = addName(temppath(), "docstyle.css"); + FileName const fcssfile = FileName(fcssname); + if (openFileWrite(ocss, fcssfile)) { + ocss << dstyles; + ocss.close(); + written = true; + // write link to header + os << "\n"; + // register file + runparams.exportdata->addExternalFile("xhtml", fcssfile); + } + } + // we are here if the CSS is supposed to be written to the header + // or if we failed to write it to an external file. + if (!written) { + os << "\n"; + } } os << "\n"; } -- 2.39.5