91 return std::make_unique<PageDefImpl>(f,l,n,d,t);
161 if (sectionRefs.
empty())
return;
164 for (
auto it = sectionRefs.
begin(); it!=sectionRefs.
end(); ++it)
171 int nextLevel = type.
level();
174 for (
int i=level;i<nextLevel;i++)
179 else if (nextLevel<level)
181 for (
int i=nextLevel;i<level;i++)
191 auto it_next = std::next(it);
192 bool isDir = (it_next!=sectionRefs.
end()) ? ((*it_next)->type().isSection() && (*it_next)->type().level() > nextLevel) :
false;
237 bool found =
name()==
"citelist" ||
name()==
"requirements";
240 if (rl->listName()==
name())
250 tagFile <<
" <compound kind=\"page\">\n";
251 tagFile <<
" <name>" <<
name() <<
"</name>\n";
253 tagFile <<
" <filename>" << fn <<
"</filename>\n";
256 DString sfn = subPage->getOutputFileBase();
258 tagFile <<
" <subpage>" << sfn <<
"</subpage>\n";
261 tagFile <<
" </compound>\n";
268 int hierarchyLevel = -1;
298 if (!generateTreeView)
322 if (si->
title() != manPageName)
331 .setAutolinkSupport(
false));
360 .setAutolinkSupport(
false));
389 if (generateTreeView &&
Config_getBool(PAGE_OUTLINE_PANEL) && pageWithSections)
427 .setIndexWords(
true));
544 warn(fileName,startLine,
"multiple use of page label '{}' with different titles, (other occurrence: {}, line: {})",
628 else if (si->
lineNr() != -1)
630 warn(orgFile,line,
"multiple use of section label '{}', (first occurrence: {}, line {})",pd->
name(),si->
fileName(),si->
lineNr());
634 warn(orgFile,line,
"multiple use of section label '{}', (first occurrence: {})",pd->
name(),si->
fileName());
663 return (d &&
typeid(*d) ==
typeid(
PageDefImpl)) ?
static_cast<const PageDef*
>(d) :
nullptr;
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
DString right(size_t len) const
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
DString left(size_t len) const
bool endsWith(const char *s) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
The common base class of all entity definitions found in the sources.
virtual DefType definitionType() const =0
virtual const DString & name() const =0
virtual DString getReference() const =0
virtual Definition * getOuterScope() const =0
virtual DString docFile() const =0
virtual int getStartBodyLine() const =0
virtual bool isReference() const =0
virtual DString getOutputFileBase() const =0
friend DefinitionMutable * toDefinitionMutable(Definition *)
bool isReference() const override
DString docFile() const override
bool hasBriefDescription() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
DString getReference() const override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
Definition * getOuterScope() const override
void setDocumentation(const DString &doc, const DString &docFile, int docLine, bool stripWhiteSpace=true) override
DString documentation() const override
const GroupList & partOfGroups() const override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DString inbodyDocumentation() const override
int getStartBodyLine() const override
void writeToc(OutputList &ol, const LocalToc <) const override
bool hasSections() const override
int docLine() const override
const SectionRefs & getSectionRefs() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
virtual void setBodySegment(int defLine, int bls, int ble)=0
virtual void setReference(const DString &r)=0
virtual void setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace=true)=0
virtual void setLanguage(SrcLangExt lang)=0
virtual void setOuterScope(Definition *d)=0
virtual void writeNavigationPath(OutputList &ol) const =0
virtual void setRefItems(const RefItemVector &sli)=0
static std::unique_ptr< PageDef > mainPage
static NamespaceDefMutable * globalScope
static IndexList * indexList
static PageLinkedMap * pageLinkedMap
static DString htmlFileExtension
A model of a group of symbols.
virtual void addPage(PageDef *def)=0
void addContentsItem(bool isDir, const DString &name, const DString &ref, const DString &file, const DString &anchor, bool separateIndex=false, bool addToNavIndex=false, const Definition *def=nullptr, const DString &nameAsHtml=DString())
std::unique_ptr< RefList > Ptr
T * add(const char *k, Args &&... args)
const T * find(const std::string &key) const
bool add(const char *k, T *obj)
constexpr bool isDocbookEnabled() const noexcept
constexpr bool isLatexEnabled() const noexcept
constexpr bool isHtmlEnabled() const noexcept
Class representing a list of output generators that are written to in parallel.
void startTitleHead(const DString &fileName)
void endTitleHead(const DString &fileName, const DString &name)
void disable(OutputType o)
void writePageLink(const DString &name, bool first)
void enable(OutputType o)
void endTextBlock(bool paraBreak=false)
void startHeaderSection()
void writeString(const DString &text)
void endSection(const DString &lab, SectionType t)
void pushGeneratorState()
void disableAllBut(OutputType o)
void startTextBlock(bool dense=false)
void startPageDoc(const DString &pageTitle)
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
A model of a page symbol.
virtual void setTitle(const DString &title)=0
virtual bool hasParentPage() const =0
virtual void setNestingLevel(int)=0
virtual bool hasTitle() const =0
virtual void setFileName(const DString &name)=0
virtual void setShowLineNo(bool)=0
virtual DString title() const =0
virtual void setPageScope(Definition *)=0
bool hasTitle() const override
void setNestingLevel(int l) override
void writeDocumentation(OutputList &ol) override
bool hasParentPage() const override
bool documentedPage() const override
LocalToc localToc() const override
DString getOutputFileBase() const override
void addListReferences() override
void addInnerCompound(Definition *d) override
void setFileName(const DString &name) override
DString displayName(bool=true) const override
void addRequirementReferences() override
DString title() const override
void writeTagFile(TextStream &) override
void setTitle(const DString &title) override
PageDefImpl(const DString &f, int l, const DString &n, const DString &d, const DString &t)
bool showLineNo() const override
void findSectionsInDocumentation() override
void writePageNavigation(OutputList &ol) const override
DefType definitionType() const override
bool isLinkable() const override
bool isLinkableInProject() const override
void setShowLineNo(bool) override
const PageLinkedRefMap & getSubPages() const override
CodeSymbolType codeSymbolType() const override
DString titleAsText() const override
const GroupDef * getGroupDef() const override
bool visibleInIndex() const override
void writePageDocumentation(OutputList &ol) const override
void addSectionsToIndex() override
DString anchor() const override
void setLocalToc(const LocalToc &tl) override
void setPageScope(Definition *d) override
PageLinkedRefMap m_subPages
bool hasSubPages() const override
Definition * getPageScope() const override
static RefListManager & instance()
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
class that provide information about a section.
void setTitle(const DString &t)
SectionInfo * replace(const DString &label, const DString &fileName, int lineNr, const DString &title, SectionType type, int level, const DString &ref=DString())
SectionInfo * add(const SectionInfo &si)
static SectionManager & instance()
returns a reference to the singleton
class that represents a list of constant references to sections.
const_iterator end() const
const_iterator begin() const
constexpr bool isSection() const
constexpr int level() const
static constexpr int Page
This struct is used to capture the tag file information for an Entry.
Text streaming class that buffers data.
virtual DString trPage(bool first_capital, bool singular)=0
virtual DString trMainPage()=0
#define Config_getBool(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
DString parseCommentAsText(const Definition *scope, const MemberDef *md, const DString &doc, const DString &fileName, int lineNr)
DString parseCommentAsHtml(const Definition *scope, const MemberDef *member, const DString &doc, const DString &fileName, int lineNr)
void docFindSections(const DString &input, const Definition *d, const DString &fileName)
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const DString &navPath)
void startFile(OutputList &ol, const DString &name, bool isSource, const DString &manName, const DString &title, HighlightedItem hli, bool additionalIndices, const DString &altSidebarName, int hierarchyLevel, const DString &allMembersFile)
Translator * theTranslator
#define warn(file, line, fmt,...)
PageDef * addRelatedPage(const DString &name, const DString &ptitle, const DString &doc, const DString &fileName, int docLine, int startLine, const RefItemVector &sli, GroupDef *gd, const TagInfo *tagInfo, bool xref, SrcLangExt lang)
PageDef * toPageDef(Definition *d)
std::unique_ptr< PageDef > createPageDef(const DString &f, int l, const DString &n, const DString &d, const DString &t)
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
std::vector< RefItem * > RefItemVector
Helper class to pass options when calling OutputList::generateDoc().
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
void addHtmlExtensionIfMissing(DString &fName)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
A bunch of utility functions.