diff options
-rw-r--r-- | INSTALL | 2 | ||||
-rwxr-xr-x | addon/doxywizard/doxywizard.cpp | 2 | ||||
-rw-r--r-- | doc/emojisup.doc | 12 | ||||
-rw-r--r-- | doc/faq.doc | 98 | ||||
-rw-r--r-- | doc/index.doc | 6 | ||||
-rw-r--r-- | doc/install.doc | 2 | ||||
-rw-r--r-- | doc/starting.doc | 218 | ||||
-rw-r--r-- | src/doxygen.md | 36 | ||||
-rw-r--r-- | src/htmlgen.cpp | 2 | ||||
-rw-r--r-- | templates/html/footer.html | 4 | ||||
-rw-r--r-- | templates/html/htmlbase.tpl | 4 | ||||
-rw-r--r-- | testing/031/indexpage.xml | 4 | ||||
-rw-r--r-- | testing/031_image.dox | 4 |
13 files changed, 197 insertions, 197 deletions
@@ -1,7 +1,7 @@ DOXYGEN Please read the installation section of the manual -(http://www.doxygen.nl/manual/install.html) for instructions. +(https://www.doxygen.nl/manual/install.html) for instructions. -------- Dimitri van Heesch diff --git a/addon/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp index 00eabac..7b6aeb0 100755 --- a/addon/doxywizard/doxywizard.cpp +++ b/addon/doxywizard/doxywizard.cpp @@ -257,7 +257,7 @@ void MainWindow::updateWorkingDir() void MainWindow::manual() { - QDesktopServices::openUrl(QUrl(QString::fromLatin1("http://www.doxygen.org/manual/index.html"))); + QDesktopServices::openUrl(QUrl(QString::fromLatin1("https://www.doxygen.org/manual/index.html"))); } void MainWindow::about() diff --git a/doc/emojisup.doc b/doc/emojisup.doc index 0175780..2b8a16c 100644 --- a/doc/emojisup.doc +++ b/doc/emojisup.doc @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2018 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -105,8 +105,8 @@ When invoking it with the `-d image_dir` option the images will by downloaded in By means of the doxygen configuration parameter \ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" the requested directory can be selected. -For convenience a zip with the result of running the script can also be downloaded from -http://www.doxygen.nl/dl/github_emojis.zip +For convenience a zip with the result of running the script can also be downloaded from +https://www.doxygen.nl/dl/github_emojis.zip For an overview of the supported emoji one can issue the command:<br> `doxygen -f emoji <outputFileName>` @@ -117,4 +117,4 @@ Go to the <a href="langhowto.html">next</a> section or return to the \endhtmlonly */ - + diff --git a/doc/faq.doc b/doc/faq.doc index e460d4a..bf721e4 100644 --- a/doc/faq.doc +++ b/doc/faq.doc @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2015 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -32,7 +32,7 @@ You should use the \ref cmdmainpage "\\mainpage" command inside a comment block * \section install_sec Installation * * \subsection step1 Step 1: Opening the box - * + * * etc... */ \endverbatim @@ -41,13 +41,13 @@ You should use the \ref cmdmainpage "\\mainpage" command inside a comment block Check the following: <ol> - <li>Is your class / file / namespace documented? If not, it will not + <li>Is your class / file / namespace documented? If not, it will not be extracted from the sources unless \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES in the configuration file. <li>Are the members private? If so, you must set \ref cfg_extract_private "EXTRACT_PRIVATE" to \c YES to make them appear in the documentation. - <li>Is there a function macro in your class that does not end with a - semicolon (e.g. MY_MACRO())? If so then you have to instruct + <li>Is there a function macro in your class that does not end with a + semicolon (e.g. MY_MACRO())? If so then you have to instruct doxygen's preprocessor to remove it. This typically boils down to the following settings in the configuration file: @@ -61,14 +61,14 @@ PREDEFINED = MY_MACRO()= Please read the \ref preprocessing "preprocessing" section of the manual for more information. - </ol> + </ol> \section faq_extract_all When I set EXTRACT_ALL to NO none of my functions are shown in the documentation. -In order for global functions, variables, enums, typedefs, and defines +In order for global functions, variables, enums, typedefs, and defines to be documented you should document the file in which these commands are -located using a comment block containing a \ref cmdfile "\\file" (or \ref cmdfile "\@file") -command. +located using a comment block containing a \ref cmdfile "\\file" (or \ref cmdfile "\@file") +command. Alternatively, you can put all members in a group (or module) using the \ref cmdingroup "\\ingroup" command and then document the group using a comment @@ -76,28 +76,28 @@ block containing the \ref cmddefgroup "\\defgroup" command. For member functions or functions that are part of a namespace you should document either the class or namespace. - + \section faq_ext_mapping My file with a custom extension is not parsed (properly) (anymore). Doxygen only parses files that are specified as input (via the \ref cfg_input "INPUT" tag) and that match a specified extension (mentioned in \ref cfg_file_patterns "FILE_PATTERNS") -The list of files is then reduced by excluding files listed as \ref cfg_exclude "EXCLUDE" or +The list of files is then reduced by excluding files listed as \ref cfg_exclude "EXCLUDE" or files that match the patterns set by \ref cfg_exclude_patterns "EXCLUDE_PATTERNS". In the past doxygen parsed all files with an unknown extension as C files which could lead to undesired results. Since version 1.8.8, doxygen requires that you specify a mapping that tells -for a certain file extension, which parser to use. +for a certain file extension, which parser to use. This mapping is specified using the \ref cfg_extension_mapping "EXTENSION_MAPPING" tag. If no mapping is specified the file's contents will be ignored. \section faq_code How can I make doxygen ignore some code fragment? -The new and easiest way is to add one comment block -with a \ref cmdcond "\\cond" command at the start and one comment block +The new and easiest way is to add one comment block +with a \ref cmdcond "\\cond" command at the start and one comment block with a \ref cmdendcond "\\endcond" command at the end of the piece of code that should be ignored. This should be within the same file of course. -But you can also use doxygen's preprocessor for this: +But you can also use doxygen's preprocessor for this: If you put \verbatim #ifndef DOXYGEN_SHOULD_SKIP_THIS @@ -115,7 +115,7 @@ as \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" is set to `YES`. \section faq_code_inc How can I change what is after the \#include in the class documentation? -In most cases you can use \ref cfg_strip_from_inc_path "STRIP_FROM_INC_PATH" +In most cases you can use \ref cfg_strip_from_inc_path "STRIP_FROM_INC_PATH" to strip a user defined part of a path. You can also document your class as follows @@ -132,7 +132,7 @@ To make doxygen put <br><br> \#include \<path/include.h\> </code> -in the documentation of the class MyClassName regardless of the name of the actual +in the documentation of the class MyClassName regardless of the name of the actual header file in which the definition of MyClassName is contained. If you want doxygen to show that the include file should be included using @@ -146,14 +146,14 @@ quotes instead of angle brackets you should type: \section faq_chm How can I use tag files in combination with compressed HTML? -If you want to refer from one compressed HTML file -\c a.chm to another compressed HTML file +If you want to refer from one compressed HTML file +\c a.chm to another compressed HTML file called \c b.chm, the link in \c a.chm must have the following format: \verbatim <a href="b.chm::/file.html"> \endverbatim -Unfortunately this only works if both compressed HTML files are in the same +Unfortunately this only works if both compressed HTML files are in the same directory. As a result you must rename the generated \c index.chm files for all projects @@ -161,7 +161,7 @@ into something unique and put all <code>.chm</code> files in one directory. Suppose you have a project \e a referring to a project \e b using tag file \c b.tag, then you could rename the \c index.chm for project \e a into -\c a.chm and the \c index.chm for project \e b into \c b.chm. In the +\c a.chm and the \c index.chm for project \e b into \c b.chm. In the configuration file for project \e a you write: \verbatim TAGFILES = b.tag=b.chm:: @@ -175,7 +175,7 @@ put in your own header file by writing your own header and feed that to \section faq_html_header The overall HTML output looks different, while I only wanted to use my own html header file -You probably forgot to include the stylesheet <code>doxygen.css</code> that +You probably forgot to include the stylesheet <code>doxygen.css</code> that doxygen generates. You can include this by putting \verbatim <LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> @@ -184,11 +184,11 @@ in the HEAD section of the HTML page. \section faq_use_qt Why does doxygen use Qt? -The most important reason is to have a platform abstraction for most -Unices and Windows by means of the QFile, QFileInfo, QDir, QDate, -QTime and QIODevice classes. -Another reason is for the nice and bug free utility classes, like QList, -QDict, QString, QArray, QTextStream, QRegExp, QXML etc. +The most important reason is to have a platform abstraction for most +Unices and Windows by means of the QFile, QFileInfo, QDir, QDate, +QTime and QIODevice classes. +Another reason is for the nice and bug free utility classes, like QList, +QDict, QString, QArray, QTextStream, QRegExp, QXML etc. The GUI front-end doxywizard uses Qt for... well... the GUI! @@ -207,32 +207,32 @@ remove the % and keep the word unlinked. \section faq_pgm_X My favorite programming language is X. Can I still use doxygen? -No, not as such; doxygen needs to understand the structure of what it reads. +No, not as such; doxygen needs to understand the structure of what it reads. If you don't mind spending some time on it, there are several options: - If the grammar of X is close to C or C++, then it is probably not too hard to tweak \c src/scanner.l a bit so the language is supported. This is done - for all other languages directly supported by doxygen + for all other languages directly supported by doxygen (i.e. Java, IDL, C#, PHP). - If the grammar of X is somewhat different than you can write an input filter that translates X into something similar enough to C/C++ for doxygen to understand (this approach is taken for VB, Object Pascal, and - JavaScript, see http://www.doxygen.org/download.html#helpers). -- If the grammar is completely different one could write a parser for X and - write a backend that produces a similar syntax tree as is done by + JavaScript, see https://www.doxygen.org/download.html#helpers). +- If the grammar is completely different one could write a parser for X and + write a backend that produces a similar syntax tree as is done by \c src/scanner.l (and also by \c src/tagreader.cpp while reading tag files). \section faq_lex Help! I get the cryptic message "input buffer overflow, can't enlarge buffer because scanner uses REJECT" This error happens when doxygen's lexical scanner has a rule that matches -more than 256K of input characters in one go. I've seen this happening -on a very large generated file (\>256K lines), where the built-in preprocessor +more than 256K of input characters in one go. I've seen this happening +on a very large generated file (\>256K lines), where the built-in preprocessor converted it into an empty file (with \>256K of newlines). Another case where this might happen is if you have lines in your code with more than -256K characters. +256K characters. If you have run into such a case and want me to fix it, you should send me a code fragment that triggers the message. To work around -the problem, put some line-breaks into your file, split it up into smaller +the problem, put some line-breaks into your file, split it up into smaller parts, or exclude it from the input using EXCLUDE. Another way to work around this problem is to use the cmake command with the option: @@ -244,17 +244,17 @@ In case this option is not given the default value of 262144 (i.e. 256K) will be \section faq_latex When running make in the latex directory I get "TeX capacity exceeded". Now what? -You can edit the texmf.cfg file to increase the default values of the +You can edit the texmf.cfg file to increase the default values of the various buffers and then run "texconfig init". \section faq_stl Why are dependencies via STL classes not shown in the dot graphs? -Doxygen is unaware of the STL classes, unless the +Doxygen is unaware of the STL classes, unless the option \ref cfg_builtin_stl_support "BUILTIN_STL_SUPPORT" is turned on. \section faq_search I have problems getting the search engine to work with PHP5 and/or windows -Please read <a href="searching.html">this</a> for hints on where to look. +Please read <a href="searching.html">this</a> for hints on where to look. \section faq_cmdline Can I configure doxygen from the command line? @@ -277,12 +277,12 @@ For Windows Powershell (checked with version 5.1) the following would do the sam &{ type Doxyfile ; echo "PROJECT_NUMBER=1.0" } | doxygen - \endverbatim -If multiple options with the same name are specified then doxygen will use +If multiple options with the same name are specified then doxygen will use the last one. To append to an existing option you can use the += operator. \section faq_name How did doxygen get its name? -Doxygen got its name from playing with the words +Doxygen got its name from playing with the words documentation and generator. \verbatim @@ -291,19 +291,19 @@ generator -> gen \endverbatim At the time I was looking into \c lex and \c yacc, where a lot of things start with -"yy", so the "y" slipped in and made things pronounceable +"yy", so the "y" slipped in and made things pronounceable (the proper pronouncement is Docs-ee-gen, so with a long "e"). \section faq_why What was the reason to develop doxygen? I once wrote a GUI widget based on the Qt library (it is still available at -https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002). -Qt had nicely generated documentation (using an internal tool which -<a href="http://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>) -and I wrote similar docs by hand. +https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002). +Qt had nicely generated documentation (using an internal tool which +<a href="http://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>) +and I wrote similar docs by hand. This was a nightmare to maintain, so I wanted a similar tool. I looked at Doc++ but that just wasn't good enough (it didn't support signals and -slots and did not have the Qt look and feel I had grown to like), +slots and did not have the Qt look and feel I had grown to like), so I started to write my own tool... \htmlonly diff --git a/doc/index.doc b/doc/index.doc index 60f4497..ae46087 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -62,7 +62,7 @@ This manual is divided into three parts, each of which is divided into several s The first part forms a user manual: <ul> <li>Section \ref install discusses how to - <a href="http://www.doxygen.org/download.html">download</a>, compile and install + <a href="https://www.doxygen.org/download.html">download</a>, compile and install doxygen for your platform. <li>Section \ref starting tells you how to generate your first piece of documentation quickly. @@ -140,11 +140,11 @@ input used in their production; they are not affected by this license. Doxygen supports a number of \ref output "output formats" where HTML is the most popular one. I've gathered -<a href="http://www.doxygen.org/results.html">some nice examples</a> +<a href="https://www.doxygen.org/results.html">some nice examples</a> of real-life projects using doxygen. These are part of a larger -<a href="http://www.doxygen.org/projects.html">list of projects</a> +<a href="https://www.doxygen.org/projects.html">list of projects</a> that use doxygen. If you know other projects, let <a href="mailto:doxygen@gmail.com?subject=New%20project%20using%20Doxygen">me</a> know and I'll add them. diff --git a/doc/install.doc b/doc/install.doc index ba044b9..cf855fe 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -20,7 +20,7 @@ \tableofcontents{html,latex} First go to the -<a href="http://www.doxygen.org/download.html">download</a> page +<a href="https://www.doxygen.org/download.html">download</a> page to get the latest distribution, if you have not downloaded doxygen already. \section install_src_unix Compiling from source on UNIX diff --git a/doc/starting.doc b/doc/starting.doc index 2f4f419..3ae2692 100644 --- a/doc/starting.doc +++ b/doc/starting.doc @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2015 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -17,12 +17,12 @@ /*! \page starting Getting started \tableofcontents{html,latex} -The executable \c doxygen is the main program that parses the sources and +The executable \c doxygen is the main program that parses the sources and generates the documentation. See section \ref doxygen_usage for more detailed usage information. -Optionally, the executable \c doxywizard can be used, which is a -\ref doxywizard_usage "graphical front-end" for editing the configuration file +Optionally, the executable \c doxywizard can be used, which is a +\ref doxywizard_usage "graphical front-end" for editing the configuration file that is used by doxygen and for running doxygen in a graphical environment. For Mac OS X doxywizard will be started by clicking on the doxygen application icon. @@ -31,7 +31,7 @@ The following figure shows the relation between the tools and the flow of information between them (it looks complex but that's only because it tries to be complete): -\image html infoflow.png "Doxygen information flow" +\image html infoflow.png "Doxygen information flow" \image latex infoflow.eps "Doxygen information flow" width=14cm \section step0 Step 0: Check if doxygen supports your programming language @@ -40,20 +40,20 @@ First, assure that your programming language has a reasonable chance of being recognized by doxygen. These languages are supported by default: C, C++, C#, Objective-C, IDL, Java, VHDL, PHP, Python, Fortran and D. It is possible to configure certain file type extensions to use certain parsers: -see the \ref cfg_extension_mapping "Configuration/ExtensionMappings" for details. -Also, completely different languages can be supported by using preprocessor -programs: see the <a href="http://www.doxygen.org/helpers.html">Helpers page</a> +see the \ref cfg_extension_mapping "Configuration/ExtensionMappings" for details. +Also, completely different languages can be supported by using preprocessor +programs: see the <a href="https://www.doxygen.org/helpers.html">Helpers page</a> for details. \section step1 Step 1: Creating a configuration file Doxygen uses a configuration file to determine all of its settings. Each project should get its own configuration file. A project can consist -of a single source file, but can also be an entire source tree that is +of a single source file, but can also be an entire source tree that is recursively scanned. -To simplify the creation of a configuration file, doxygen can create a -template configuration file for you. To do this call \c doxygen +To simplify the creation of a configuration file, doxygen can create a +template configuration file for you. To do this call \c doxygen from the command line with the \c -g option: \verbatim doxygen -g <config-file> @@ -61,46 +61,46 @@ doxygen -g <config-file> where \<config-file\> is the name of the configuration file. If you omit the file name, a file named \c Doxyfile will be created. If a file with the -name \<config-file\> already exists, doxygen will rename it to +name \<config-file\> already exists, doxygen will rename it to \<config-file\>.bak before generating the configuration template. -If you use <code>-</code> (i.e. the minus sign) as the file name then -doxygen will try to read the configuration file from standard +If you use <code>-</code> (i.e. the minus sign) as the file name then +doxygen will try to read the configuration file from standard input (<code>stdin</code>), which can be useful for scripting. -The configuration file has a format that is similar to that of a (simple) +The configuration file has a format that is similar to that of a (simple) Makefile. It consists of a number of assignments (tags) of the form: <tt>TAGNAME = VALUE</tt> or <br> <tt>TAGNAME = VALUE1 VALUE2 ... </tt><br> -You can probably leave the values of most tags in a generated template -configuration file to their default value. See section \ref config for -more details about the configuration file. +You can probably leave the values of most tags in a generated template +configuration file to their default value. See section \ref config for +more details about the configuration file. -If you do not wish to edit the configuration file with a text editor, you should -have a look at \ref doxywizard_usage "doxywizard", which is a GUI -front-end that can create, read and write doxygen configuration files, +If you do not wish to edit the configuration file with a text editor, you should +have a look at \ref doxywizard_usage "doxywizard", which is a GUI +front-end that can create, read and write doxygen configuration files, and allows setting configuration options by entering them via dialogs. -For a small project consisting of a few C and/or C++ source +For a small project consisting of a few C and/or C++ source and header files, you can leave \ref cfg_input "INPUT" tag empty and doxygen will search for sources in -the current directory. - -If you have a larger project consisting of a source directory or tree -you should assign the root directory or -directories to the \ref cfg_input "INPUT" tag, and add one or more file -patterns to the \ref cfg_file_patterns "FILE_PATTERNS" tag -(for instance `*.cpp *.h`). Only files that match one of the -patterns will be parsed (if the patterns are omitted a list of +the current directory. + +If you have a larger project consisting of a source directory or tree +you should assign the root directory or +directories to the \ref cfg_input "INPUT" tag, and add one or more file +patterns to the \ref cfg_file_patterns "FILE_PATTERNS" tag +(for instance `*.cpp *.h`). Only files that match one of the +patterns will be parsed (if the patterns are omitted a list of typical patterns is used for the types of files doxygen supports). -For recursive parsing of a source tree you must set -the \ref cfg_recursive "RECURSIVE" tag to \c YES. To further fine-tune the -list of files that is parsed the \ref cfg_exclude "EXCLUDE" and +For recursive parsing of a source tree you must set +the \ref cfg_recursive "RECURSIVE" tag to \c YES. To further fine-tune the +list of files that is parsed the \ref cfg_exclude "EXCLUDE" and \ref cfg_exclude_patterns "EXCLUDE_PATTERNS" tags can be used. To omit all \c test directories from a source tree for instance, one could use: -\verbatim EXCLUDE_PATTERNS = */test/* +\verbatim EXCLUDE_PATTERNS = */test/* \endverbatim \anchor default_file_extension_mapping @@ -139,22 +139,22 @@ Any extension that is not parsed can be set by adding it to \ref cfg_extension_mapping "EXTENSION_MAPPING" is set. \anchor extract_all -If you start using doxygen for an existing project (thus without any +If you start using doxygen for an existing project (thus without any documentation that doxygen is aware of), you can still get an idea of -what the structure is and how the documented result would look like. -To do so, you must set -the \ref cfg_extract_all "EXTRACT_ALL" tag in the configuration file -to \c YES. Then, doxygen will pretend everything in your sources is documented. -Please note that as a consequence warnings about undocumented members -will not be generated as long as \ref cfg_extract_all "EXTRACT_ALL" is +what the structure is and how the documented result would look like. +To do so, you must set +the \ref cfg_extract_all "EXTRACT_ALL" tag in the configuration file +to \c YES. Then, doxygen will pretend everything in your sources is documented. +Please note that as a consequence warnings about undocumented members +will not be generated as long as \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES. -To analyze an existing piece of software it is useful to cross-reference +To analyze an existing piece of software it is useful to cross-reference a (documented) entity with its definition in the source files. Doxygen will -generate such cross-references if you set -the \ref cfg_source_browser "SOURCE_BROWSER" tag to \c YES. +generate such cross-references if you set +the \ref cfg_source_browser "SOURCE_BROWSER" tag to \c YES. It can also include the sources directly into the documentation by setting -\ref cfg_inline_sources "INLINE_SOURCES" to \c YES (this can be handy for +\ref cfg_inline_sources "INLINE_SOURCES" to \c YES (this can be handy for code reviews for instance). \section step2 Step 2: Running doxygen @@ -164,168 +164,168 @@ To generate the documentation you can now enter: doxygen <config-file> \endverbatim -Depending on your settings doxygen will create \c html, \c rtf, -\c latex, \c xml, \c man, and/or docbook directories inside the output directory. +Depending on your settings doxygen will create \c html, \c rtf, +\c latex, \c xml, \c man, and/or docbook directories inside the output directory. As the names suggest these directories contain the generated documentation in HTML, RTF, \LaTeX, XML, Unix-Man page, and DocBook format. The default output directory is the directory in which \c doxygen -is started. The root directory to which the output is written can be changed +is started. The root directory to which the output is written can be changed using the \ref cfg_output_directory "OUTPUT_DIRECTORY". The format specific directory within the output directory can be selected using the \ref cfg_html_output "HTML_OUTPUT", \ref cfg_rtf_output "RTF_OUTPUT", \ref cfg_latex_output "LATEX_OUTPUT", \ref cfg_xml_output "XML_OUTPUT", \ref cfg_man_output "MAN_OUTPUT", and \ref cfg_docbook_output "DOCBOOK_OUTPUT". -tags of the configuration file. If the output directory does not exist, +tags of the configuration file. If the output directory does not exist, \c doxygen will try to create it for you (but it will \e not try to create -a whole path recursively, like <code>mkdir -p</code> does). +a whole path recursively, like <code>mkdir -p</code> does). \subsection html_out HTML output \addindex browser The generated HTML documentation can be viewed by pointing a HTML browser to the \c index.html file in the \c html directory. For the best results a browser that supports cascading style sheets (CSS) should be used -(I'm using Mozilla Firefox, Google Chrome, Safari, and sometimes -IE8, IE9, and Opera to test the generated output). +(I'm using Mozilla Firefox, Google Chrome, Safari, and sometimes +IE8, IE9, and Opera to test the generated output). -Some of the features the HTML section (such as -\ref cfg_generate_treeview "GENERATE_TREEVIEW" or the search engine) -require a browser that supports Dynamic HTML and JavaScript enabled. +Some of the features the HTML section (such as +\ref cfg_generate_treeview "GENERATE_TREEVIEW" or the search engine) +require a browser that supports Dynamic HTML and JavaScript enabled. \subsection latex_out LaTeX output \addindex LaTeX -The generated \LaTeX documentation must first be compiled by +The generated \LaTeX documentation must first be compiled by a \LaTeX compiler (I use a recent teTeX distribution for Linux -and MacOSX and MikTex for Windows). +and MacOSX and MikTex for Windows). To simplify the process of compiling the generated documentation, \c doxygen writes a \c Makefile into the \c latex directory -(on the Windows platform also a \c make.bat batch file is generated). +(on the Windows platform also a \c make.bat batch file is generated). The contents and targets in the \c Makefile depend on the setting of \ref cfg_use_pdflatex "USE_PDFLATEX". If it is disabled (set to \c NO), then typing \c make in the \c latex directory a \c dvi file called \c refman.dvi -will be generated. This file can then be viewed using \c xdvi or -converted into a PostScript file \c refman.ps by -typing `make ps` (this requires `dvips`). +will be generated. This file can then be viewed using \c xdvi or +converted into a PostScript file \c refman.ps by +typing `make ps` (this requires `dvips`). To put 2 pages on one physical page use `make ps_2on1` instead. The resulting PostScript file can be send to a PostScript -printer. If you do not have a PostScript printer, you can try to use +printer. If you do not have a PostScript printer, you can try to use ghostscript to convert PostScript into something your printer understands. Conversion to PDF is also possible if you have installed the ghostscript -interpreter; just type `make pdf` (or `make pdf_2on1`). +interpreter; just type `make pdf` (or `make pdf_2on1`). -To get the best results for PDF output you should set -the \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" -and \ref cfg_use_pdflatex "USE_PDFLATEX" tags to \c YES. -In this case the \c Makefile will only contain a target to build +To get the best results for PDF output you should set +the \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" +and \ref cfg_use_pdflatex "USE_PDFLATEX" tags to \c YES. +In this case the \c Makefile will only contain a target to build \c refman.pdf directly. \subsection rtf_out RTF output \addindex RTF Doxygen combines the RTF output to a single file called refman.rtf. This file is optimized for importing into the Microsoft Word. Certain information -is encoded using so called fields. To show the actual value you need to +is encoded using so called fields. To show the actual value you need to select all (Edit - select all) and then toggle fields (right click and select the option from the drop down menu). \subsection xml_out XML output \addindex XML -The XML output consists of a structured "dump" of the information gathered -by doxygen. Each compound (class/namespace/file/...) has its own XML file -and there is also an index file called `index.xml`. +The XML output consists of a structured "dump" of the information gathered +by doxygen. Each compound (class/namespace/file/...) has its own XML file +and there is also an index file called `index.xml`. A file called `combine.xslt` -XSLT script is also generated and can be used to combine all XML files -into a single file. +XSLT script is also generated and can be used to combine all XML files +into a single file. Doxygen also generates two XML schema files `index.xsd` (for the index file) and `compound.xsd` (for the compound files). -This schema file describes the possible elements, their attributes and -how they are structured, i.e. it the describes the grammar of the XML +This schema file describes the possible elements, their attributes and +how they are structured, i.e. it the describes the grammar of the XML files and can be used for validation or to steer XSLT scripts. In the `addon/doxmlparser` directory you can find a parser library for reading -the XML output produced by doxygen in an incremental way +the XML output produced by doxygen in an incremental way (see `addon/doxmlparser/include/doxmlintf.h` for the interface of the library) \subsection man_out Man page output \addindex man The generated man pages can be viewed using the \c man program. You do need to make sure the man directory is in the man path (see the \c MANPATH -environment variable). Note that there are some limitations to the -capabilities of the man page format, so some information +environment variable). Note that there are some limitations to the +capabilities of the man page format, so some information (like class diagrams, cross references and formulas) will be lost. \subsection docbook_out DocBook output \addindex docbook -Doxygen can also generate output in the +Doxygen can also generate output in the <a href="https://docbook.org/">DocBook</a> format. How to process the DocBook output is beyond the scope of this manual. \section step3 Step 3: Documenting the sources -Although documenting the sources is presented as step 3, in a new project +Although documenting the sources is presented as step 3, in a new project this should of course be step 1. Here I assume -you already have some code and you want doxygen to generate a nice document +you already have some code and you want doxygen to generate a nice document describing the API and maybe the internals and some related design documentation as well. -If the \ref cfg_extract_all "EXTRACT_ALL" option is set to \c NO in the -configuration file (the default), then doxygen will only generate -documentation for \e documented entities. So -how do you document these? For members, classes and namespaces there are +If the \ref cfg_extract_all "EXTRACT_ALL" option is set to \c NO in the +configuration file (the default), then doxygen will only generate +documentation for \e documented entities. So +how do you document these? For members, classes and namespaces there are basically two options: 1. Place a \e special documentation block in front of the declaration or definition of the member, class or namespace. For file, class and namespace - members it is also allowed to place the documentation directly after the - member. - - See section \ref specialblock to learn more about special + members it is also allowed to place the documentation directly after the + member. + + See section \ref specialblock to learn more about special documentation blocks. -2. Place a special documentation block somewhere else (another file or - another location) \e and put a <em>structural command</em> in the - documentation block. A structural command links a documentation block - to a certain entity that can be documented (e.g. a member, class, - namespace or file). - - See section \ref structuralcommands to learn more +2. Place a special documentation block somewhere else (another file or + another location) \e and put a <em>structural command</em> in the + documentation block. A structural command links a documentation block + to a certain entity that can be documented (e.g. a member, class, + namespace or file). + + See section \ref structuralcommands to learn more about structural commands. The advantage of the first option is that you do not have to repeat the name of the entity. Files can only be documented using the second option, since there is -no way to put a documentation block before a file. Of course, file members -(functions, variables, typedefs, defines) do not need an explicit -structural command; just putting a special documentation block in front or -behind them will work fine. +no way to put a documentation block before a file. Of course, file members +(functions, variables, typedefs, defines) do not need an explicit +structural command; just putting a special documentation block in front or +behind them will work fine. The text inside a special documentation block is parsed before it is written to the HTML and/or \LaTeX output files. \addindex parsing During parsing the following steps take place: -- Markdown formatting is replaced by corresponding HTML or special +- Markdown formatting is replaced by corresponding HTML or special commands. - The special commands inside the documentation are executed. See section \ref commands for an overview of all commands. -- If a line starts with some whitespace followed by one or more asterisks - (`*`) and then optionally more whitespace, +- If a line starts with some whitespace followed by one or more asterisks + (`*`) and then optionally more whitespace, then all whitespace and asterisks are removed. - All resulting blank lines are treated as a paragraph separators. - This saves you from placing new-paragraph commands yourself + This saves you from placing new-paragraph commands yourself in order to make the generated documentation readable. - Links are created for words corresponding to documented classes (unless the word is preceded by a \%; then the word will not be linked and - the \% sign is removed). + the \% sign is removed). - Links to members are created when certain patterns are found in the text. See section \ref autolink for more information on how the automatic link generation works. -- HTML tags that are in the documentation are interpreted and converted - to \LaTeX equivalents for the \LaTeX output. +- HTML tags that are in the documentation are interpreted and converted + to \LaTeX equivalents for the \LaTeX output. See section \ref htmlcmds for an overview of all supported HTML tags. \htmlonly diff --git a/src/doxygen.md b/src/doxygen.md index d8db231..e3db534 100644 --- a/src/doxygen.md +++ b/src/doxygen.md @@ -7,7 +7,7 @@ Introduction This page provides a high-level overview of the internals of doxygen, with links to the relevant parts of the code. This document is intended for developers who want to work on doxygen. Users of doxygen are referred to the -[User Manual](http://www.doxygen.nl/manual/index.html). +[User Manual](https://www.doxygen.nl/manual/index.html). The generic starting point of the application is of course the main() function. @@ -15,13 +15,13 @@ Configuration options ===================== Configuration file data is stored in singleton class Config and can be -accessed using wrapper macros +accessed using wrapper macros Config_getString(), Config_getInt(), Config_getList(), Config_getEnum(), and Config_getBool() depending on the type of the -option. +option. The format of the configuration file (options and types) is defined -by the file `config.xml`. As part of the build process, +by the file `config.xml`. As part of the build process, the python script `configgen.py` will create a file `configoptions.cpp` from this, which serves as the input for the configuration file parser that is invoked using Config::parse(). The script `configgen.py` will also @@ -43,18 +43,18 @@ for each file. Each parser implements the abstract interface ParserInterface. If the parser indicates it needs preprocessing via ParserInterface::needsPreprocessing(), doxygen will call preprocessFile() -on the file. +on the file. A second step is to convert multiline C++-style comments into C style comments -for easier processing later on. As side effect of this step also -aliases (ALIASES option) are resolved. The function that performs these +for easier processing later on. As side effect of this step also +aliases (ALIASES option) are resolved. The function that performs these 2 tasks is called convertCppComments(). *Note:* Alias resolution should better be done in a separate step as it is now coupled to C/C++ code and does not work automatically for other languages! -The third step is the actual language parsing and is done by calling -ParserInterface::parseInput() on the parser interface returned by +The third step is the actual language parsing and is done by calling +ParserInterface::parseInput() on the parser interface returned by the ParserManager. The result of parsing is a tree of Entry objects. @@ -67,19 +67,19 @@ converted into a Definition object. When a parser finds a special comment block in the input, it will do a first pass parsing via parseCommentBlock(). During this pass the comment block is split into multiple parts if needed. Some data that is later needed is -extracted like section labels, xref items, and formulas. +extracted like section labels, xref items, and formulas. Also Markdown markup is processed using processMarkdown() during this pass. Resolving relations =================== -The Entry objects created and filled during parsing are stored on disk -(to keep memory needs low). The name, parent/child relation, and -location on disk of each Entry is stored as a tree of EntryNav nodes, which is +The Entry objects created and filled during parsing are stored on disk +(to keep memory needs low). The name, parent/child relation, and +location on disk of each Entry is stored as a tree of EntryNav nodes, which is kept in memory. Doxygen does a number of tree walks over the EntryNav nodes in the tree to -build up the data structures needed to produce the output. +build up the data structures needed to produce the output. The resulting data structures are all children of the generic base class called Definition which holds all non-specific data for a symbol definition. @@ -141,9 +141,9 @@ easy ways to get debug information. - classes<br> Gives of classes en modules its scope and other relevant information. - preprocessor<br> - Shows the results of the preprocessing phase, i.e. results from include files, + Shows the results of the preprocessing phase, i.e. results from include files, <tt>\#define</tt> statements etc., definitions in the doxygen configuration file like: - `EXPAND_ONLY_PREDEF`, `PREDEFINED` and `MACRO_EXPANSION`. + `EXPAND_ONLY_PREDEF`, `PREDEFINED` and `MACRO_EXPANSION`. - commentcnv<br> Shows the results of the comment conversion, the comment conversion does the following: @@ -216,8 +216,8 @@ Topics TODO - perlmod - i18n via Translator and language.cpp - Customizing the layout via LayoutDocManager -- Parsers - - C Preprocessing +- Parsers + - C Preprocessing - const expression evaluation - C link languages - Python diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 58a0622..cd615e4 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -1235,7 +1235,7 @@ QCString HtmlGenerator::writeLogoAsString(const char *path) { result += theTranslator->trGeneratedBy(); } - result += " \n<a href=\"http://www.doxygen.org/index.html\">\n" + result += " \n<a href=\"https://www.doxygen.org/index.html\">\n" "<img class=\"footer\" src=\""; result += path; result += "doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> "; diff --git a/templates/html/footer.html b/templates/html/footer.html index 1cb1529..2fd7aee 100644 --- a/templates/html/footer.html +++ b/templates/html/footer.html @@ -3,13 +3,13 @@ <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> $navpath - <li class="footer">$generatedby <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li> + <li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li> </ul> </div> <!--END GENERATE_TREEVIEW--> <!--BEGIN !GENERATE_TREEVIEW--> <hr class="footer"/><address class="footer"><small> -$generatedby <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion +$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </small></address> <!--END !GENERATE_TREEVIEW--> </body> diff --git a/templates/html/htmlbase.tpl b/templates/html/htmlbase.tpl index 362de31..f021ddd 100644 --- a/templates/html/htmlbase.tpl +++ b/templates/html/htmlbase.tpl @@ -228,7 +228,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% else %} {{ tr.generatedBy }} {% endif %} - <a href="http://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.svg" width="104" height="31" alt="doxygen"/></a> {{ doxygen.version }} </li> + <a href="https://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.svg" width="104" height="31" alt="doxygen"/></a> {{ doxygen.version }} </li> </ul> </div> {% else %} @@ -238,7 +238,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% else %} {{ tr.generatedBy }} {% endif %} - <a href="http://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.svg" width="104" height="31" alt="doxygen"/></a> + <a href="https://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.svg" width="104" height="31" alt="doxygen"/></a> {{ doxygen.version }} </small></address> {% endif %} diff --git a/testing/031/indexpage.xml b/testing/031/indexpage.xml index b6631b0..168508c 100644 --- a/testing/031/indexpage.xml +++ b/testing/031/indexpage.xml @@ -44,10 +44,10 @@ This image is inline <image type="html" name="http://img.shields.io/badge/licens </para> <para>Some markdown image tests<linebreak/> <image type="html" name="https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar" inline="yes"/> - <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink></para> + <ulink url="https://www.doxygen.nl?foo&bar">Some normal link</ulink></para> <para> <image type="html" name="https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar" inline="yes"/> - <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink> + <ulink url="https://www.doxygen.nl?foo&bar">Some normal link</ulink> </para> </detaileddescription> </compounddef> diff --git a/testing/031_image.dox b/testing/031_image.dox index e451592..36ab6c8 100644 --- a/testing/031_image.dox +++ b/testing/031_image.dox @@ -52,8 +52,8 @@ HTML style unlinked PNG image:\n Some markdown image tests\n ![Some SVG image](https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar) -[Some normal link](http://www.doxygen.nl?foo&bar) +[Some normal link](https://www.doxygen.nl?foo&bar) ![Some SVG image](https://img.shields.io/badge/docs-Doxygen-blue.svg?foo&bar) -[Some normal link](http://www.doxygen.nl?foo&bar) +[Some normal link](https://www.doxygen.nl?foo&bar) */ |