Cutelee  6.1.0
Public Member Functions | Protected Member Functions | List of all members
Cutelee::Node Class Referenceabstract

Base class for all nodes. More...

#include <cutelee/node.h>

Inheritance diagram for Cutelee::Node:
Inheritance graph
[legend]

Public Member Functions

 Node (QObject *parent={})
 
 ~Node () override
 
virtual void render (OutputStream *stream, Context *c) const =0
 

Protected Member Functions

TemplateImpl * containerTemplate () const
 
void streamValueInContext (OutputStream *stream, const QVariant &input, Cutelee::Context *c) const
 

Detailed Description

The Node class can be implemented to make additional functionality available to Templates.

A node is represented in template markup as content surrounded by percent signed tokens.

text content
{% some_tag arg1 arg2 %}
text content
{% some_other_tag arg1 arg2 %}
text content
{% end_some_other_tag %}
text content

This is parsed into a tree of Node objects by an implementation of AbstractNodeFactory. The Node objects can then later be rendered by their render method.

Rendering a Node will usually mean writing some output to the stream. The content written to the stream could be determined by the arguments to the tag, or by the content of child nodes between a start and end tag, or both.

See also
FilterExpression
Tags
Author
Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com

Definition at line 77 of file node.h.

Constructor & Destructor Documentation

◆ Node()

Node::Node ( QObject *  parent = {})
explicit

Constructor.

Parameters
parentThe parent QObject

Definition at line 84 of file node.cpp.

◆ ~Node()

Node::~Node ( )
override

Destructor.

Definition at line 86 of file node.cpp.

Member Function Documentation

◆ containerTemplate()

Template * Node::containerTemplate ( ) const
protected

Returns a raw pointer to the Template this Node is in.

Definition at line 107 of file node.cpp.

Referenced by MediaFinderNode::render(), IncludeNode::render(), and ConstantIncludeNode::render().

◆ render()

virtual void Cutelee::Node::render ( OutputStream stream,
Context c 
) const
pure virtual

◆ streamValueInContext()

void Node::streamValueInContext ( OutputStream stream,
const QVariant input,
Cutelee::Context c 
) const
protected

Renders the value input in the Context c. This will involve escaping input if necessary.

This is only relevant to developing template tags.

Definition at line 88 of file node.cpp.

References Cutelee::getSafeString(), and Cutelee::SafeString::isSafe().

Referenced by MediaFinderNode::render(), I18nNode::render(), I18ncNode::render(), I18ncpNode::render(), I18npNode::render(), L10nFileSizeNode::render(), and L10nMoneyNode::render().