#include "FuncRequest.h"
#include "Language.h"
#include "LaTeXFeatures.h"
-#include "OutputParams.h"
#include "output_xhtml.h"
#include "Paragraph.h"
#include "ParagraphParameters.h"
#include "TocBackend.h"
#include "support/debug.h"
+#include "support/docstream.h"
#include "support/gettext.h"
#include "support/lassert.h"
}
-int InsetTOC::docbook(odocstream & os, OutputParams const &) const
+void InsetTOC::docbook(XMLStream &, OutputParams const &) const
{
- if (getCmdName() == "tableofcontents")
- os << "<toc></toc>";
- return 0;
+ // TOC are generated automatically by the DocBook processor.
+ return;
}
void InsetTOC::makeTOCWithDepth(XMLStream & xs,
Toc const & toc, OutputParams const & op) const
{
- Toc::const_iterator it = toc.begin();
- Toc::const_iterator const en = toc.end();
int lastdepth = 0;
- for (; it != en; ++it) {
+ for (auto const & tocitem : toc) {
// do not output entries that are not actually included in the output,
// e.g., stuff in non-active branches or notes or whatever.
- if (!it->isOutput())
+ if (!tocitem.isOutput())
+ continue;
+
+ if (!tocitem.dit().paragraph().layout().htmlintoc())
continue;
// First, we need to manage increases and decreases of depth
- // If there's no depth to deal with, we artifically set it to 1.
- int const depth = it->depth();
+ // If there's no depth to deal with, we artificially set it to 1.
+ int const depth = tocitem.depth();
// Ignore stuff above the tocdepth
if (depth > buffer().params().tocdepth)
}
// Now output TOC info for this entry
- Paragraph const & par = it->dit().innerParagraph();
+ Paragraph const & par = tocitem.dit().innerParagraph();
makeTOCEntry(xs, par, op);
}
for (int i = lastdepth; i > 0; --i)
void InsetTOC::makeTOCNoDepth(XMLStream & xs,
Toc const & toc, const OutputParams & op) const
{
- Toc::const_iterator it = toc.begin();
- Toc::const_iterator const en = toc.end();
- for (; it != en; ++it) {
+ for (auto const & tocitem : toc) {
// do not output entries that are not actually included in the output,
// e.g., stuff in non-active branches or notes or whatever.
- if (!it->isOutput())
+ if (!tocitem.isOutput())
+ continue;
+
+ if (!tocitem.dit().paragraph().layout().htmlintoc())
continue;
xs << xml::StartTag("div", "class='lyxtoc-flat'") << xml::CR();
- Paragraph const & par = it->dit().innerParagraph();
+ Paragraph const & par = tocitem.dit().innerParagraph();
makeTOCEntry(xs, par, op);
xs << xml::EndTag("div");