Skip to main content

The HtmlEntityMapper Class Reference

Singleton helper class to map html entities to other formats. More...

Declaration

class HtmlEntityMapper { ... }

Included Headers

#include <src/htmlentity.h>

Enumerations Index

enumSymType { ... }
enumPerlType { ... }

Private Constructors Index

HtmlEntityMapper ()

Private Destructor Index

~HtmlEntityMapper ()

Public Member Functions Index

SymTypename2sym (const QCString &symName) const

Give code of the requested HTML entity name. More...

const char *utf8 (SymType symb, bool useInPrintf=FALSE) const

Access routine to the UTF8 code of the HTML entity. More...

const char *html (SymType symb, bool useInPrintf=FALSE) const

Access routine to the html code of the HTML entity. More...

const char *xml (SymType symb) const

Access routine to the XML code of the HTML entity. More...

const char *docbook (SymType symb) const

Access routine to the docbook code of the HTML entity. More...

const char *latex (SymType symb) const

Access routine to the LaTeX code of the HTML entity. More...

const char *man (SymType symb) const

Access routine to the man code of the HTML entity. More...

const char *rtf (SymType symb) const

Access routine to the RTF code of the HTML entity. More...

const PerlSymb *perl (SymType symb) const

Access routine to the perl struct with the perl code of the HTML entity. More...

voidwriteXMLSchema (TextStream &t)

Private Member Functions Index

voidvalidate ()

Routine to check if the entries of the html_entities are numbered correctly. More...

Private Member Attributes Index

std::unordered_map< std::string, SymType >m_name2sym

Public Static Functions Index

static HtmlEntityMapper &instance ()

Returns the one and only instance of the HTML entity mapper. More...

Private Static Attributes Index

static HtmlEntityMapper *s_instance

Description

Singleton helper class to map html entities to other formats.

Definition at line 27 of file htmlentity.h.

Enumerations

PerlType

enum HtmlEntityMapper::PerlType
Enumeration values
Perl_unknown (= 0)
Perl_string
Perl_char
Perl_symbol
Perl_umlaut
Perl_acute
Perl_grave
Perl_circ
Perl_slash
Perl_tilde
Perl_cedilla
Perl_ring

Definition at line 92 of file htmlentity.h.

SymType

