mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
DocBook: ensure xml:id is not output too many times.
This is mostly important for subfigures, but debugging this issue showed that InsetCaption could be slightly simplified and InsetLabel should be made a tad more robust.
This commit is contained in:
parent
d0a5ba4859
commit
8758000641
@ -367,8 +367,7 @@ void InsetCaption::getCaptionAsDocBook(XMLStream & xs,
|
||||
return;
|
||||
|
||||
// Ignore full_label_, as the DocBook processor will deal with the numbering.
|
||||
InsetText::XHTMLOptions const opts =
|
||||
InsetText::WriteLabel | InsetText::WriteInnerTag;
|
||||
InsetText::XHTMLOptions opts = InsetText::WriteInnerTag;
|
||||
InsetText::docbook(xs, runparams, opts);
|
||||
}
|
||||
|
||||
|
@ -583,7 +583,7 @@ void docbookSubfigures(XMLStream & xs, OutputParams const & runparams, const Ins
|
||||
xs << xml::StartTag("formalgroup", attr);
|
||||
xs << xml::CR();
|
||||
|
||||
xs << xml::StartTag("title", attr);
|
||||
xs << xml::StartTag("title"); // Don't take attr here, the ID should only go in one place, not two.
|
||||
if (caption) {
|
||||
caption->getCaptionAsDocBook(xs, rpNoLabel);
|
||||
} else {
|
||||
|
@ -356,8 +356,11 @@ int InsetLabel::plaintext(odocstringstream & os,
|
||||
void InsetLabel::docbook(XMLStream & xs, OutputParams const & runparams) const
|
||||
{
|
||||
// Output an anchor only if it has not been processed before.
|
||||
if (runparams.docbook_anchors_to_ignore.find(getParam("name")) == runparams.docbook_anchors_to_ignore.end()) {
|
||||
docstring attr = from_utf8("xml:id=\"") + xml::cleanID(getParam("name")) + from_utf8("\"");
|
||||
docstring id = getParam("name");
|
||||
docstring cleaned_id = xml::cleanID(id);
|
||||
if (runparams.docbook_anchors_to_ignore.find(id) == runparams.docbook_anchors_to_ignore.end() &&
|
||||
runparams.docbook_anchors_to_ignore.find(cleaned_id) == runparams.docbook_anchors_to_ignore.end()) {
|
||||
docstring attr = from_utf8("xml:id=\"") + cleaned_id + from_utf8("\"");
|
||||
xs << xml::CompTag("anchor", to_utf8(attr));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user