%META:TOPICINFO{author="TWikiContributor" date="1296374274" format="1.1" version="1"}%
%META:TOPICPARENT{name="SearchResult"}%
---+!! <nop>%TOPIC%
<!--
   Contributions to this TWiki plugin are appreciated. Please update the plugin page at
   http://twiki.org/cgi-bin/view/Plugins/DoxygenPlugin or provide feedback at
   http://twiki.org/cgi-bin/view/Plugins/DoxygenPluginDev.
   If you are a TWiki contributor please update the plugin in the SVN repository.
-->
<sticky><div style="float:right; background-color:#EBEEF0; margin:0 0 20px 20px; padding: 0 10px 0 10px;">
%TOC{title="Page contents"}%
</div></sticky>
%SHORTDESCRIPTION%

---++ Introduction

This plugin allows you to create links to classes within doxygen-generated documentation.

---++ Syntax Rules 

<tt>%<nop>DOX{</tt><i>classname</i><tt>[</tt><i>displayName</i><tt>] project="</tt><i>optionalProjectName</i><tt>"}%</tt>

---++ Examples

| *syntax* | *example* | *result* |
| <tt>%<nop>DOX{</tt><i>classname</i><tt>}%</tt> | =%<nop>DOX{nKernelServer}%= | %DOX{nKernelServer}% |
| <tt>%<nop>DOX{</tt><i>classname</i><tt>}%</tt> | =%<nop>DOX{nebulacollide::nKernelClient::BadConnection}%= | %DOX{nebulacollide::nKernelClient::BadConnection}% |
| <tt>%<nop>DOX{</tt><i>path/to/html</i><tt>}%</tt> | =%<nop>DOX{nebulacollide/html/collide_usage.html}%= | %DOX{nebulacollide/html/collide_usage.html}% |
| <tt>%<nop>DOX{</tt><i>classname</i><tt>[</tt><i>displayName</i><tt>]}%</tt> | =%<nop>DOX{nKernelServer[The Kernel]}%= | %DOX{nKernelServer[The Kernel]}% |

Where _classname_ is the *case sensitive* name of the class you wish to link to. For example %DOX{nKernelServer}% creates a link like this %DOX{nKernelServer}%.

If you are using namespaces or nested classes, specific the fully qualified name with =::= as you would referecing it in code as in the example above.

If you wish to link to a specific function or other API page, then you can use =%<nop>DOX{path}%= where _path_ is the path to the html file relative to =/doc/doxydoc/=. For example if you wished to link to =/doc/doxydoc/nebulacollide/html/collide_usage.html= then you would type =%<nop>DOX{nebulacollide/html/collide_usage.html}%= to get a link like this %DOX{nebulacollide/html/collide_usage.html}%.

To have the link display text other than the class name or file path, put the alternative text in square brackets like this =%<nop>DOX{nKernelServer[The Kernel]}%=, which would display as %DOX{nKernelServer[The Kernel]}% 

---++ <nop>%TOPIC% Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write ==%<nop>&lt;plugin&gt;_&lt;setting&gt;%==, i.e. ==%<nop>DOXYGENPLUGIN_SHORTDESCRIPTION%==

   * One line description, is shown in the %SYSTEMWEB%.TextFormattingRules topic:
      * Set SHORTDESCRIPTION = Create links to doxygen-generated docs using =%<nop>DOX{classname}%=

   * Debug plugin: (See output in =data/debug.txt=)
      * Set DEBUG = 0

   * The Nebula Device project codebase
      * Set DOCS_BASE_NEB = /home/groups/n/ne/nebuladevice/nebula/doc/doxydoc/nebulacore/html/class
      * Set URL_BASE_NEB = http://nebuladevice.sourceforge.net/doc/doxydoc/nebulacore/html/

   * Default project if repository isn't specified in the plugin parameters (case doesn't matter here because it all gets uppercased anyway)
      * Set PROJECT = neb

---++ Plugin Installation Instructions

__Note:__ You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running. 

   * Download the ZIP file from the Plugins web (see below)
   * Unzip ==%TOPIC%.zip== in your twiki installation directory. Content:
    | *File:* | *Description:* |
    | ==data/TWiki/%TOPIC%.txt== | Plugin topic |
    | ==data/TWiki/%TOPIC%Tests.txt== | Plugin topic tests |
    | ==lib/TWiki/Plugins/%TOPIC%.pm== | Plugin Perl module |
   * Visit =configure= in your TWiki installation, and enable the plugin in the {Plugins} section.
   * Test if the installation was successful:
      * %<nop>DOX{ nKernelServer project="neb" }% : %DOX{ nKernelServer project="neb" }%
   * Other examples
      * see DoxygenPluginTests, Nebula:WritingTopics, Nebula:AddANewModule, and Nebula:LinkNode

---++ Plugin Info

|  Plugin Author: | TWiki:Main.WillNorris, TWiki:Main.LeafGarland |
|  Copyright: | &copy; 2003 TWiki:Main.WillNorris <br /> 2003 TWiki:Main.LeafGarland <br /> &copy; 2007-2011 TWiki:Main.TWikiContributors |
|  License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) |
|  Plugin Version: | 2011-02-01 |
|  Change History: | <!-- versions below in reverse order -->&nbsp; |
|  2011-02-01: | TWikibug:Item6638: Doc improvements; changing TWIKIWEB to SYSTEMWEB -- TWiki:Main.PeterThoeny |
|  2007-01-11: | Added support for namespaces and nested classes -- TWiki:Main.RickMach |
|  2003-08-01: | Initial version |
|  CPAN Dependencies: | none |
|  Other Dependencies: | [[http://www.stack.nl/~dimitri/doxygen/][doxygen]] |
|  Perl Version: | 5.005+ |
|  Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% |
|  Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev |

__Related Topics:__ DoxygenPluginTests, %SYSTEMWEB%.TWikiPreferences, %SYSTEMWEB%.TWikiPlugins