enum HtmlEntityMapper::SymType
Enumeration values
Sym_Unknown (= -1)
Sym_nbsp
Sym_iexcl
Sym_cent
Sym_pound
Sym_curren
Sym_yen
Sym_brvbar
Sym_sect
Sym_uml
Sym_copy
Sym_ordf
Sym_laquo
Sym_not
Sym_shy
Sym_reg
Sym_macr
Sym_deg
Sym_plusmn
Sym_sup2
Sym_sup3
Sym_acute
Sym_micro
Sym_para
Sym_middot
Sym_cedil
Sym_sup1
Sym_ordm
Sym_raquo
Sym_frac14
Sym_frac12
Sym_frac34
Sym_iquest
Sym_Agrave
Sym_Aacute
Sym_Acirc
Sym_Atilde
Sym_Auml
Sym_Aring
Sym_AElig
Sym_Ccedil
Sym_Egrave
Sym_Eacute
Sym_Ecirc
Sym_Euml
Sym_Igrave
Sym_Iacute
Sym_Icirc
Sym_Iuml
Sym_ETH
Sym_Ntilde
Sym_Ograve
Sym_Oacute
Sym_Ocirc
Sym_Otilde
Sym_Ouml
Sym_times
Sym_Oslash
Sym_Ugrave
Sym_Uacute
Sym_Ucirc
Sym_Uuml
Sym_Yacute
Sym_THORN
Sym_szlig
Sym_agrave
Sym_aacute
Sym_acirc
Sym_atilde
Sym_auml
Sym_aring
Sym_aelig
Sym_ccedil
Sym_egrave
Sym_eacute
Sym_ecirc
Sym_euml
Sym_igrave
Sym_iacute
Sym_icirc
Sym_iuml
Sym_eth
Sym_ntilde
Sym_ograve
Sym_oacute
Sym_ocirc
Sym_otilde
Sym_ouml
Sym_divide
Sym_oslash
Sym_ugrave
Sym_uacute
Sym_ucirc
Sym_uuml
Sym_yacute
Sym_thorn
Sym_yuml
Sym_fnof
Sym_Alpha
Sym_Beta
Sym_Gamma
Sym_Delta
Sym_Epsilon
Sym_Zeta
Sym_Eta
Sym_Theta
Sym_Iota
Sym_Kappa
Sym_Lambda
Sym_Mu
Sym_Nu
Sym_Xi
Sym_Omicron
Sym_Pi
Sym_Rho
Sym_Sigma
Sym_Tau
Sym_Upsilon
Sym_Phi
Sym_Chi
Sym_Psi
Sym_Omega
Sym_alpha
Sym_beta
Sym_gamma
Sym_delta
Sym_epsilon
Sym_zeta
Sym_eta
Sym_theta
Sym_iota
Sym_kappa
Sym_lambda
Sym_mu
Sym_nu
Sym_xi
Sym_omicron
Sym_pi
Sym_rho
Sym_sigmaf
Sym_sigma
Sym_tau
Sym_upsilon
Sym_phi
Sym_chi
Sym_psi
Sym_omega
Sym_thetasym
Sym_upsih
Sym_piv
Sym_bull
Sym_hellip
Sym_prime
Sym_Prime
Sym_oline
Sym_frasl
Sym_weierp
Sym_image
Sym_real
Sym_trade
Sym_alefsym
Sym_larr
Sym_uarr
Sym_rarr
Sym_darr
Sym_harr
Sym_crarr
Sym_lArr
Sym_uArr
Sym_rArr
Sym_dArr
Sym_hArr
Sym_forall
Sym_part
Sym_exist
Sym_empty
Sym_nabla
Sym_isin
Sym_notin
Sym_ni
Sym_prod
Sym_sum
Sym_minus
Sym_lowast
Sym_radic
Sym_prop
Sym_infin
Sym_ang
Sym_and
Sym_or
Sym_cap
Sym_cup
Sym_int
Sym_there4
Sym_sim
Sym_cong
Sym_asymp
Sym_ne
Sym_equiv
Sym_le
Sym_ge
Sym_sub
Sym_sup
Sym_nsub
Sym_sube
Sym_supe
Sym_oplus
Sym_otimes
Sym_perp
Sym_sdot
Sym_lceil
Sym_rceil
Sym_lfloor
Sym_rfloor
Sym_lang
Sym_rang
Sym_loz
Sym_spades
Sym_clubs
Sym_hearts
Sym_diams
Sym_quot
Sym_amp
Sym_lt
Sym_gt
Sym_OElig
Sym_oelig
Sym_Scaron
Sym_scaron
Sym_Yuml
Sym_circ
Sym_tilde
Sym_ensp
Sym_emsp
Sym_thinsp
Sym_zwnj
Sym_zwj
Sym_lrm
Sym_rlm
Sym_ndash
Sym_mdash
Sym_lsquo
Sym_rsquo
Sym_sbquo
Sym_ldquo
Sym_rdquo
Sym_bdquo
Sym_dagger
Sym_Dagger
Sym_permil
Sym_lsaquo
Sym_rsaquo
Sym_euro
Sym_tm
Sym_apos
Sym_BSlash
Sym_At
Sym_Less
Sym_Greater
Sym_Amp
Sym_Dollar
Sym_Hash
Sym_DoubleColon
Sym_Percent
Sym_Pipe
Sym_Quot
Sym_Minus
Sym_Plus
Sym_Dot
Sym_Colon
Sym_Equal
Sym_Exclam
Sym_Quest

Definition at line 30 of file htmlentity.h.

30 enum SymType { Sym_Unknown = -1,
82
83 /* doxygen extensions */
85
86 /* doxygen commands mapped */
91 };

Private Constructors

