DocBook: make empty bibliographies empty.

Even though this means that there is no output tag.
This commit is contained in:
Thibaut Cuvelier 2020-11-26 06:52:21 +01:00
parent eeb732cd5f
commit eaf9460909

View File

@ -1089,6 +1089,13 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
docstring const reflabel = buffer().B_("References");
// Check that the bibliography is not empty, to ensure that the document is valid.
if (cites.empty()) {
xs << XMLStream::ESCAPE_NONE << "<!-- The bibliography is empty! -->";
xs << xml::CR();
return;
}
// Tell BiblioInfo our purpose (i.e. generate HTML rich text).
CiteItem ci;
ci.context = CiteItem::Export;
@ -1100,7 +1107,8 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
xs << xml::CR();
xs << xml::StartTag("title");
xs << reflabel;
xs << xml::EndTag("title") << xml::CR();
xs << xml::EndTag("title");
xs << xml::CR();
// Translation between keys in each entry and DocBook tags.
// IDs for publications; list: http://tdg.docbook.org/tdg/5.2/biblioid.html.
@ -1156,11 +1164,6 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
auto vit = cites.begin();
auto ven = cites.end();
if (vit == ven) {
xs << XMLStream::ESCAPE_NONE << "<!-- No entry in the bibliography. -->";
xs << xml::CR();
}
for (; vit != ven; ++vit) {
auto const biit = bibinfo.find(*vit);
if (biit == bibinfo.end())