#include "FuncRequest.h"
#include "InsetIterator.h"
#include "InsetList.h"
+#include "Language.h"
#include "Lexer.h"
+#include "output_xhtml.h"
#include "Paragraph.h"
#include "ParagraphList.h"
+#include "ParIterator.h"
#include "TextClass.h"
#include "frontends/alert.h"
font.
*/
+ docstring lbl;
+
ParagraphList::const_iterator it = buffer.paragraphs().begin();
ParagraphList::const_iterator end = buffer.paragraphs().end();
// potentially the wrong one.
int const wx = label.size();
- if (wx > w)
+ if (wx > w) {
w = wx;
+ lbl = label;
+ }
}
- if (bitem && !bitem->bibLabel().empty())
- return bitem->bibLabel();
+ if (!lbl.empty())
+ return lbl;
return from_ascii("99");
}
{
docstring const key = getParam("key");
BibTeXInfo keyvalmap(false);
- keyvalmap[from_ascii("label")] = getParam("label");
+ keyvalmap.label(bibLabel());
DocIterator doc_it(it);
doc_it.forwardPos();
keyvalmap[from_ascii("ref")] = doc_it.paragraph().asString();
}
-/// Update the counters of this inset and of its contents
-void InsetBibitem::updateLabels(ParIterator const &)
+// Update the counters of this inset and of its contents
+void InsetBibitem::updateLabels(ParIterator const & it)
{
- Counters & counters = buffer().masterBuffer()->params().documentClass().counters();
+ BufferParams const & bp = buffer().masterBuffer()->params();
+ Counters & counters = bp.documentClass().counters();
docstring const bibitem = from_ascii("bibitem");
if (counters.hasCounter(bibitem) && getParam("label").empty()) {
counters.step(bibitem);
- autolabel_ = counters.theCounter(bibitem);
+ string const & lang = it.paragraph().getParLanguage(bp)->code();
+ autolabel_ = counters.theCounter(bibitem, lang);
} else {
autolabel_ = from_ascii("??");
}
}
+docstring InsetBibitem::xhtml(odocstream & os, OutputParams const &) const
+{
+ os << "<a name='" << html::htmlize(getParam("key")) << "'></a>";
+ os << "<span class='biblabel'>" << bibLabel() << "</span> ";
+ return docstring();
+}
+
+
} // namespace lyx