Commit 842c816a authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Added optional [block] option to \htmlonly

parent a7c7f36e
Loading
Loading
Loading
Loading
+10 −5
Original line number Original line Diff line number Diff line
@@ -2729,7 +2729,7 @@ class Receiver
  \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas".
  \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas".


<hr>
<hr>
\section cmdhtmlonly \\htmlonly
\section cmdhtmlonly \\htmlonly ["[block]"]


  \addindex \\htmlonly
  \addindex \\htmlonly
  Starts a block of text that will be verbatim included in the
  Starts a block of text that will be verbatim included in the
@@ -2738,9 +2738,14 @@ class Receiver


  This command can be used to include HTML code that is too complex
  This command can be used to include HTML code that is too complex
  for doxygen (i.e. applets, java-scripts, and HTML tags that
  for doxygen (i.e. applets, java-scripts, and HTML tags that
  require attributes). You can use the \ref cmdlatexonly "\\latexonly" and 
  require specific attributes).
  \ref cmdendlatexonly "\\endlatexonly"

  pair to provide a proper \f$\mbox{\LaTeX}\f$ alternative.
  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
  \note environment variables (like \$(HOME) ) are resolved inside a
  HTML-only block.
  HTML-only block.
+1 −1
Original line number Original line Diff line number Diff line
@@ -21,7 +21,7 @@


First go to the 
First go to the 
<a href="http://www.doxygen.org/download.html">download</a> page
<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
\section install_src_unix Compiling from source on UNIX


+8 −8
Original line number Original line Diff line number Diff line
@@ -1320,7 +1320,7 @@ reparsetoken:
          {
          {
            doctokenizerYYsetStateHtmlOnly();
            doctokenizerYYsetStateHtmlOnly();
            tok = doctokenizerYYlex();
            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");
            if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker");
            doctokenizerYYsetStatePara();
            doctokenizerYYsetStatePara();
          }
          }
@@ -1745,10 +1745,10 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor)


DocVerbatim::DocVerbatim(DocNode *parent,const QCString &context,
DocVerbatim::DocVerbatim(DocNode *parent,const QCString &context,
    const QCString &text, Type t,bool isExample,
    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_context(context), m_text(text), m_type(t),
    m_isExample(isExample), m_exampleFile(exampleFile),
    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;
  m_parent = parent;
}
}
@@ -5280,7 +5280,7 @@ int DocPara::handleStartCode()
    if (g_token->verb.at(i)=='\n') li=i+1;
    if (g_token->verb.at(i)=='\n') li=i+1;
    i++;
    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");
  if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"code section ended without end marker");
  doctokenizerYYsetStatePara();
  doctokenizerYYsetStatePara();
  return retval;
  return retval;
@@ -5468,7 +5468,7 @@ int DocPara::handleCommand(const QCString &cmdName)
      {
      {
        doctokenizerYYsetStateHtmlOnly();
        doctokenizerYYsetStateHtmlOnly();
        retval = doctokenizerYYlex();
        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");
        if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"htmlonly section ended without end marker");
        doctokenizerYYsetStatePara();
        doctokenizerYYsetStatePara();
      }
      }
+3 −1
Original line number Original line Diff line number Diff line
@@ -436,7 +436,7 @@ class DocVerbatim : public DocNode
    enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc, DocbookOnly };
    enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc, DocbookOnly };
    DocVerbatim(DocNode *parent,const QCString &context,
    DocVerbatim(DocNode *parent,const QCString &context,
                const QCString &text, Type t,bool isExample,
                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; }
    Kind kind() const            { return Kind_Verbatim; }
    Type type() const            { return m_type; }
    Type type() const            { return m_type; }
    QCString text() const        { return m_text; }
    QCString text() const        { return m_text; }
@@ -446,6 +446,7 @@ class DocVerbatim : public DocNode
    QCString exampleFile() const { return m_exampleFile; }
    QCString exampleFile() const { return m_exampleFile; }
    QCString relPath() const     { return m_relPath; }
    QCString relPath() const     { return m_relPath; }
    QCString language() const    { return m_lang; }
    QCString language() const    { return m_lang; }
    bool isBlock() const         { return m_isBlock; }


  private:
  private:
    QCString  m_context;
    QCString  m_context;
@@ -455,6 +456,7 @@ class DocVerbatim : public DocNode
    QCString  m_exampleFile;
    QCString  m_exampleFile;
    QCString  m_relPath;
    QCString  m_relPath;
    QCString  m_lang;
    QCString  m_lang;
    bool      m_isBlock;
};
};




+11 −1
Original line number Original line Diff line number Diff line
@@ -406,6 +406,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2}
%x St_CodeOpt
%x St_CodeOpt
%x St_XmlCode
%x St_XmlCode
%x St_HtmlOnly
%x St_HtmlOnly
%x St_HtmlOnlyOption
%x St_ManOnly
%x St_ManOnly
%x St_LatexOnly
%x St_LatexOnly
%x St_RtfOnly
%x St_RtfOnly
@@ -767,6 +768,14 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{LNKWORD2}
<St_Code,St_XmlCode>.           {
<St_Code,St_XmlCode>.           {
  			 g_token->verb+=yytext;
  			 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" {
<St_HtmlOnly>{CMD}"endhtmlonly" {
                         return RetVal_OK;
                         return RetVal_OK;
                       }
                       }
@@ -1255,7 +1264,8 @@ void doctokenizerYYsetStateXmlCode()
void doctokenizerYYsetStateHtmlOnly()
void doctokenizerYYsetStateHtmlOnly()
{
{
  g_token->verb="";
  g_token->verb="";
  BEGIN(St_HtmlOnly);
  g_token->name="";
  BEGIN(St_HtmlOnlyOption);
}
}


void doctokenizerYYsetStateManOnly()
void doctokenizerYYsetStateManOnly()
Loading