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"); 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). // Tell BiblioInfo our purpose (i.e. generate HTML rich text).
CiteItem ci; CiteItem ci;
ci.context = CiteItem::Export; ci.context = CiteItem::Export;
@ -1100,7 +1107,8 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const
xs << xml::CR(); xs << xml::CR();
xs << xml::StartTag("title"); xs << xml::StartTag("title");
xs << reflabel; xs << reflabel;
xs << xml::EndTag("title") << xml::CR(); xs << xml::EndTag("title");
xs << xml::CR();
// Translation between keys in each entry and DocBook tags. // Translation between keys in each entry and DocBook tags.
// IDs for publications; list: http://tdg.docbook.org/tdg/5.2/biblioid.html. // 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 vit = cites.begin();
auto ven = cites.end(); auto ven = cites.end();
if (vit == ven) {
xs << XMLStream::ESCAPE_NONE << "<!-- No entry in the bibliography. -->";
xs << xml::CR();
}
for (; vit != ven; ++vit) { for (; vit != ven; ++vit) {
auto const biit = bibinfo.find(*vit); auto const biit = bibinfo.find(*vit);
if (biit == bibinfo.end()) if (biit == bibinfo.end())