Loading doc/commands.doc +10 −5 Original line number Diff line number Diff line Loading @@ -2729,7 +2729,7 @@ class Receiver \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas". <hr> \section cmdhtmlonly \\htmlonly \section cmdhtmlonly \\htmlonly ["[block]"] \addindex \\htmlonly Starts a block of text that will be verbatim included in the Loading @@ -2738,9 +2738,14 @@ class Receiver This command can be used to include HTML code that is too complex for doxygen (i.e. applets, java-scripts, and HTML tags that require attributes). You can use the \ref cmdlatexonly "\\latexonly" and \ref cmdendlatexonly "\\endlatexonly" pair to provide a proper \f$\mbox{\LaTeX}\f$ alternative. require specific attributes). Normally the contents between \ref cmdhtmlonly "\\htmlonly" and \ref cmdendhtmlonly "\\endhtmlonly" is inserted as-is. When you want to insert a HTML fragment that has block scope like a table or list which should appear outside \<p\>..\</p\>, this can lead to invalid HTML. You can use \\htmlonly[block] to make doxygen end the current paragraph and restart it after \\endhtmlonly. \note environment variables (like \$(HOME) ) are resolved inside a HTML-only block. Loading doc/install.doc +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ First go to the <a href="http://www.doxygen.org/download.html">download</a> page to get the latest distribution, if you did not downloaded doxygen already. to get the latest distribution, if you have not downloaded doxygen already. \section install_src_unix Compiling from source on UNIX Loading src/docparser.cpp +8 −8 Original line number Diff line number Diff line Loading @@ -1320,7 +1320,7 @@ reparsetoken: { doctokenizerYYsetStateHtmlOnly(); tok = doctokenizerYYlex(); children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName)); children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName,g_token->name=="block")); if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker"); doctokenizerYYsetStatePara(); } Loading Loading @@ -1745,10 +1745,10 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) DocVerbatim::DocVerbatim(DocNode *parent,const QCString &context, const QCString &text, Type t,bool isExample, const QCString &exampleFile,const QCString &lang) const QCString &exampleFile,bool isBlock,const QCString &lang) : m_context(context), m_text(text), m_type(t), m_isExample(isExample), m_exampleFile(exampleFile), m_relPath(g_relPath), m_lang(lang) m_relPath(g_relPath), m_lang(lang), m_isBlock(isBlock) { m_parent = parent; } Loading Loading @@ -5280,7 +5280,7 @@ int DocPara::handleStartCode() if (g_token->verb.at(i)=='\n') li=i+1; i++; } m_children.append(new DocVerbatim(this,g_context,stripIndentation(g_token->verb.mid(li)),DocVerbatim::Code,g_isExample,g_exampleName,lang)); m_children.append(new DocVerbatim(this,g_context,stripIndentation(g_token->verb.mid(li)),DocVerbatim::Code,g_isExample,g_exampleName,FALSE,lang)); if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"code section ended without end marker"); doctokenizerYYsetStatePara(); return retval; Loading Loading @@ -5468,7 +5468,7 @@ int DocPara::handleCommand(const QCString &cmdName) { doctokenizerYYsetStateHtmlOnly(); retval = doctokenizerYYlex(); m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName)); m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName,g_token->name=="block")); if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker"); doctokenizerYYsetStatePara(); } Loading src/docparser.h +3 −1 Original line number Diff line number Diff line Loading @@ -436,7 +436,7 @@ class DocVerbatim : public DocNode enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc, DocbookOnly }; DocVerbatim(DocNode *parent,const QCString &context, const QCString &text, Type t,bool isExample, const QCString &exampleFile,const QCString &lang=QCString()); const QCString &exampleFile,bool isBlock=FALSE,const QCString &lang=QCString()); Kind kind() const { return Kind_Verbatim; } Type type() const { return m_type; } QCString text() const { return m_text; } Loading @@ -446,6 +446,7 @@ class DocVerbatim : public DocNode QCString exampleFile() const { return m_exampleFile; } QCString relPath() const { return m_relPath; } QCString language() const { return m_lang; } bool isBlock() const { return m_isBlock; } private: QCString m_context; Loading @@ -455,6 +456,7 @@ class DocVerbatim : public DocNode QCString m_exampleFile; QCString m_relPath; QCString m_lang; bool m_isBlock; }; Loading src/doctokenizer.l +11 −1 Original line number Diff line number Diff line Loading @@ -406,6 +406,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2} %x St_CodeOpt %x St_XmlCode %x St_HtmlOnly %x St_HtmlOnlyOption %x St_ManOnly %x St_LatexOnly %x St_RtfOnly Loading Loading @@ -767,6 +768,14 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2} <St_Code,St_XmlCode>. { g_token->verb+=yytext; } <St_HtmlOnlyOption>" [block]" { // the space is added in commentscan.l g_token->name="block"; BEGIN(St_HtmlOnly); } <St_HtmlOnlyOption>.|\n { unput(*yytext); BEGIN(St_HtmlOnly); } <St_HtmlOnly>{CMD}"endhtmlonly" { return RetVal_OK; } Loading Loading @@ -1255,7 +1264,8 @@ void doctokenizerYYsetStateXmlCode() void doctokenizerYYsetStateHtmlOnly() { g_token->verb=""; BEGIN(St_HtmlOnly); g_token->name=""; BEGIN(St_HtmlOnlyOption); } void doctokenizerYYsetStateManOnly() Loading Loading
doc/commands.doc +10 −5 Original line number Diff line number Diff line Loading @@ -2729,7 +2729,7 @@ class Receiver \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas". <hr> \section cmdhtmlonly \\htmlonly \section cmdhtmlonly \\htmlonly ["[block]"] \addindex \\htmlonly Starts a block of text that will be verbatim included in the Loading @@ -2738,9 +2738,14 @@ class Receiver This command can be used to include HTML code that is too complex for doxygen (i.e. applets, java-scripts, and HTML tags that require attributes). You can use the \ref cmdlatexonly "\\latexonly" and \ref cmdendlatexonly "\\endlatexonly" pair to provide a proper \f$\mbox{\LaTeX}\f$ alternative. require specific attributes). Normally the contents between \ref cmdhtmlonly "\\htmlonly" and \ref cmdendhtmlonly "\\endhtmlonly" is inserted as-is. When you want to insert a HTML fragment that has block scope like a table or list which should appear outside \<p\>..\</p\>, this can lead to invalid HTML. You can use \\htmlonly[block] to make doxygen end the current paragraph and restart it after \\endhtmlonly. \note environment variables (like \$(HOME) ) are resolved inside a HTML-only block. Loading
doc/install.doc +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ First go to the <a href="http://www.doxygen.org/download.html">download</a> page to get the latest distribution, if you did not downloaded doxygen already. to get the latest distribution, if you have not downloaded doxygen already. \section install_src_unix Compiling from source on UNIX Loading
src/docparser.cpp +8 −8 Original line number Diff line number Diff line Loading @@ -1320,7 +1320,7 @@ reparsetoken: { doctokenizerYYsetStateHtmlOnly(); tok = doctokenizerYYlex(); children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName)); children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName,g_token->name=="block")); if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker"); doctokenizerYYsetStatePara(); } Loading Loading @@ -1745,10 +1745,10 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) DocVerbatim::DocVerbatim(DocNode *parent,const QCString &context, const QCString &text, Type t,bool isExample, const QCString &exampleFile,const QCString &lang) const QCString &exampleFile,bool isBlock,const QCString &lang) : m_context(context), m_text(text), m_type(t), m_isExample(isExample), m_exampleFile(exampleFile), m_relPath(g_relPath), m_lang(lang) m_relPath(g_relPath), m_lang(lang), m_isBlock(isBlock) { m_parent = parent; } Loading Loading @@ -5280,7 +5280,7 @@ int DocPara::handleStartCode() if (g_token->verb.at(i)=='\n') li=i+1; i++; } m_children.append(new DocVerbatim(this,g_context,stripIndentation(g_token->verb.mid(li)),DocVerbatim::Code,g_isExample,g_exampleName,lang)); m_children.append(new DocVerbatim(this,g_context,stripIndentation(g_token->verb.mid(li)),DocVerbatim::Code,g_isExample,g_exampleName,FALSE,lang)); if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"code section ended without end marker"); doctokenizerYYsetStatePara(); return retval; Loading Loading @@ -5468,7 +5468,7 @@ int DocPara::handleCommand(const QCString &cmdName) { doctokenizerYYsetStateHtmlOnly(); retval = doctokenizerYYlex(); m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName)); m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::HtmlOnly,g_isExample,g_exampleName,g_token->name=="block")); if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker"); doctokenizerYYsetStatePara(); } Loading
src/docparser.h +3 −1 Original line number Diff line number Diff line Loading @@ -436,7 +436,7 @@ class DocVerbatim : public DocNode enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc, DocbookOnly }; DocVerbatim(DocNode *parent,const QCString &context, const QCString &text, Type t,bool isExample, const QCString &exampleFile,const QCString &lang=QCString()); const QCString &exampleFile,bool isBlock=FALSE,const QCString &lang=QCString()); Kind kind() const { return Kind_Verbatim; } Type type() const { return m_type; } QCString text() const { return m_text; } Loading @@ -446,6 +446,7 @@ class DocVerbatim : public DocNode QCString exampleFile() const { return m_exampleFile; } QCString relPath() const { return m_relPath; } QCString language() const { return m_lang; } bool isBlock() const { return m_isBlock; } private: QCString m_context; Loading @@ -455,6 +456,7 @@ class DocVerbatim : public DocNode QCString m_exampleFile; QCString m_relPath; QCString m_lang; bool m_isBlock; }; Loading
src/doctokenizer.l +11 −1 Original line number Diff line number Diff line Loading @@ -406,6 +406,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2} %x St_CodeOpt %x St_XmlCode %x St_HtmlOnly %x St_HtmlOnlyOption %x St_ManOnly %x St_LatexOnly %x St_RtfOnly Loading Loading @@ -767,6 +768,14 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2} <St_Code,St_XmlCode>. { g_token->verb+=yytext; } <St_HtmlOnlyOption>" [block]" { // the space is added in commentscan.l g_token->name="block"; BEGIN(St_HtmlOnly); } <St_HtmlOnlyOption>.|\n { unput(*yytext); BEGIN(St_HtmlOnly); } <St_HtmlOnly>{CMD}"endhtmlonly" { return RetVal_OK; } Loading Loading @@ -1255,7 +1264,8 @@ void doctokenizerYYsetStateXmlCode() void doctokenizerYYsetStateHtmlOnly() { g_token->verb=""; BEGIN(St_HtmlOnly); g_token->name=""; BEGIN(St_HtmlOnlyOption); } void doctokenizerYYsetStateManOnly() Loading