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
templategenerator.cpp File Reference

(d140f2c07e33c5ab7750bb885847dced699bf9cf)

#include "templategenerator.h"
#include "aggregate.h"
#include "catalogentrysource.h"
#include "codemarker.h"
#include "collectionnode.h"
#include "config.h"
#include "documentationtraverser.h"
#include "filedocumentwriter.h"
#include "documentwriter.h"
#include "generator.h"
#include "hrefresolver.h"
#include "injabridge.h"
#include "ir/builder.h"
#include "ir/document.h"
#include "ir/listexpander.h"
#include "linkresolver.h"
#include "node.h"
#include "nodeextractor.h"
#include "outputcontext.h"
#include "outputproducerregistry.h"
#include "pagenode.h"
#include "qdocdatabase.h"
#include "qmltypenode.h"
#include "sections.h"
#include "tree.h"
#include "utilities.h"
#include <optional>
#include <utility>
#include <variant>
#include <QtCore/qdir.h>
#include <QtCore/qdiriterator.h>
#include <QtCore/qfile.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qloggingcategory.h>
#include <QtCore/qtextstream.h>
Include dependency graph for templategenerator.cpp:

Go to the source code of this file.

Classes

struct  LoadedTemplate

Functions

static void processDocumentBlocks (IR::ListExpander *expander, LinkResolver *resolver, IR::Document &ir, const Node *page, const NodeExtractor::SemanticOrigins *origins=nullptr)
static std::optional< LoadedTemplate > loadTemplate (const QString &templateDir, const QString &name)
static void writeOrDiscardRenderResult (FileDocumentWriter *writer, const InjaBridge::RenderContext &context, const InjaBridge::RenderResult &result, const TemplateGenerator::RenderFailureHandler &reportFailure)

Function Documentation

◆ loadTemplate()

std::optional< LoadedTemplate > loadTemplate ( const QString & templateDir,
const QString & name )
static

Definition at line 59 of file templategenerator.cpp.

◆ processDocumentBlocks()

void processDocumentBlocks ( IR::ListExpander * expander,
LinkResolver * resolver,
IR::Document & ir,
const Node * page,
const NodeExtractor::SemanticOrigins * origins = nullptr )
static

Expansion runs first: the expander materializes catalog subtrees from ListPlaceholder blocks, with entry hrefs already resolved through HrefResolver at extraction time. The link resolver then walks the fully-populated tree on its single pass, picking up any inline links inside brief content the expander emitted. Each pass guards itself, so callers don't need to know which collaborators are present — and so every block-bearing field gets both passes consistently rather than drifting whenever a new field is added.

The resolver receives two roles: page, the output page node, stays the URL and catalog context (hrefs must remain relative to the rendered page); semantic is the node whose documentation the content was authored in. Page-level fields keep page for both, while detail member content resolves against the member that carries it.

Definition at line 658 of file templategenerator.cpp.

◆ writeOrDiscardRenderResult()

void writeOrDiscardRenderResult ( FileDocumentWriter * writer,
const InjaBridge::RenderContext & context,
const InjaBridge::RenderResult & result,
const TemplateGenerator::RenderFailureHandler & reportFailure )
static

Definition at line 77 of file templategenerator.cpp.