HtmlEntityMapper()

HtmlEntityMapper::HtmlEntityMapper ()

Declaration at line 114 of file htmlentity.h, definition at line 325 of file htmlentity.cpp.

326{
327 for (const auto &entity : g_htmlEntities)
328 {
329 m_name2sym.emplace(entity.item,entity.symb);
330 }
331 validate();
332}

References g_htmlEntities, m_name2sym and validate.

Referenced by instance.

Private Destructor

~HtmlEntityMapper()

HtmlEntityMapper::~HtmlEntityMapper ()

Declaration at line 115 of file htmlentity.h, definition at line 334 of file htmlentity.cpp.

Public Member Functions

docbook()

const char * HtmlEntityMapper::docbook (SymType symb)

Access routine to the docbook code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the docbook code of the HTML entity, in case the docbook code is unknown nullptr is returned.

Declaration at line 101 of file htmlentity.h, definition at line 402 of file htmlentity.cpp.

403{
404 return g_htmlEntities[symb].docbook;
405}

Reference g_htmlEntities.

Referenced by DocbookDocVisitor::operator().

html()

const char * HtmlEntityMapper::html (SymType symb, bool useInPrintf=FALSE)

Access routine to the html code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

useInPrintf

If TRUE the result will be escaped such that it can be used in a printf string pattern

Returns

the html representation of the HTML entity, in case the html code is unknown nullptr is returned.

Declaration at line 99 of file htmlentity.h, definition at line 373 of file htmlentity.cpp.

373const char *HtmlEntityMapper::html(HtmlEntityMapper::SymType symb,bool useInPrintf) const
374{
375 if (useInPrintf && symb==HtmlEntityMapper::Sym_Percent)
376 {
377 return "%%"; // escape for printf
378 }
379 else
380 {
381 return g_htmlEntities[symb].html;
382 }
383}

References g_htmlEntities and Sym_Percent.

Referenced by HtmlDocVisitor::operator() and TextDocVisitor::operator().

latex()

const char * HtmlEntityMapper::latex (SymType symb)

Access routine to the LaTeX code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the LaTeX code of the HTML entity, in case the LaTeX code is unknown nullptr is returned.

Declaration at line 102 of file htmlentity.h, definition at line 413 of file htmlentity.cpp.

414{
415 return g_htmlEntities[symb].latex;
416}

Reference g_htmlEntities.

Referenced by filterLatexString and LatexDocVisitor::operator().

man()

const char * HtmlEntityMapper::man (SymType symb)

Access routine to the man code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the man of the HTML entity, in case the man code is unknown nullptr is returned.

Declaration at line 103 of file htmlentity.h, definition at line 424 of file htmlentity.cpp.

425{
426 return g_htmlEntities[symb].man;
427}

Reference g_htmlEntities.

Referenced by ManDocVisitor::operator().

name2sym()

HtmlEntityMapper::SymType HtmlEntityMapper::name2sym (const QCString & symName)

Give code of the requested HTML entity name.

Parameters
symName

HTML entity name without & and ;

Returns

the code for the requested HTML entity name, in case the requested HTML item does not exist HtmlEntityMapper::Sym_unknown is returned.

Declaration at line 97 of file htmlentity.h, definition at line 458 of file htmlentity.cpp.

459{
460 auto it = m_name2sym.find(symName.str());
461 return it!=m_name2sym.end() ? it->second : HtmlEntityMapper::Sym_Unknown;
462}

References m_name2sym, QCString::str and Sym_Unknown.

Referenced by convertCharEntitiesToUTF8, convertToDocBook, DocSymbol::decodeSymbol and filterLatexString.

perl()

const HtmlEntityMapper::PerlSymb * HtmlEntityMapper::perl (SymType symb)

Access routine to the perl struct with the perl code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the pointer to perl struct with the perl code of the HTML entity, in case the perl code does not exists the nullptr pointer is entered in the symb field and in the HtmlEntityMapper::Perl_unknown in the type field.

