#include <config.h>
#include "Layout.h"
-#include "FontInfo.h"
-#include "Language.h"
#include "Lexer.h"
#include "output_xhtml.h"
#include "TextClass.h"
#include "support/debug.h"
+#include "support/docstream.h"
#include "support/lassert.h"
#include "support/lstrings.h"
-#include "support/Messages.h"
#include "support/textutils.h"
LT_DOCBOOKTAG,
LT_DOCBOOKATTR,
LT_DOCBOOKTAGTYPE,
+ LT_DOCBOOKINNERATTR,
+ LT_DOCBOOKINNERTAG,
+ LT_DOCBOOKINNERTAGTYPE,
LT_DOCBOOKININFO,
LT_DOCBOOKABSTRACT,
LT_DOCBOOKWRAPPERTAG,
LT_DOCBOOKWRAPPERATTR,
LT_DOCBOOKWRAPPERTAGTYPE,
LT_DOCBOOKWRAPPERMERGEWITHPREVIOUS,
+ LT_DOCBOOKSECTION,
LT_DOCBOOKSECTIONTAG,
LT_DOCBOOKITEMWRAPPERTAG,
LT_DOCBOOKITEMWRAPPERATTR,
LT_REFPREFIX,
LT_RESETARGS,
LT_RESUMECOUNTER,
- LT_STEPMASTERCOUNTER,
+ LT_STEPPARENTCOUNTER,
LT_RIGHTDELIM,
LT_FORCELOCAL,
LT_TOGGLE_INDENT,
margintype = MARGIN_STATIC;
latextype = LATEX_PARAGRAPH;
resumecounter = false;
- stepmastercounter = false;
+ stepparentcounter = false;
intitle = false;
inpreamble = false;
needprotect = false;
htmltitle_ = false;
docbookabstract_ = false;
docbookwrappermergewithprevious_ = false;
+ docbooksection_ = false;
spellcheck = true;
forcelocal = 0;
itemcommand_ = "item";
{ "docbookattr", LT_DOCBOOKATTR },
{ "docbookforceabstracttag", LT_DOCBOOKFORCEABSTRACTTAG },
{ "docbookininfo", LT_DOCBOOKININFO },
+ { "docbookinnerattr", LT_DOCBOOKINNERATTR },
+ { "docbookinnertag", LT_DOCBOOKINNERTAG },
+ { "docbookinnertagtype", LT_DOCBOOKINNERTAGTYPE },
{ "docbookitemattr", LT_DOCBOOKITEMATTR },
{ "docbookiteminnerattr", LT_DOCBOOKITEMINNERATTR },
{ "docbookiteminnertag", LT_DOCBOOKITEMINNERTAG },
{ "docbookitemwrapperattr", LT_DOCBOOKITEMWRAPPERATTR },
{ "docbookitemwrappertag", LT_DOCBOOKITEMWRAPPERTAG },
{ "docbookitemwrappertagtype", LT_DOCBOOKITEMWRAPPERTAGTYPE },
+ { "docbooksection", LT_DOCBOOKSECTION },
{ "docbooksectiontag", LT_DOCBOOKSECTIONTAG },
{ "docbooktag", LT_DOCBOOKTAG },
{ "docbooktagtype", LT_DOCBOOKTAGTYPE },
{ "rightmargin", LT_RIGHTMARGIN },
{ "spacing", LT_SPACING },
{ "spellcheck", LT_SPELLCHECK },
- { "stepmastercounter", LT_STEPMASTERCOUNTER },
+ { "stepparentcounter", LT_STEPPARENTCOUNTER },
{ "textfont", LT_TEXTFONT },
{ "toclevel", LT_TOCLEVEL },
{ "toggleindent", LT_TOGGLE_INDENT },
lex >> resumecounter;
break;
- case LT_STEPMASTERCOUNTER:
- lex >> stepmastercounter;
+ case LT_STEPPARENTCOUNTER:
+ lex >> stepparentcounter;
break;
case LT_ARGUMENT:
lex >> docbooktagtype_;
break;
+ case LT_DOCBOOKINNERTAG:
+ lex >> docbookinnertag_;
+ break;
+
+ case LT_DOCBOOKINNERATTR:
+ lex >> docbookinnerattr_;
+ break;
+
+ case LT_DOCBOOKINNERTAGTYPE:
+ lex >> docbookinnertagtype_;
+ break;
+
case LT_DOCBOOKFORCEABSTRACTTAG:
lex >> docbookforceabstracttag_;
break;
lex >> docbookwrappermergewithprevious_;
break;
+ case LT_DOCBOOKSECTION:
+ lex >> docbooksection_;
+ break;
+
case LT_DOCBOOKSECTIONTAG:
lex >> docbooksectiontag_;
break;
latexargs_));
latexarg & arg = lam[id];
+ if (listpreamble)
+ // list preamble has no delimiters by default
+ arg.nodelims = true;
+
bool error = false;
bool finished = false;
while (!finished && lex.isOK() && !error) {
} else if (tok == "freespacing") {
lex.next();
arg.free_spacing = lex.getBool();
+ } else if (tok == "docbooktag") {
+ lex.next();
+ arg.docbooktag = lex.getDocString();
+ } else if (tok == "docbookattr") {
+ lex.next();
+ arg.docbookattr = lex.getDocString();
+ } else if (tok == "docbooktagtype") {
+ lex.next();
+ arg.docbooktagtype = lex.getDocString();
} else {
lex.printError("Unknown tag");
error = true;
"\tInPreamble " << inpreamble << "\n"
"\tTocLevel " << toclevel << "\n"
"\tResumeCounter " << resumecounter << "\n"
- "\tStepMasterCounter " << stepmastercounter << '\n';
+ "\tStepParentCounter " << stepparentcounter << '\n';
// ResetArgs does not make sense here
for (LaTeXArgMap::const_iterator it = latexargs_.begin();
it != latexargs_.end(); ++it)
os << "\tDocBookAttr \"" << docbookattr_ << "\"\n";
if(!docbooktagtype_.empty())
os << "\tDocBookTagType " << docbooktagtype_ << '\n';
+ if(!docbookinnertag_.empty())
+ os << "\tDocBookInnerTag " << docbookinnertag_ << '\n';
+ if(!docbookinnerattr_.empty())
+ os << "\tDocBookInnerAttr \"" << docbookinnerattr_ << "\"\n";
+ if(!docbookinnertagtype_.empty())
+ os << "\tDocBookInnerTagType " << docbookinnertagtype_ << '\n';
if(!docbookininfo_.empty())
os << "\tDocBookInInfo " << docbookininfo_ << '\n';
os << "\tDocBookAbstract " << docbookabstract_ << '\n';
os << "\tDocBookWrapperAttr " << docbookwrapperattr_ << '\n';
if(!docbookwrappertagtype_.empty())
os << "\tDocBookWrapperTagType " << docbookwrappertagtype_ << '\n';
+ os << "\tDocBookSection " << docbooksection_ << '\n';
if(!docbooksectiontag_.empty())
os << "\tDocBookSectionTag " << docbooksectiontag_ << '\n';
if(!docbookitemtag_.empty())
}
-bool isValidTagType(std::string type)
+bool isValidTagType(std::string const & type)
{
return !(type.empty() || (type != "block" && type != "paragraph" && type != "inline"));
}
}
+string const & Layout::docbookinnertag() const
+{
+ if (docbookinnertag_.empty())
+ docbookinnertag_ = "NONE";
+ return docbookinnertag_;
+}
+
+
+string const & Layout::docbookinnerattr() const
+{
+ return docbookinnerattr_;
+}
+
+
+string const & Layout::docbookinnertagtype() const
+{
+ if (!isValidTagType(docbookinnertagtype_))
+ docbookinnertagtype_ = "block";
+ return docbookinnertagtype_;
+}
+
+
string const & Layout::docbookininfo() const
{
// Indeed, a trilean. Only titles should be "maybe": otherwise, metadata is "always", content is "never".