Blame doc/autolink.doc

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