mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
DocBook: add inner tags for layouts.
This makes it possible to implement LilyPond as prescribed in https://lilypond.org/doc/v2.22/Documentation/usage/docbook.
This commit is contained in:
parent
7ee23ca885
commit
ffa1b1dcc7
@ -45,6 +45,7 @@ InsetLayout "Flex:LilyPond"
|
||||
LabelFont
|
||||
Color foreground
|
||||
EndFont
|
||||
DocBookTag IGNORE
|
||||
EndArgument
|
||||
DocBookNotInPara true
|
||||
DocBookWrapperTag mediaobject
|
||||
|
@ -107,6 +107,9 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass,
|
||||
IL_DOCBOOKITEMWRAPPERTAG,
|
||||
IL_DOCBOOKITEMWRAPPERTAGTYPE,
|
||||
IL_DOCBOOKITEMWRAPPERATTR,
|
||||
IL_DOCBOOKINNERTAG,
|
||||
IL_DOCBOOKINNERTAGTYPE,
|
||||
IL_DOCBOOKINNERATTR,
|
||||
IL_DOCBOOKNOFONTINSIDE,
|
||||
IL_INTOC,
|
||||
IL_ISTOCCAPTION,
|
||||
@ -156,6 +159,9 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass,
|
||||
{ "docbookargumentbeforemaintag", IL_DOCBOOKARGUMENTBEFOREMAINTAG },
|
||||
{ "docbookattr", IL_DOCBOOKATTR },
|
||||
{ "docbookininfo", IL_DOCBOOKININFO },
|
||||
{ "docbookinnerattr", IL_DOCBOOKINNERATTR },
|
||||
{ "docbookinnertag", IL_DOCBOOKINNERTAG },
|
||||
{ "docbookinnertagtype", IL_DOCBOOKINNERTAGTYPE },
|
||||
{ "docbookitemattr", IL_DOCBOOKITEMATTR },
|
||||
{ "docbookitemtag", IL_DOCBOOKITEMTAG },
|
||||
{ "docbookitemtagtype", IL_DOCBOOKITEMTAGTYPE },
|
||||
@ -521,6 +527,15 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass,
|
||||
case IL_DOCBOOKTAGTYPE:
|
||||
lex >> docbooktagtype_;
|
||||
break;
|
||||
case IL_DOCBOOKINNERTAG:
|
||||
lex >> docbookinnertag_;
|
||||
break;
|
||||
case IL_DOCBOOKINNERATTR:
|
||||
lex >> docbookinnerattr_;
|
||||
break;
|
||||
case IL_DOCBOOKINNERTAGTYPE:
|
||||
lex >> docbookinnertagtype_;
|
||||
break;
|
||||
case IL_DOCBOOKININFO:
|
||||
lex >> docbookininfo_;
|
||||
break;
|
||||
@ -714,6 +729,14 @@ std::string InsetLayout::docbooktagtype() const
|
||||
}
|
||||
|
||||
|
||||
std::string InsetLayout::docbookinnertagtype() const
|
||||
{
|
||||
if (docbookinnertagtype_ != "block" && docbookinnertagtype_ != "paragraph" && docbookinnertagtype_ != "inline")
|
||||
docbookinnertagtype_ = "block";
|
||||
return docbookinnertagtype_;
|
||||
}
|
||||
|
||||
|
||||
std::string InsetLayout::docbookwrappertagtype() const
|
||||
{
|
||||
if (docbookwrappertagtype_ != "block" && docbookwrappertagtype_ != "paragraph" && docbookwrappertagtype_ != "inline")
|
||||
|
@ -156,6 +156,12 @@ public:
|
||||
///
|
||||
std::string docbookattr() const { return docbookattr_; }
|
||||
///
|
||||
std::string docbookinnertag() const { return docbookinnertag_; }
|
||||
///
|
||||
std::string docbookinnertagtype() const;
|
||||
///
|
||||
std::string docbookinnerattr() const { return docbookinnerattr_; }
|
||||
///
|
||||
std::string const & docbookininfo() const;
|
||||
///
|
||||
bool docbooksection() const { return docbooksection_; }
|
||||
@ -319,6 +325,12 @@ private:
|
||||
///
|
||||
std::string docbookattr_;
|
||||
///
|
||||
std::string docbookinnertag_;
|
||||
///
|
||||
mutable std::string docbookinnertagtype_;
|
||||
///
|
||||
std::string docbookinnerattr_;
|
||||
///
|
||||
mutable std::string docbookininfo_;
|
||||
///
|
||||
bool docbooknotinpara_ = false;
|
||||
|
@ -686,6 +686,9 @@ void InsetText::docbook(XMLStream & xs, OutputParams const & rp, XHTMLOptions op
|
||||
attrs += from_ascii(" xlink:href=\"") + text_.asString() + from_ascii("\"");
|
||||
xml::openTag(xs, il.docbooktag(), attrs, il.docbooktagtype());
|
||||
}
|
||||
|
||||
if (!il.docbookinnertag().empty() && il.docbookinnertag() != "NONE" && il.docbookinnertag() != "IGNORE")
|
||||
xml::openTag(xs, il.docbookinnertag(), il.docbookinnerattr(), il.docbookinnertagtype());
|
||||
}
|
||||
|
||||
// - Think about the arguments before the paragraph.
|
||||
@ -733,6 +736,9 @@ void InsetText::docbook(XMLStream & xs, OutputParams const & rp, XHTMLOptions op
|
||||
if (!il.docbookitemwrappertag().empty() && il.docbookitemwrappertag() != "NONE" && il.docbookitemwrappertag() != "IGNORE")
|
||||
xml::closeTag(xs, il.docbookitemwrappertag(), il.docbookitemwrappertagtype());
|
||||
|
||||
if (!il.docbookinnertag().empty() && il.docbookinnertag() != "NONE" && il.docbookinnertag() != "IGNORE")
|
||||
xml::closeTag(xs, il.docbookinnertag(), il.docbookinnertagtype());
|
||||
|
||||
if (!il.docbooktag().empty() && il.docbooktag() != "NONE" && il.docbooktag() != "IGNORE")
|
||||
xml::closeTag(xs, il.docbooktag(), il.docbooktagtype());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user