Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
HtmlGenerator Class Reference

#include <htmlgenerator.h>

+ Inheritance diagram for HtmlGenerator:
+ Collaboration diagram for HtmlGenerator:

Public Member Functions

 HtmlGenerator (FileResolver &file_resolver)
 
 ~HtmlGenerator () override
 Destroys the HTML output generator.
 
void initializeGenerator () override
 Initializes the HTML output generator's data structures from the configuration (Config) singleton.
 
void terminateGenerator () override
 Gracefully terminates the HTML output generator.
 
QString format () override
 
void generateDocs () override
 If qdoc is in the {-prepare} phase, traverse the primary tree to generate the index file for the current module.
 
QString protectEnc (const QString &string)
 
- Public Member Functions inherited from XmlGenerator
 XmlGenerator (FileResolver &file_resolver)
 
- Public Member Functions inherited from Generator
 Generator (Moc *moc, ClassDef *classDef, const QList< QByteArray > &metaTypes, const QHash< QByteArray, QByteArray > &knownQObjectClasses, const QHash< QByteArray, QByteArray > &knownGadgets, FILE *outfile=nullptr, bool requireCompleteTypes=false)
 
void generateCode ()
 
qsizetype registeredStringsCount ()
 
 Generator (FileResolver &file_resolver)
 Constructs the generator base class.
 
virtual ~Generator ()
 Destroys the generator after removing it from the list of output generators.
 
virtual bool canHandleFormat (const QString &format)
 
virtual void initializeFormat ()
 Reads format-specific variables from config, sets output (sub)directories, creates them on the filesystem and copies the template-specific files.
 
virtual QString typeString (const Node *node)
 
QString fullDocumentLocation (const Node *node)
 Returns the full document location.
 
QString linkForExampleFile (const QString &path, const QString &fileExt=QString())
 Constructs an href link from an example file name, which is a path to the example file.
 

Static Public Member Functions

static QString protect (const QString &string)
 
- Static Public Member Functions inherited from Generator
static QString exampleFileTitle (const ExampleNode *relative, const QString &fileName)
 Helper function to construct a title for a file or image page included in an example.
 
static GeneratorcurrentGenerator ()
 
static GeneratorgeneratorForFormat (const QString &format)
 
static void initialize ()
 
static const QStringoutputDir ()
 
static const QStringoutputSubdir ()
 
static void terminate ()
 
static const QStringListoutputFileNames ()
 
static bool noLinkErrors ()
 
static bool autolinkErrors ()
 
static QString defaultModuleName ()
 
static void resetUseOutputSubdirs ()
 
static bool useOutputSubdirs ()
 
static void setQmlTypeContext (QmlTypeNode *t)
 
static QmlTypeNodeqmlTypeContext ()
 
static QString cleanRef (const QString &ref, bool xmlCompliant=false)
 Clean the given ref to be used as an HTML anchor or an xml:id.
 
static QString plainCode (const QString &markedCode)
 

Protected Member Functions

void generateExampleFilePage (const Node *en, ResolvedFile resolved_file, CodeMarker *marker) override
 Generate an html file with the contents of a C++ or QML source file.
 
qsizetype generateAtom (const Atom *atom, const Node *relative, CodeMarker *marker) override
 Generate html from an instance of Atom.
 
void generateCppReferencePage (Aggregate *aggregate, CodeMarker *marker) override
 Generate a reference page for the C++ class, namespace, or header file documented in node using the code marker provided.
 
void generateProxyPage (Aggregate *aggregate, CodeMarker *marker) override
 
void generateQmlTypePage (QmlTypeNode *qcn, CodeMarker *marker) override
 Generate the HTML page for a QML type.
 
void generatePageNode (PageNode *pn, CodeMarker *marker) override
 Generate the HTML page for an entity that doesn't map to any underlying parsable C++ or QML element.
 
void generateCollectionNode (CollectionNode *cn, CodeMarker *marker) override
 Generate the HTML page for a group, module, or QML module.
 
void generateGenericCollectionPage (CollectionNode *cn, CodeMarker *marker) override
 Generate the HTML page for a generic collection.
 
QString fileExtension () const override
 Returns "html" for this subclass of Generator.
 
- Protected Member Functions inherited from XmlGenerator
QString registerRef (const QString &ref, bool xmlCompliant=false)
 Registers an anchor reference and returns a unique and cleaned copy of the reference (the one that should be used in the output).
 
QString refForNode (const Node *node)
 Generates a clean and unique reference for the given node.
 
QString linkForNode (const Node *node, const Node *relative)
 Construct the link string for the node and return it.
 
QString getLink (const Atom *atom, const Node *relative, const Node **node)
 This function is called for links, i.e.
 
QString getAutoLink (const Atom *atom, const Node *relative, const Node **node, Node::Genus=Node::DontCare)
 This function is called for autolinks, i.e.
 
std::pair< QString, QStringanchorForNode (const Node *node)
 
- Protected Member Functions inherited from Generator
void beginSubPage (const Node *node, const QString &fileName)
 Creates the file named fileName in the output directory.
 
void endSubPage ()
 Flush the text stream associated with the subpage, and then pop it off the text stream stack and delete it.
 
virtual void generateAlsoList (const Node *node, CodeMarker *marker)
 
virtual void generateAlsoList (const Node *node)
 
virtual void generateBody (const Node *node, CodeMarker *marker)
 Generate the body of the documentation from the qdoc comment found with the entity represented by the node.
 
virtual void generateDocumentation (Node *node)
 Recursive writing of HTML files from the root node.
 
virtual bool generateText (const Text &text, const Node *relative, CodeMarker *marker)
 Generate the documentation for relative.
 
virtual bool generateText (const Text &text, const Node *relative)
 
virtual int skipAtoms (const Atom *atom, Atom::AtomType type) const
 
void initializeTextOutput ()
 Resets the variables used during text output.
 
QString fileName (const Node *node, const QString &extension=QString()) const
 If the node has a URL, return the URL as the file name.
 
QMap< QString, QString > & formattingLeftMap ()
 
QMap< QString, QString > & formattingRightMap ()
 
const AtomgenerateAtomList (const Atom *atom, const Node *relative, CodeMarker *marker, bool generate, int &numGeneratedAtoms)
 
void generateEnumValuesForQmlProperty (const Node *node, CodeMarker *marker)
 
void generateRequiredLinks (const Node *node, CodeMarker *marker)
 Generates either a link to the project folder for example node, or a list of links files/images if 'url.examples config' variable is not defined.
 
void generateLinkToExample (const ExampleNode *en, CodeMarker *marker, const QString &exampleUrl)
 Generates an external link to the project folder for example node.
 
virtual void generateFileList (const ExampleNode *en, CodeMarker *marker, bool images)
 This function is called when the documentation for an example is being formatted.
 
void generateSince (const Node *node, CodeMarker *marker)
 
void generateNoexceptNote (const Node *node, CodeMarker *marker)
 
void generateStatus (const Node *node, CodeMarker *marker)
 
virtual void generateAddendum (const Node *node, Addendum type, CodeMarker *marker, bool generateNote)
 Generates an addendum note of type type for node, using marker as the code marker.
 
virtual void generateAddendum (const Node *node, Addendum type, CodeMarker *marker)
 
void generateThreadSafeness (const Node *node, CodeMarker *marker)
 Generates text that explains how threadsafe and/or reentrant node is.
 
bool generateComparisonCategory (const Node *node, CodeMarker *marker=nullptr)
 
bool generateComparisonList (const Node *node)
 Generates a list of types that compare to node with the comparison category that applies for the relationship, followed by (an optional) descriptive text.
 
void generateOverloadedSignal (const Node *node, CodeMarker *marker)
 If the node is an overloaded signal, add a node with an example on how to connect to it.
 
QString indent (int level, const QString &markedCode)
 
QTextStreamout ()
 
QString outFileName ()
 
bool parseArg (const QString &src, const QString &tag, int *pos, int n, QStringView *contents, QStringView *par1=nullptr)
 
void unknownAtom (const Atom *atom)
 
int appendSortedQmlNames (Text &text, const Node *base, const NodeList &subs)
 
void appendFullName (Text &text, const Node *apparentNode, const Node *relative, const Node *actualNode=nullptr)
 
void appendFullName (Text &text, const Node *apparentNode, const QString &fullName, const Node *actualNode)
 
int appendSortedNames (Text &text, const ClassNode *classe, const QList< RelatedClass > &classes)
 
void appendSignature (Text &text, const Node *node)
 Append the signature for the function named in node to text, so that is a link to the documentation for that function.
 
void signatureList (const NodeList &nodes, const Node *relative, CodeMarker *marker)
 Generate a bullet list of function signatures.
 
