Blame doc/autolink.doc

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
/*! \page autolink Automatic link generation
Packit 1c1d7e
Packit 1c1d7e
  \tableofcontents
Packit 1c1d7e
Packit 1c1d7e
  Most documentation systems have special `see also' sections where links
Packit 1c1d7e
  to other pieces of documentation can be inserted.
Packit 1c1d7e
  Although doxygen also has a command to start such a section (See section
Packit 1c1d7e
  \ref cmdsa "\\sa"), it does allow you to put these kind of links anywhere in the
Packit 1c1d7e
  documentation. 
Packit 1c1d7e
  For \LaTeX documentation a reference to the page number
Packit 1c1d7e
  is written instead of a link. Furthermore, the index at the end of the 
Packit 1c1d7e
  document can be used to quickly find the documentation of a member, class, 
Packit 1c1d7e
  namespace or file.
Packit 1c1d7e
  For man pages no reference information is generated.
Packit 1c1d7e
Packit 1c1d7e
  The next sections show how to generate links to the various documented 
Packit 1c1d7e
  entities in a source file.
Packit 1c1d7e
Packit 1c1d7e
  \section linkurl Links to web pages and mail addresses
Packit 1c1d7e
Packit 1c1d7e
  Doxygen will automatically replace any URLs and mail addresses found in the
Packit 1c1d7e
  documentation by links (in HTML). To manually specify link text, use the
Packit 1c1d7e
  HTML '<tt>a</tt>' tag:
Packit 1c1d7e
  \verbatim link text \endverbatim
Packit 1c1d7e
  which will be automatically translated to other output formats by doxygen.
Packit 1c1d7e
Packit 1c1d7e
  \section linkclass Links to classes
Packit 1c1d7e
Packit 1c1d7e
  All words in the documentation that correspond to a documented class and
Packit 1c1d7e
  contain at least one non-lower case character will automatically be 
Packit 1c1d7e
  replaced by a link to the page containing the 
Packit 1c1d7e
  documentation of the class. If you want to prevent that a word 
Packit 1c1d7e
  that corresponds to a documented class is replaced by a link you
Packit 1c1d7e
  should put a \% in front of the word.
Packit 1c1d7e
  To link to an all lower case symbol, use \ref cmdref "\\ref".
Packit 1c1d7e
Packit 1c1d7e
  \section linkfile Links to files
Packit 1c1d7e
Packit 1c1d7e
  All words that contain a dot (<tt>.</tt>) that is not the last character
Packit 1c1d7e
  in the word are considered to be file names.
Packit 1c1d7e
  If the word is indeed the name of a documented input file, a link will 
Packit 1c1d7e
  automatically be created to the documentation of that file.
Packit 1c1d7e
Packit 1c1d7e
  \section linkfunc Links to functions
Packit 1c1d7e
Packit 1c1d7e
  Links to functions are created if one of the following patterns is 
Packit 1c1d7e
  encountered:
Packit 1c1d7e
  
    Packit 1c1d7e
      
  1. <tt>\<functionName\>"("\<argument-list\>")"</tt>
  2. Packit 1c1d7e
      
  3. <tt>\<functionName\>"()"</tt>
  4. Packit 1c1d7e
      
  5. <tt>"::"\<functionName\></tt>
  6. Packit 1c1d7e
      
  7. <tt>(\<className\>"::")<sup>n</sup>\<functionName\>"("\<argument-list\>")"</tt>
  8. Packit 1c1d7e
      
  9. <tt>(\<className\>"::")<sup>n</sup>\<functionName\>"("\<argument-list\>")"\<modifiers\></tt>
  10. Packit 1c1d7e
      
  11. <tt>(\<className\>"::")<sup>n</sup>\<functionName\>"()"</tt>
  12. Packit 1c1d7e
      
  13. <tt>(\<className\>"::")<sup>n</sup>\<functionName\></tt>
  14. Packit 1c1d7e
      
    Packit 1c1d7e
      where n\>0. 
    Packit 1c1d7e
    Packit 1c1d7e
      \par Note 1: 
    Packit 1c1d7e
        Function arguments should be specified with correct types, i.e. 
    Packit 1c1d7e
        'fun(const std::string&,bool)' or '()' to match any prototype.
    Packit 1c1d7e
      \par Note 2:
    Packit 1c1d7e
        Member function modifiers (like 'const' and 'volatile') 
    Packit 1c1d7e
        are required to identify the target, i.e. 'func(int) const' and 'func(int)'
    Packit 1c1d7e
        target different member functions.
    Packit 1c1d7e
      \par Note 3: 
    Packit 1c1d7e
        For JavaDoc compatibility a \# may be used instead of a :: in 
    Packit 1c1d7e
        the patterns above.
    Packit 1c1d7e
      \par Note 4:
    Packit 1c1d7e
        In the documentation of a class containing a member foo, 
    Packit 1c1d7e
        a reference to a global variable is made using "::foo", whereas \#foo
    Packit 1c1d7e
        will link to the member.
    Packit 1c1d7e
    Packit 1c1d7e
      For non overloaded members the argument list may be omitted.
    Packit 1c1d7e
    Packit 1c1d7e
      If a function is overloaded and no matching argument list is specified
    Packit 1c1d7e
      (i.e. pattern 2 or 6 is used), a link will be created to the 
    Packit 1c1d7e
      documentation of one of the overloaded members.
    Packit 1c1d7e
    Packit 1c1d7e
      For member functions the class scope (as used in patterns 4 to 7) may
    Packit 1c1d7e
      be omitted, if:
    Packit 1c1d7e
      
      Packit 1c1d7e
        
    1. The pattern points to a documented member that belongs to the same class
    2. Packit 1c1d7e
            as the documentation block that contains the pattern. 
      Packit 1c1d7e
        
    3. The class that corresponds to the documentation blocks that contains
    4. Packit 1c1d7e
            the pattern has a base class that contains a documented member
      Packit 1c1d7e
            that matches the pattern.
      Packit 1c1d7e
        
      Packit 1c1d7e
      Packit 1c1d7e
        \section linkother Links to other members
      Packit 1c1d7e
      Packit 1c1d7e
        All of these entities can be linked to in the same way as described in the 
      Packit 1c1d7e
        previous section. For sake of clarity it is advised to only use 
      Packit 1c1d7e
        patterns 3 and 7 in this case.
      Packit 1c1d7e
      Packit 1c1d7e
        \par Example:
      Packit 1c1d7e
        \include autolink.cpp
      Packit 1c1d7e
        \htmlonly
      Packit 1c1d7e
        Click here 
      Packit 1c1d7e
        for the corresponding HTML documentation that is generated by doxygen.
      Packit 1c1d7e
        \endhtmlonly
      Packit 1c1d7e
        \latexonly
      Packit 1c1d7e
        See \hyperlink{autolink_example}{Autolink example}
      Packit 1c1d7e
        for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
      Packit 1c1d7e
        \endlatexonly
      Packit 1c1d7e
      Packit 1c1d7e
        \section resolving typedefs
      Packit 1c1d7e
      Packit 1c1d7e
        Typedefs that involve classes, structs and unions, like
      Packit 1c1d7e
      \verbatim
      Packit 1c1d7e
      typedef struct StructName TypeName
      Packit 1c1d7e
      \endverbatim
      Packit 1c1d7e
        create an alias for StructName, so links will be generated to StructName, 
      Packit 1c1d7e
        when either StructName itself or TypeName is encountered.
      Packit 1c1d7e
        
      Packit 1c1d7e
        \par Example:
      Packit 1c1d7e
        \include restypedef.cpp
      Packit 1c1d7e
        \htmlonly
      Packit 1c1d7e
        Click here 
      Packit 1c1d7e
        for the corresponding HTML documentation that is generated by doxygen.
      Packit 1c1d7e
        \endhtmlonly
      Packit 1c1d7e
        \latexonly
      Packit 1c1d7e
        See \hyperlink{restypedef_8cpp}{Typedef example}
      Packit 1c1d7e
        for the corresponding \mbox{\LaTeX} documentation that is generated by doxygen.
      Packit 1c1d7e
        \endlatexonly
      Packit 1c1d7e
      Packit 1c1d7e
      \htmlonly
      Packit 1c1d7e
      Go to the next section or return to the
      Packit 1c1d7e
       index.
      Packit 1c1d7e
      \endhtmlonly
      Packit 1c1d7e
      Packit 1c1d7e
      */