Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <htmlgenerator.h>
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 Generator * | currentGenerator () |
static Generator * | generatorForFormat (const QString &format) |
static void | initialize () |
static const QString & | outputDir () |
static const QString & | outputSubdir () |
static void | terminate () |
static const QStringList & | outputFileNames () |
static bool | noLinkErrors () |
static bool | autolinkErrors () |
static QString | defaultModuleName () |
static void | resetUseOutputSubdirs () |
static bool | useOutputSubdirs () |
static void | setQmlTypeContext (QmlTypeNode *t) |
static QmlTypeNode * | qmlTypeContext () |
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, QString > | anchorForNode (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 Atom * | generateAtomList (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) |
QTextStream & | out () |
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 QStringList &knownTypes, 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, QString > | getTableWidthAttr (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 QFile * | openSubPageFile (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, QString > | refMap |
const Node * | m_linkNode { nullptr } |
Protected Attributes inherited from Generator | |
QString | naturalLanguage |
QString | tagFile_ |
QStack< QTextStream * > | outStreamStack |
FileResolver & | file_resolver |
QDocDatabase * | m_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 |
Definition at line 22 of file htmlgenerator.h.
HtmlGenerator::HtmlGenerator | ( | FileResolver & | file_resolver | ) |
Definition at line 46 of file htmlgenerator.cpp.
References XmlGenerator::XmlGenerator().
Referenced by WebXMLGenerator::WebXMLGenerator(), and processQdocconfFile().
|
override |
Destroys the HTML output generator.
Deletes the singleton instance of HelpProjectWriter and the ManifestWriter instance.
Definition at line 89 of file htmlgenerator.cpp.
Reimplemented from Generator.
Reimplemented in WebXMLGenerator.
Definition at line 3404 of file htmlgenerator.cpp.
References Node< _Tp >::isAggregate(), and Node< _Tp >::isDeprecated().
|
nodiscardoverrideprotectedvirtual |
Returns "html" for this subclass of Generator.
Implements Generator.
Reimplemented in WebXMLGenerator.
Definition at line 1583 of file htmlgenerator.cpp.
|
overridevirtual |
Implements Generator.
Reimplemented in WebXMLGenerator.
Definition at line 223 of file htmlgenerator.cpp.
|
overrideprotectedvirtual |
Generate html from an instance of Atom.
Reimplemented from Generator.
Reimplemented in WebXMLGenerator.
Definition at line 291 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.
|
overrideprotectedvirtual |
Generate the HTML page for a group, module, or QML module.
Reimplemented from Generator.
Definition at line 1491 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().
|
overrideprotectedvirtual |
Generate a reference page for the C++ class, namespace, or header file documented in node using the code marker provided.
Reimplemented from Generator.
Reimplemented in WebXMLGenerator.
Definition at line 1075 of file htmlgenerator.cpp.
References Sections::Sections(), Tree::camelCaseModuleName(), Node< _Tp >::doc(), NamespaceNode::docNode(), Atom::FormattingLeft, Atom::FormattingRight, Generator::generateBody(), Generator::generateComparisonCategory(), Generator::generateComparisonList(), Generator::generateSince(), Generator::generateStatus(), Generator::generateThreadSafeness(), Node< _Tp >::hasDoc(), Node< _Tp >::isClassNode(), NamespaceNode::isDocumentedHere(), Node< _Tp >::isHeader(), Node< _Tp >::isNamespace(), Atom::LinkNode, Node< _Tp >::location(), Node< _Tp >::parent(), Sections::stdCppClassDetailsSections(), Sections::stdCppClassSummarySections(), Sections::stdDetailsSections(), Sections::stdSummarySections(), Atom::String, Node< _Tp >::templateDecl(), and NamespaceNode::tree().
|
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 236 of file htmlgenerator.cpp.
References HelpProjectWriter::generate(), Generator::generateDocs(), ManifestWriter::generateManifestFiles(), Config::generating(), Generator::m_qdb, and Config::preparing().
|
overrideprotectedvirtual |
Generate an html file with the contents of a C++ or QML source file.
Reimplemented from Generator.
Reimplemented in WebXMLGenerator.
Definition at line 267 of file htmlgenerator.cpp.
References CodeMarker::atomType(), Node< _Tp >::doc(), Generator::endSubPage(), Doc::location(), and Doc::quoteFromFile().
|
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 1556 of file htmlgenerator.cpp.
|
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 1458 of file htmlgenerator.cpp.
References Generator::generateBody(), and Node< _Tp >::isExample().
|
overrideprotectedvirtual |
Reimplemented from Generator.
Definition at line 1284 of file htmlgenerator.cpp.
References Sections::Sections(), Node< _Tp >::doc(), Generator::generateBody(), Node< _Tp >::isProxyNode(), Sections::stdDetailsSections(), and Sections::stdSummarySections().
|
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 1375 of file htmlgenerator.cpp.
References Generator::generateBody(), Generator::generateStatus(), Node< _Tp >::isQmlBasicType(), and Generator::setQmlTypeContext().
|
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().
Definition at line 3364 of file htmlgenerator.cpp.
Definition at line 3359 of file htmlgenerator.cpp.
|
overridevirtual |
Gracefully terminates the HTML output generator.
Reimplemented from Generator.
Reimplemented in WebXMLGenerator.
Definition at line 218 of file htmlgenerator.cpp.
References Generator::terminateGenerator().
Referenced by WebXMLGenerator::terminateGenerator().