void addImageToCopy (const ExampleNode *en, const ResolvedFile &resolved_file)
 

Private Member Functions

QString fileBase (const Node *node) const override
 

Additional Inherited Members

- Public Types inherited from Generator
enum  ListType { Generic , Obsolete }
 
enum  Addendum {
  Invokable , PrivateSignal , QmlSignalHandler , AssociatedProperties ,
  BindableProperty
}
 
- Static Protected Member Functions inherited from XmlGenerator
static bool hasBrief (const Node *node)
 Do not display.
 
static bool isThreeColumnEnumValueTable (const Atom *atom)
 Determines whether the list atom should be shown with three columns (constant-value-description).
 
static bool isOneColumnValueTable (const Atom *atom)
 Determines whether the list atom should be shown with just one column (value).
 
static int hOffset (const Node *node)
 Header offset depending on the type of the node.
 
static void rewritePropertyBrief (const Atom *atom, const Node *relative)
 Rewrites the brief of this node depending on its first word.
 
static Node::NodeType typeFromString (const Atom *atom)
 Returns the type of this atom as an enumeration.
 
static void setImageFileName (const Node *relative, const QString &fileName)
 For images shown in examples, set the image file to the one it will have once the documentation is generated.
 
static std::pair< QString, int > getAtomListValue (const Atom *atom)
 Handles the differences in lists between list tags and since tags, and returns the content of the list entry atom (first member of the pair).
 
static std::pair< QString, QStringgetTableWidthAttr (const Atom *atom)
 Parses the table attributes from the given atom.
 
static QString targetType (const Node *node)
 Returns a string describing the node type.
 
- Static Protected Member Functions inherited from Generator
static QFileopenSubPageFile (const PageNode *node, const QString &fileName)
 Creates the file named fileName in the output directory and returns a QFile pointing to this file.
 
static bool matchAhead (const Atom *atom, Atom::AtomType expectedAtomType)
 
static QString outputPrefix (const Node *node)
 
static QString outputSuffix (const Node *node)
 
static void supplementAlsoList (const Node *node, QList< Text > &alsoList)
 
static QString trimmedTrailing (const QString &string, const QString &prefix, const QString &suffix)
 Trims trailing whitespace off the string and returns the trimmed string.
 
static QString formatSince (const Node *node)
 
static QString getOverloadedSignalCode (const Node *node)
 Returns the string containing an example code of the input node, if it is an overloaded signal.
 
static bool hasExceptions (const Node *node, NodeList &reentrant, NodeList &threadsafe, NodeList &nonreentrant)
 
static bool comparePaths (const QString &a, const QString &b)
 
static bool appendTrademark (const Atom *atom)
 Returns true if a trademark symbol should be appended to the output as determined by atom.
 
static std::optional< std::pair< QString, QString > > cmakeRequisite (const CollectionNode *cn)
 Generate the CMake requisite for the node cn, i.e.
 
static Qt::SortOrder sortOrder (const QString &str)
 
- Protected Attributes inherited from XmlGenerator
QHash< QString, QStringrefMap
 
const Nodem_linkNode { nullptr }
 
- Protected Attributes inherited from Generator
QString naturalLanguage
 
QString tagFile_
 
QStack< QTextStream * > outStreamStack
 
FileResolverfile_resolver
 
QDocDatabasem_qdb { nullptr }
 
bool m_inLink { false }
 
bool m_inContents { false }
 
bool m_inSectionHeading { false }
 
bool m_inTableHeader { false }
 
bool m_threeColumnEnumValueTable { true }
 
bool m_showInternal { false }
 
bool m_quoting { false }
 
int m_numTableRows { 0 }
 
QString m_link {}
 
QString m_sectionNumber {}
 
- Static Protected Attributes inherited from XmlGenerator
static const QRegularExpression m_funcLeftParen
 

Detailed Description

Definition at line 22 of file htmlgenerator.h.

Constructor & Destructor Documentation

◆ HtmlGenerator()

HtmlGenerator::HtmlGenerator ( FileResolver & file_resolver)

Definition at line 46 of file htmlgenerator.cpp.

References XmlGenerator::XmlGenerator().

Referenced by WebXMLGenerator::WebXMLGenerator(), and processQdocconfFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ~HtmlGenerator()

HtmlGenerator::~HtmlGenerator ( )
override

