Doxygen
Loading...
Searching...
No Matches
Crawlmap Class Referencefinal

#include <src/sitemap.h>

Inheritance diagram for Crawlmap:
Collaboration diagram for Crawlmap:

Classes

class  Private

Public Member Functions

 Crawlmap ()
 ~Crawlmap ()
void initialize ()
void finalize ()
void incContentsDepth ()
void decContentsDepth ()
void addContentsItem (bool isDir, const DString &name, const DString &ref, const DString &file, const DString &anchor, bool separateIndex, bool addToNavIndex, const Definition *def, const DString &nameAsHtml)
void addIndexItem (const Definition *context, const MemberDef *md, const DString &sectionAnchor, const DString &title)
void addIndexFile (const DString &name)
void addImageFile (const DString &name)
void addStyleSheetFile (const DString &name)

Static Public Attributes

static const DString crawlFileName = "doxygen_crawl"

Private Attributes

std::unique_ptr< Privatep

Detailed Description

Definition at line 51 of file sitemap.h.

Constructor & Destructor Documentation

◆ Crawlmap()

Crawlmap::Crawlmap ( )

Definition at line 92 of file sitemap.cpp.

92: p(std::make_unique<Private>()) {}
std::unique_ptr< Private > p
Definition sitemap.h:76

References p.

Referenced by ~Crawlmap().

◆ ~Crawlmap()

Crawlmap::~Crawlmap ( )
default

Member Function Documentation

◆ addContentsItem()

void Crawlmap::addContentsItem ( bool isDir,
const DString & name,
const DString & ref,
const DString & file,
const DString & anchor,
bool separateIndex,
bool addToNavIndex,
const Definition * def,
const DString & nameAsHtml )
virtual

Implements IndexIntf.

Definition at line 140 of file sitemap.cpp.

144{
145 if (!file.empty() && ref.empty()) // made file optional param and
146 // don't place links in crawl file imported
147 // by tags
148 {
149 std::string link;
150 if (file[0]=='!' || file[0]=='^') // special markers for user defined URLs
151 {
152 link+=&file[1];
153 }
154 else
155 {
156 DString currFile = file;
158 DString currAnc = anchor;
159 link += currFile.data();
160 if (!currAnc.empty())
161 {
162 link += "#";
163 link += currAnc.str();
164 }
165 }
166 p->crawlLinks.push_back(link);
167 }
168}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
const std::string & str() const
Definition dstring.h:649
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
Definition dstring.h:161
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3933

References addHtmlExtensionIfMissing(), DString::data(), DString::empty(), p, and DString::str().

◆ addImageFile()

void Crawlmap::addImageFile ( const DString & name)
inlinevirtual

Implements IndexIntf.

Definition at line 69 of file sitemap.h.

69{}

◆ addIndexFile()

void Crawlmap::addIndexFile ( const DString & name)
virtual

Implements IndexIntf.

Definition at line 133 of file sitemap.cpp.

134{
135 DString fn = fileName;
137 p->crawlLinks.push_back(fn.str());
138}

References addHtmlExtensionIfMissing(), p, and DString::str().

◆ addIndexItem()

void Crawlmap::addIndexItem ( const Definition * context,
const MemberDef * md,
const DString & sectionAnchor,
const DString & title )
virtual

Implements IndexIntf.

Definition at line 195 of file sitemap.cpp.

197{
198 if (context && md) // member
199 {
200 if (sectionAnchor.empty() && !md->hasDocumentation()) return;
201 DString cfname = md->getOutputFileBase();
202 DString anchor = !sectionAnchor.empty() ? sectionAnchor : md->anchor();
203 DString ref = makeRef(cfname, anchor);
204 p->crawlLinks.push_back(ref.str());
205 }
206 else if (context) // container
207 {
208 DString contRef = context->getOutputFileBase();
209 DString ref = makeRef(contRef,sectionAnchor);
210 p->crawlLinks.push_back(ref.str());
211 }
212}
virtual bool hasDocumentation() const =0
virtual DString anchor() const =0
virtual DString getOutputFileBase() const =0
static DString makeRef(const DString &withoutExtension, const DString &anchor)
Definition sitemap.cpp:187

References Definition::anchor(), DString::empty(), Definition::getOutputFileBase(), Definition::hasDocumentation(), makeRef(), p, and DString::str().

◆ addStyleSheetFile()

void Crawlmap::addStyleSheetFile ( const DString & name)
inlinevirtual

Implements IndexIntf.

Definition at line 70 of file sitemap.h.

70{}

◆ decContentsDepth()

void Crawlmap::decContentsDepth ( )
inlinevirtual

Implements IndexIntf.

Definition at line 61 of file sitemap.h.

61{}

◆ finalize()

void Crawlmap::finalize ( )
virtual

Implements IndexIntf.

Definition at line 118 of file sitemap.cpp.

119{
120 std::sort(p->crawlLinks.begin(),p->crawlLinks.end());
121 p->crawlLinks.erase(std::unique(p->crawlLinks.begin(),p->crawlLinks.end()),p->crawlLinks.end());
122 for (auto &s : p->crawlLinks)
123 {
124 p->crawl << "<a href=\"" << s << "\"/>\n";
125 }
126
127 p->crawl << "</body>\n";
128 p->crawl << "</html>\n";
129 p->crawl.flush();
130 p->crawlFile.close();
131}

References p.

Referenced by ~Crawlmap().

◆ incContentsDepth()

void Crawlmap::incContentsDepth ( )
inlinevirtual

Implements IndexIntf.

Definition at line 60 of file sitemap.h.

60{}

◆ initialize()

void Crawlmap::initialize ( )
virtual

Implements IndexIntf.

Definition at line 95 of file sitemap.cpp.

96{
97 DString fileName = Config_getString(HTML_OUTPUT) + "/" + crawlFileName;
99 p->crawlFile = Portable::openOutputStream(fileName);
100 if (!p->crawlFile.is_open())
101 {
102 term("Could not open file {} for writing\n",fileName);
103 }
104 p->crawl.setStream(&p->crawlFile);
105 p->crawl << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
106 p->crawl << "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"" + theTranslator->trISOLang() + "\">\n";
107 p->crawl << "<head>\n";
108 p->crawl << "<title>Validator / crawler helper</title>\n";
109 p->crawl << "<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n";
110 p->crawl << "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n";
111
112 p->crawl << "<meta name=\"generator\" content=\"Doxygen " + getDoxygenVersion() + "\"/>\n";
113 p->crawl << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n";
114 p->crawl << "</head>\n";
115 p->crawl << "<body>\n";
116}
static const DString crawlFileName
Definition sitemap.h:72
virtual DString trISOLang()=0
#define Config_getString(name)
Definition config.h:32
Translator * theTranslator
Definition language.cpp:71
#define term(fmt,...)
Definition message.h:137
std::ofstream openOutputStream(const DString &name, bool append=false)
Definition portable.cpp:665

References addHtmlExtensionIfMissing(), Config_getString, crawlFileName, Portable::openOutputStream(), p, term, theTranslator, and Translator::trISOLang().

Referenced by ~Crawlmap().

Member Data Documentation

◆ crawlFileName

const DString Crawlmap::crawlFileName = "doxygen_crawl"
inlinestatic

Definition at line 72 of file sitemap.h.

Referenced by initialize().

◆ p

std::unique_ptr<Private> Crawlmap::p
private

Definition at line 76 of file sitemap.h.

Referenced by addContentsItem(), addIndexFile(), addIndexItem(), Crawlmap(), finalize(), and initialize().


The documentation for this class was generated from the following files: