doxygen_manual-1.8.1 (1035109), страница 15
Текст из файла (страница 15)
Although doxygen also has a command to start such a section (See section \sa), it does allow you toput these kind of links anywhere in the documentation. For LATEX documentation a reference to the page numberis written instead of a link. Furthermore, the index at the end of the document can be used to quickly find thedocumentation of a member, class, namespace or file. For man pages no reference information is generated.The next sections show how to generate links to the various documented entities in a source file.9.1Links to web pages and mail addressesDoxygen will automatically replace any URLs and mail addresses found in the documentation by links (in HTML).To manually specify link text, use the HTML ’a’ tag:<a href="linkURL">link text</a>which will be automatically translated to other output formats by Doxygen.9.2Links to classesAll words in the documentation that correspond to a documented class and contain at least one non-lower casecharacter will automatically be replaced by a link to the page containing the documentation of the class.
If you wantto prevent that a word that corresponds to a documented class is replaced by a link you should put a % in front ofthe word. To link to an all lower case symbol, use \ref.9.3Links to filesAll words that contain a dot (.) that is not the last character in the word are considered to be file names. If the wordis indeed the name of a documented input file, a link will automatically be created to the documentation of that file.9.4Links to functionsLinks to functions are created if one of the following patterns is encountered:1.
<functionName>"("<argument-list>")"2. <functionName>"()"60Automatic link generation3. "::"<functionName>4. (<className>"::")n <functionName>"("<argument-list>")"5. (<className>"::")n <functionName>"("<argument-list>")"<modifiers>6. (<className>"::")n <functionName>"()"7. (<className>"::")n <functionName>where n>0.Note 1:Function arguments should be specified with correct types, i.e.
’fun(const std::string&,bool)’ or ’()’ to match anyprototype.Note 2:Member function modifiers (like ’const’ and ’volatile’) are required to identify the target, i.e. ’func(int) const’ and’fun(int)’ target different member functions.Note 3:For JavaDoc compatibility a # may be used instead of a :: in the patterns above.Note 4:In the documentation of a class containing a member foo, a reference to a global variable is made using "::foo",whereas #foo will link to the member.For non overloaded members the argument list may be omitted.If a function is overloaded and no matching argument list is specified (i.e.
pattern 2 or 6 is used), a link will becreated to the documentation of one of the overloaded members.For member functions the class scope (as used in patterns 4 to 7) may be omitted, if:1. The pattern points to a documented member that belongs to the same class as the documentation block thatcontains the pattern.2.
The class that corresponds to the documentation blocks that contains the pattern has a base class thatcontains a documented member that matches the pattern.9.5Links to other membersAll of these entities can be linked to in the same way as described in the previous section. For sake of clarity it isadvised to only use patterns 3 and 7 in this case.Example:/*! \file autolink.cppTesting automatic link generation.A link to a member of the Test class: Test::member,More specific links to the each of the overloaded members:Test::member(int) and Test#member(int,int)A link to a protected member variable of Test: Test#var,A link to the global enumeration type #GlobEnum.A link to the define #ABS(x).Generated by Doxygen9.5 Links to other members61A link to the destructor of the Test class: Test::~Test,A link to the typedef ::B.A link to the enumeration type Test::ETypeA link to some enumeration values Test::Val1 and ::GVal2*//*!Since this documentation block belongs to the class Test no link toTest is generated.Two ways to link to a constructor are: #Test and Test().Links to the destructor are: #~Test and ~Test().A link to a member in this class: member().More specific links to the each of the overloaded members:member(int) and member(int,int).A link to the variable #var.A link to the global typedef ::B.A link to the global enumeration type #GlobEnum.A link to the define ABS(x).A link to a variable \link #var using another text\endlink as a link.A link to the enumeration type #EType.A link to some enumeration values: \link Test::Val1 Val1 \endlink and ::GVal1.And last but not least a link to a file: autolink.cpp.\sa Inside a see also section any word is checked, so EType,Val1, GVal1, ~Test and member will be replaced by links in HTML.*/class Test{public:Test();~Test();void member(int);void member(int,int);//!<//!</**</**<constructordestructorA member function.
Details. */An overloaded member function. Details *//** An enum type. More details */enum EType {Val1,/**< enum value 1 */Val2/**< enum value 2 */};protected:int var;};/**< A member variable *//*! details. */Test::Test() { }/*! details. */Test::~Test() { }/*! A global variable. */int globVar;/*! A global enum. */enum GlobEnum {GVal1,Generated by Doxygen/*!< global enum value 1 */62Automatic link generationGVal2};/*!< global enum value 2 *//*!* A macro definition.*/#define ABS(x) (((x)>0)?(x):-(x))typedef Test B;/*! \fn typedef Test B* A type definition.*/9.6typedefsTypedefs that involve classes, structs and unions, liketypedef struct StructName TypeNamecreate an alias for StructName, so links will be generated to StructName, when either StructName itself or TypeName is encountered.Example:/*! \file restypedef.cpp* An example of resolving typedefs.*//*! \struct CoordStruct* A coordinate pair.*/struct CoordStruct{/*! The x coordinate */float x;/*! The y coordinate */float y;};/*! Creates a type name for CoordStruct */typedef CoordStruct Coord;/*!* This function returns the addition of \a c1 and \a c2, i.e:* (c1.x+c2.x,c1.y+c2.y)*/Coord add(Coord c1,Coord c2){}Generated by DoxygenChapter 10Output FormatsThe following output formats are directly supported by doxygen:HTML Generated if GENERATE_HTML is set to YES in the configuration file.LATEX Generated if GENERATE_LATEX is set to YES in the configuration file.Man pages Generated if GENERATE_MAN is set to YES in the configuration file.RTF Generated if GENERATE_RTF is set to YES in the configuration file.Note that the RTF output probably only looks nice with Microsoft’s Word.
If you have success with otherprograms, please let me know.XML Generated if GENERATE_XML is set to YES in the configuration file.The following output formats are indirectly supported by doxygen:Compiled HTML Help (a.k.a. Windows 98 help) Generated by Microsoft’s HTML Help workshop from the HTMLoutput if GENERATE_HTMLHELP is set to YES.Qt Compressed Help (.qch) Generated by Qt’s qhelpgenerator tool from the HTML output if GENERATE_QHP isset to YES.Eclipse Help Generated from HTML with a special index file that is generated when GENERATE_ECLIPSEHELPis set to YES.XCode DocSets Compiled from HTML with a special index file that is generated when GENERATE_DOCSET isset to YES.PostScript Generated from the LATEX output by running make ps in the output directory.
For the best resultsPDF_HYPERLINKS should be set to NO.PDF Generated from the LATEX output by running make pdf in the output directory. To improve the PDF output, you typically would want to enable the use of pdflatex by setting USE_PDFLATEX to YES in theconfiguration file. In order to get hyperlinks in the PDF file you also need to enable PDF_HYPERLINKS.64Output FormatsGenerated by DoxygenChapter 11SearchingDoxygen indexes your source code in various ways to make it easier to navigate and find what you are looking for.There are also situations however where you want to search for something by keyword rather than browse for it.HTML browsers by default have no search capabilities that work across multiple pages, so either doxygen or externaltools need to help to facilitate this feature.Doxygen has 6 different ways to add searching to the HTML output, each of which has its own advantages anddisadvantages:1.
Client side searchingThe easiest way to enable searching is to enable the built-in client side search engine. This engine is implementedusing Javascript and DHTML only and runs entirely on the clients browser. So no additional tooling is required tomake it work.To enable it set SEARCHENGINE to YES in the config file and make sure SERVER_BASED_SEARCH is set to NO.An additional advantage of this method is that it provides live searching, i.e. the search results are presented andadapted as you type.This method also has its drawbacks: it is limited to searching for symbols only. It does not provide full text searchcapabilities, and it does not scale well to very large projects (then searching becomes very slow).2. Server side searchingIf you plan to put the HTML documentation on a web server, and that web server has the capability to process PHPcode, then you can also use doxygen’s built-in server side search engine.To enable this set both SEARCHENGINE and SERVER_BASED_SEARCH to YES in the config file.Advantages over the client side search engine are that it provides full text search and it scales well to large projects.Disadvantages are that it does not work locally (i.e.