Destroys the HTML output generator.

Deletes the singleton instance of HelpProjectWriter and the ManifestWriter instance.

Definition at line 89 of file htmlgenerator.cpp.

Member Function Documentation

◆ fileBase()

QString HtmlGenerator::fileBase ( const Node * node) const
overrideprivatevirtual

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 3401 of file htmlgenerator.cpp.

References Node< _Tp >::isAggregate(), and Node< _Tp >::isDeprecated().

+ Here is the call graph for this function:

◆ fileExtension()

QString HtmlGenerator::fileExtension ( ) const
nodiscardoverrideprotectedvirtual

Returns "html" for this subclass of Generator.

Implements Generator.

Reimplemented in WebXMLGenerator.

Definition at line 1592 of file htmlgenerator.cpp.

◆ format()

QString HtmlGenerator::format ( )
overridevirtual

Implements Generator.

Reimplemented in WebXMLGenerator.

Definition at line 222 of file htmlgenerator.cpp.

◆ generateAtom()

qsizetype HtmlGenerator::generateAtom ( const Atom * atom,
const Node * relative,
CodeMarker * marker )
overrideprotectedvirtual

Generate html from an instance of Atom.

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 290 of file htmlgenerator.cpp.

References Sections::Sections(), Atom::AnnotatedList, Node< _Tp >::API, Generator::appendTrademark(), Atom::AutoLink, Generator::autolinkErrors(), Atom::BaseName, Atom::BriefLeft, Atom::CaptionRight, Atom::CodeQuoteArgument, Atom::CodeQuoteCommand, Atom::ComparesLeft, Atom::ComparesRight, Node< _Tp >::doc(), Node< _Tp >::DontCare, Atom::ExampleFileLink, Atom::ExampleImageLink, Generator::file_resolver, Atom::FootnoteLeft, Atom::FormatElse, Atom::FormatEndif, Atom::FormatIf, Atom::FormattingRight, Atom::GeneratedList, QDocDatabase::getAttributions(), QDocDatabase::getCppClasses(), QDocDatabase::getExamples(), Node< _Tp >::Group, XmlGenerator::hasBrief(), XmlGenerator::hOffset(), Atom::Image, Atom::ImageText, Atom::ImportantLeft, Atom::InlineImage, Node< _Tp >::isClassNode(), Node< _Tp >::isDeprecated(), Node< _Tp >::isEnumType(), Atom::isLinkAtom(), XmlGenerator::isThreeColumnEnumValueTable(), Atom::Keyword, Atom::Link, Atom::LinkNode, Atom::ListItemLeft, Atom::ListItemNumber, Atom::ListItemRight, Atom::ListLeft, Atom::ListRight, Atom::ListTagLeft, Doc::location(), Node< _Tp >::location(), Generator::m_inContents, Generator::m_inLink, Generator::m_inSectionHeading, Generator::m_inTableHeader, Generator::m_numTableRows, Generator::m_qdb, Generator::m_threeColumnEnumValueTable, Generator::matchAhead(), Node< _Tp >::Module, Atom::NavAutoLink, Atom::NavLink, Atom::next(), NodeMultiMap, Generator::noLinkErrors(), Atom::Nop, Atom::NoteLeft, Atom::ParaRight, Node< _Tp >::parent(), QDocDatabase::qdocDB(), Node< _Tp >::QmlModule, Node< _Tp >::QmlType, Node< _Tp >::QmlValueType, XmlGenerator::rewritePropertyBrief(), Atom::SectionHeadingLeft, Atom::SectionLeft, Atom::SectionRight, Atom::SidebarLeft, Atom::SidebarRight, Atom::SinceList, Atom::SnippetCommand, Atom::SnippetIdentifier, Atom::SnippetLocation, Atom::String, Atom::TableHeaderLeft, Atom::TableItemLeft, Atom::TableItemRight, Atom::TableLeft, Atom::TableOfContents, Atom::type(), XmlGenerator::typeFromString(), Generator::unknownAtom(), and Atom::WarningLeft.

+ Here is the call graph for this function:

◆ generateCollectionNode()

void HtmlGenerator::generateCollectionNode ( CollectionNode * cn,
CodeMarker * marker )
overrideprotectedvirtual

Generate the HTML page for a group, module, or QML module.

Reimplemented from Generator.

Definition at line 1500 of file htmlgenerator.cpp.

