Separate HTML preamble information. This could be used for javascript,

or anything else one would like to add to the header.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29967 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2009-06-05 19:42:56 +00:00
parent 397ebabfa4
commit 70899f0c15
8 changed files with 52 additions and 3 deletions

View File

@ -1377,7 +1377,11 @@ void Buffer::writeLyXHTMLSource(odocstream & os,
// FIXME Get this during validation? What about other meta-data?
os << "<title>TBA</title>\n";
docstring styleinfo = features.getTClassHTMLStyles();
os << features.getTClassHTMLPreamble();
os << '\n';
docstring const styleinfo = features.getTClassHTMLStyles();
if (!styleinfo.empty()) {
os << "<style type='text/css'>\n";
os << styleinfo;

View File

@ -931,12 +931,35 @@ docstring const LaTeXFeatures::getTClassPreamble() const
}
docstring const LaTeXFeatures::getTClassHTMLStyles() const {
docstring const LaTeXFeatures::getTClassHTMLPreamble() const {
DocumentClass const & tclass = params_.documentClass();
odocstringstream tcpreamble;
tcpreamble << tclass.htmlpreamble();
list<docstring>::const_iterator cit = usedLayouts_.begin();
list<docstring>::const_iterator end = usedLayouts_.end();
for (; cit != end; ++cit)
tcpreamble << tclass[*cit].htmlpreamble();
cit = usedInsetLayouts_.begin();
end = usedInsetLayouts_.end();
TextClass::InsetLayouts const & ils = tclass.insetLayouts();
for (; cit != end; ++cit) {
TextClass::InsetLayouts::const_iterator it = ils.find(*cit);
if (it == ils.end())
continue;
tcpreamble << it->second.htmlpreamble();
}
return tcpreamble.str();
}
docstring const LaTeXFeatures::getTClassHTMLStyles() const {
DocumentClass const & tclass = params_.documentClass();
odocstringstream tcpreamble;
list<docstring>::const_iterator cit = usedLayouts_.begin();
list<docstring>::const_iterator end = usedLayouts_.end();
for (; cit != end; ++cit)

View File

@ -61,6 +61,8 @@ public:
docstring const getTClassI18nPreamble(bool use_babel) const;
///
docstring const getTClassHTMLStyles() const;
///
docstring const getTClassHTMLPreamble() const;
/// The sgml definitions needed by the document (docbook)
docstring const getLyXSGMLEntities() const;
/// The SGML Required to include the files added with includeFile();

View File

@ -98,6 +98,7 @@ enum LayoutTags {
LT_HTMLITEMATTR,
LT_HTMLLABEL,
LT_HTMLLABELATTR,
LT_HTMLPREAMBLE,
LT_HTMLSTYLE,
LT_INTITLE // keep this last!
};
@ -164,6 +165,7 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
{ "htmlitemattr", LT_HTMLITEMATTR },
{ "htmllabel", LT_HTMLLABEL },
{ "htmllabelattr", LT_HTMLLABELATTR },
{ "htmlpremable", LT_HTMLPREAMBLE },
{ "htmlstyle", LT_HTMLSTYLE },
{ "htmltag", LT_HTMLTAG },
{ "innertag", LT_INNERTAG },
@ -505,6 +507,10 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
htmlstyle_ = from_utf8(lex.getLongString("EndHTMLStyle"));
break;
case LT_HTMLPREAMBLE:
htmlpreamble_ = from_utf8(lex.getLongString("EndPreamble"));
break;
}
}
lex.popTable();

View File

@ -123,6 +123,8 @@ public:
///
docstring const & htmlstyle() const { return htmlstyle_; }
///
docstring const & htmlpreamble() const { return htmlpreamble_; }
///
docstring const & labelstring_appendix() const {
return labelstring_appendix_;
}
@ -306,6 +308,8 @@ private:
std::string htmllabelattr_;
/// CSS information needed by this layout.
docstring htmlstyle_;
/// Any other info for the HTML header.
docstring htmlpreamble_;
/// This is the `category' for this layout. The following are
/// recommended basic categories: FrontMatter, BackMatter, MainText,
/// Section, Starred, List, Theorem.

View File

@ -255,6 +255,7 @@ protected:
/// preamble text to support layout styles
docstring preamble_;
/// same, but for HTML output
/// this is output as is to the header
docstring htmlpreamble_;
/// latex packages loaded by document class.
std::set<std::string> provides_;

View File

@ -84,6 +84,7 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
IL_HTMLTAG,
IL_HTMLATTR,
IL_HTMLSTYLE,
IL_HTMLPREAMBLE,
IL_INTOC,
IL_LABELFONT,
IL_LABELSTRING,
@ -112,6 +113,7 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
{ "forceplain", IL_FORCEPLAIN },
{ "freespacing", IL_FREESPACING },
{ "htmlattr", IL_HTMLATTR },
{ "htmlpreamble", IL_HTMLPREAMBLE },
{ "htmlstyle", IL_HTMLSTYLE },
{ "htmltag", IL_HTMLTAG },
{ "intoc", IL_INTOC },
@ -273,6 +275,9 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
case IL_HTMLSTYLE:
htmlstyle_ = from_utf8(lex.getLongString("EndHTMLStyle"));
break;
case IL_HTMLPREAMBLE:
htmlpreamble_ = from_utf8(lex.getLongString("EndPreamble"));
break;
case IL_REQUIRES: {
lex.eatLine();
vector<string> const req

View File

@ -85,6 +85,8 @@ public:
///
docstring htmlstyle() const { return htmlstyle_; }
///
docstring htmlpreamble() const { return htmlpreamble_; }
///
std::set<std::string> requires() const { return requires_; };
///
bool isMultiPar() const { return multipar_; };
@ -138,6 +140,8 @@ private:
///
docstring htmlstyle_;
///
docstring htmlpreamble_;
///
std::set<std::string> requires_;
///
bool multipar_;