Declaration at line 110 of file htmlentity.h, definition at line 447 of file htmlentity.cpp.

Reference g_htmlEntities.

Referenced by PerlModDocVisitor::operator().

rtf()

const char * HtmlEntityMapper::rtf (SymType symb)

Access routine to the RTF code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the RTF of the HTML entity, in case the RTF code is unknown nullptr is returned.

Declaration at line 104 of file htmlentity.h, definition at line 435 of file htmlentity.cpp.

436{
437 return g_htmlEntities[symb].rtf;
438}

Reference g_htmlEntities.

Referenced by RTFDocVisitor::operator().

utf8()

const char * HtmlEntityMapper::utf8 (SymType symb, bool useInPrintf=FALSE)

Access routine to the UTF8 code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

useInPrintf

If TRUE the result will be escaped such that it can be used in a printf string pattern

Returns

the UTF8 code of the HTML entity, in case the UTF code is unknown nullptr is returned.

Declaration at line 98 of file htmlentity.h, definition at line 353 of file htmlentity.cpp.

353const char *HtmlEntityMapper::utf8(HtmlEntityMapper::SymType symb,bool useInPrintf) const
354{
355 if (useInPrintf && symb==HtmlEntityMapper::Sym_Percent)
356 {
357 return "%%"; // escape for printf
358 }
359 else
360 {
361 return g_htmlEntities[symb].UTF8;
362 }
363}

References g_htmlEntities and Sym_Percent.

Referenced by PrintDocVisitor::operator().

writeXMLSchema()

void HtmlEntityMapper::writeXMLSchema (TextStream & t)

Declaration at line 111 of file htmlentity.h, definition at line 464 of file htmlentity.cpp.

465{
466 for (size_t i=0;i<g_htmlEntities.size();i++)
467 {
468 QCString bareName = g_htmlEntities[i].xml;
469 if (!bareName.isEmpty() && bareName.at(0)=='<' && bareName.endsWith("/>"))
470 {
471 bareName = bareName.mid(1,bareName.length()-3); // strip < and />
472 t << " <xsd:element name=\"" << bareName << "\" type=\"docEmptyType\" />\n";
473 }
474 }
475}

References QCString::at, QCString::endsWith, g_htmlEntities, QCString::isEmpty, QCString::length and QCString::mid.

Referenced by generateXML.

xml()

const char * HtmlEntityMapper::xml (SymType symb)

Access routine to the XML code of the HTML entity.

Parameters
symb

Code of the requested HTML entity

Returns

the XML code of the HTML entity, in case the XML code is unknown nullptr is returned.

Declaration at line 100 of file htmlentity.h, definition at line 391 of file htmlentity.cpp.

392{
393 return g_htmlEntities[symb].xml;
394}

Reference g_htmlEntities.

Referenced by XmlDocVisitor::operator().

Private Member Functions

validate()

void HtmlEntityMapper::validate ()

Routine to check if the entries of the html_entities are numbered correctly.

in case of a mismatch a warning message is given.

Declaration at line 113 of file htmlentity.h, definition at line 480 of file htmlentity.cpp.

481{
482 int i=0;
483 for (const auto &entity : g_htmlEntities)
484 {
485 if (i != entity.symb)
486 {
487 warn_uncond("Internal inconsistency, htmlentries code {} (item={})\n",i,entity.item);
488 }
489 i++;
490 }
491}

References g_htmlEntities and warn_uncond.

Referenced by HtmlEntityMapper.

Private Member Attributes

m_name2sym

std::unordered_map<std::string,SymType> HtmlEntityMapper::m_name2sym

Definition at line 118 of file htmlentity.h.

118 std::unordered_map<std::string,SymType> m_name2sym;

Referenced by HtmlEntityMapper and name2sym.

Public Static Functions

instance()

HtmlEntityMapper & HtmlEntityMapper::instance ()
static

Private Static Attributes

s_instance

HtmlEntityMapper* HtmlEntityMapper::s_instance
static

Definition at line 117 of file htmlentity.h.


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.