References Node< _Tp >::DOC, Node< _Tp >::doc(), Node< _Tp >::DontCare, Generator::generateBody(), Generator::generateSince(), Generator::generateStatus(), Node< _Tp >::genus(), CollectionNode::getMembers(), Node< _Tp >::isClassNode(), Node< _Tp >::isModule(), Node< _Tp >::Namespace, and PageNode::noAutoList().

+ Here is the call graph for this function:

◆ generateCppReferencePage()

◆ generateDocs()

void HtmlGenerator::generateDocs ( )
overridevirtual

If qdoc is in the {-prepare} phase, traverse the primary tree to generate the index file for the current module.

If qdoc is in the {-generate} phase, traverse the primary tree to generate all the HTML documentation for the current module. Then generate the help file and the tag file.

Reimplemented from Generator.

Definition at line 235 of file htmlgenerator.cpp.

References HelpProjectWriter::generate(), Generator::generateDocs(), ManifestWriter::generateManifestFiles(), Config::generating(), Generator::m_qdb, and Config::preparing().

+ Here is the call graph for this function:

◆ generateExampleFilePage()

void HtmlGenerator::generateExampleFilePage ( const Node * en,
ResolvedFile resolved_file,
CodeMarker * marker )
overrideprotectedvirtual

Generate an html file with the contents of a C++ or QML source file.

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 266 of file htmlgenerator.cpp.

References CodeMarker::atomType(), Node< _Tp >::doc(), Generator::endSubPage(), Doc::location(), and Doc::quoteFromFile().

+ Here is the call graph for this function:

◆ generateGenericCollectionPage()

void HtmlGenerator::generateGenericCollectionPage ( CollectionNode * cn,
CodeMarker * marker )
overrideprotectedvirtual

Generate the HTML page for a generic collection.

This is usually a collection of C++ elements that are related to an element in a different module.

Reimplemented from Generator.

Definition at line 1565 of file htmlgenerator.cpp.

◆ generatePageNode()

void HtmlGenerator::generatePageNode ( PageNode * pn,
CodeMarker * marker )
overrideprotectedvirtual

Generate the HTML page for an entity that doesn't map to any underlying parsable C++ or QML element.

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 1467 of file htmlgenerator.cpp.

References Generator::generateBody(), and Node< _Tp >::isExample().

+ Here is the call graph for this function:

◆ generateProxyPage()

void HtmlGenerator::generateProxyPage ( Aggregate * aggregate,
CodeMarker * marker )
overrideprotectedvirtual

Reimplemented from Generator.

Definition at line 1293 of file htmlgenerator.cpp.

References Sections::Sections(), Node< _Tp >::doc(), Generator::generateBody(), Node< _Tp >::isProxyNode(), Sections::stdDetailsSections(), and Sections::stdSummarySections().

+ Here is the call graph for this function:

◆ generateQmlTypePage()

void HtmlGenerator::generateQmlTypePage ( QmlTypeNode * qcn,
CodeMarker * marker )
overrideprotectedvirtual

Generate the HTML page for a QML type.

\qcn is the QML type. \marker is the code markeup object.

Reimplemented from Generator.

Definition at line 1384 of file htmlgenerator.cpp.

References Generator::generateBody(), Generator::generateStatus(), Node< _Tp >::isQmlBasicType(), and Generator::setQmlTypeContext().

+ Here is the call graph for this function:

◆ initializeGenerator()

void HtmlGenerator::initializeGenerator ( )
overridevirtual

Initializes the HTML output generator's data structures from the configuration (Config) singleton.

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 106 of file htmlgenerator.cpp.

References ManifestWriter::ManifestWriter(), and Generator::initializeGenerator().

Referenced by WebXMLGenerator::initializeGenerator().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ protect()

QString HtmlGenerator::protect ( const QString & string)
static

Definition at line 3361 of file htmlgenerator.cpp.

◆ protectEnc()

QString HtmlGenerator::protectEnc ( const QString & string)

Definition at line 3356 of file htmlgenerator.cpp.

◆ terminateGenerator()

void HtmlGenerator::terminateGenerator ( )
overridevirtual

Gracefully terminates the HTML output generator.

Reimplemented from Generator.

Reimplemented in WebXMLGenerator.

Definition at line 217 of file htmlgenerator.cpp.

References Generator::terminateGenerator().

Referenced by WebXMLGenerator::terminateGenerator().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

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