2012-06-25 3 views
10

In doxygen ich schreibe:Doxygen: code Tag tötet Einbuchtung

/*! Sample: 

\code{.cpp} 
void main(int argc, char** argv) 
{ 
    if (argc < 2) 
    { 
     cout << "no way!" << endl; 
    } 
    else 
    { 
     foobar(argv[1]); 
    } 
} 
\endcode 
*/ 

Jetzt erzeugen doxygen ein perfekte Syntax-markiertes Codebeispiel für meine Dokumentation, aber leider auch tötet die Einbuchtung:

Probe :

void main(int argc, char** argv) 
{ 
if (argc < 2) 
{ 
cout << "no way!" << endl; 
} 
else 
{ 
foobar(argv[1]); 
} 
} 

Was kann ich tun, um Doxygen meine Einrückung zu respektieren. Ich weiß, dass es \ wörtlich gibt, aber es hebt die Syntax nicht hervor.


EDIT: Hier ist die doxygen Konfiguration, vielleicht ist es etwas falsch drin:

#--------------------------------------------------------------------------- 
# Project related configuration options 
#--------------------------------------------------------------------------- 
DOXYFILE_ENCODING  = UTF-8 
PROJECT_NAME   = demo 
PROJECT_NUMBER   = 
PROJECT_BRIEF   = 
PROJECT_LOGO   = 
OUTPUT_DIRECTORY  = ../../../../../Desktop/dox 
CREATE_SUBDIRS   = NO 
OUTPUT_LANGUAGE  = English 
BRIEF_MEMBER_DESC  = YES 
REPEAT_BRIEF   = YES 
ABBREVIATE_BRIEF  = "The $name class" \ 
         "The $name widget" \ 
         "The $name file" \ 
         is \ 
         provides \ 
         specifies \ 
         contains \ 
         represents \ 
         a \ 
         an \ 
         the 
ALWAYS_DETAILED_SEC = NO 
INLINE_INHERITED_MEMB = NO 
FULL_PATH_NAMES  = NO 
STRIP_FROM_PATH  = 
STRIP_FROM_INC_PATH = 
SHORT_NAMES   = NO 
JAVADOC_AUTOBRIEF  = YES 
QT_AUTOBRIEF   = NO 
MULTILINE_CPP_IS_BRIEF = YES 
INHERIT_DOCS   = YES 
SEPARATE_MEMBER_PAGES = NO 
TAB_SIZE    = 8 
ALIASES    = 
TCL_SUBST    = 
OPTIMIZE_OUTPUT_FOR_C = NO 
OPTIMIZE_OUTPUT_JAVA = NO 
OPTIMIZE_FOR_FORTRAN = NO 
OPTIMIZE_OUTPUT_VHDL = NO 
EXTENSION_MAPPING  = 
MARKDOWN_SUPPORT  = YES 
BUILTIN_STL_SUPPORT = NO 
CPP_CLI_SUPPORT  = NO 
SIP_SUPPORT   = NO 
IDL_PROPERTY_SUPPORT = YES 
DISTRIBUTE_GROUP_DOC = NO 
SUBGROUPING   = YES 
INLINE_GROUPED_CLASSES = NO 
INLINE_SIMPLE_STRUCTS = NO 
TYPEDEF_HIDES_STRUCT = NO 
SYMBOL_CACHE_SIZE  = 0 
LOOKUP_CACHE_SIZE  = 0 

#--------------------------------------------------------------------------- 
# Build related configuration options 
#--------------------------------------------------------------------------- 
EXTRACT_ALL   = YES 
EXTRACT_PRIVATE  = YES 
EXTRACT_PACKAGE  = NO 
EXTRACT_STATIC   = YES 
EXTRACT_LOCAL_CLASSES = YES 
EXTRACT_LOCAL_METHODS = YES 
EXTRACT_ANON_NSPACES = YES 
HIDE_UNDOC_MEMBERS  = NO 
HIDE_UNDOC_CLASSES  = NO 
HIDE_FRIEND_COMPOUNDS = NO 
HIDE_IN_BODY_DOCS  = NO 
INTERNAL_DOCS   = NO 
CASE_SENSE_NAMES  = NO 
HIDE_SCOPE_NAMES  = NO 
SHOW_INCLUDE_FILES  = YES 
FORCE_LOCAL_INCLUDES = NO 
INLINE_INFO   = YES 
SORT_MEMBER_DOCS  = YES 
SORT_BRIEF_DOCS  = NO 
SORT_MEMBERS_CTORS_1ST = NO 
SORT_GROUP_NAMES  = NO 
SORT_BY_SCOPE_NAME  = NO 
STRICT_PROTO_MATCHING = NO 
GENERATE_TODOLIST  = YES 
GENERATE_TESTLIST  = YES 
GENERATE_BUGLIST  = YES 
GENERATE_DEPRECATEDLIST= YES 
ENABLED_SECTIONS  = 
MAX_INITIALIZER_LINES = 30 
SHOW_USED_FILES  = YES 
SHOW_FILES    = YES 
SHOW_NAMESPACES  = YES 
FILE_VERSION_FILTER = 
LAYOUT_FILE   = 
CITE_BIB_FILES   = 

#--------------------------------------------------------------------------- 
# configuration options related to warning and progress messages 
#--------------------------------------------------------------------------- 
QUIET     = NO 
WARNINGS    = NO 
WARN_IF_UNDOCUMENTED = NO 
WARN_IF_DOC_ERROR  = YES 
WARN_NO_PARAMDOC  = NO 
WARN_FORMAT   = "$file:$line: $text" 
WARN_LOGFILE   = C:\Users\foobar\Desktop\dox\demo.log 

#--------------------------------------------------------------------------- 
# configuration options related to the input files 
#--------------------------------------------------------------------------- 
INPUT     = ../demo/src/export 
INPUT_ENCODING   = UTF-8 
FILE_PATTERNS   = *.c \ 
         *.cc \ 
         *.cxx \ 
         *.cpp \ 
         *.c++ \ 
         *.d \ 
         *.java \ 
         *.ii \ 
         *.ixx \ 
         *.ipp \ 
         *.i++ \ 
         *.inl \ 
         *.h \ 
         *.hh \ 
         *.hxx \ 
         *.hpp \ 
         *.h++ \ 
         *.idl \ 
         *.odl \ 
         *.cs \ 
         *.php \ 
         *.php3 \ 
         *.inc \ 
         *.m \ 
         *.mm \ 
         *.dox \ 
         *.py \ 
         *.f90 \ 
         *.f \ 
         *.vhd \ 
         *.vhdl 
RECURSIVE    = YES 
EXCLUDE    = 
EXCLUDE_SYMLINKS  = NO 
EXCLUDE_PATTERNS  = 
EXCLUDE_SYMBOLS  = 
EXAMPLE_PATH   = 
EXAMPLE_PATTERNS  = * 
EXAMPLE_RECURSIVE  = NO 
IMAGE_PATH    = 
INPUT_FILTER   = 
FILTER_PATTERNS  = 
FILTER_SOURCE_FILES = NO 
FILTER_SOURCE_PATTERNS = 

#--------------------------------------------------------------------------- 
# configuration options related to source browsing 
#--------------------------------------------------------------------------- 
SOURCE_BROWSER   = YES 
INLINE_SOURCES   = NO 
STRIP_CODE_COMMENTS = YES 
REFERENCED_BY_RELATION = YES 
REFERENCES_RELATION = YES 
REFERENCES_LINK_SOURCE = YES 
USE_HTAGS    = NO 
VERBATIM_HEADERS  = YES 

#--------------------------------------------------------------------------- 
# configuration options related to the alphabetical class index 
#--------------------------------------------------------------------------- 
ALPHABETICAL_INDEX  = YES 
COLS_IN_ALPHA_INDEX = 5 
IGNORE_PREFIX   = 

#--------------------------------------------------------------------------- 
# configuration options related to the HTML output 
#--------------------------------------------------------------------------- 
GENERATE_HTML   = YES 
HTML_OUTPUT   = html 
HTML_FILE_EXTENSION = .html 
HTML_HEADER   = header.html 
HTML_FOOTER   = 
HTML_STYLESHEET  = 
HTML_EXTRA_FILES  = 
HTML_COLORSTYLE_HUE = 220 
HTML_COLORSTYLE_SAT = 100 
HTML_COLORSTYLE_GAMMA = 80 
HTML_TIMESTAMP   = NO 
HTML_DYNAMIC_SECTIONS = NO 
HTML_INDEX_NUM_ENTRIES = 100 
GENERATE_DOCSET  = NO 
DOCSET_FEEDNAME  = "Doxygen generated docs" 
DOCSET_BUNDLE_ID  = org.doxygen.Project 
DOCSET_PUBLISHER_ID = org.doxygen.Publisher 
DOCSET_PUBLISHER_NAME = Publisher 
GENERATE_HTMLHELP  = NO 
CHM_FILE    = 
HHC_LOCATION   = 
GENERATE_CHI   = NO 
CHM_INDEX_ENCODING  = 
BINARY_TOC    = NO 
TOC_EXPAND    = NO 
GENERATE_QHP   = NO 
QCH_FILE    = 
QHP_NAMESPACE   = org.doxygen.Project 
QHP_VIRTUAL_FOLDER  = doc 
QHP_CUST_FILTER_NAME = 
QHP_CUST_FILTER_ATTRS = 
QHP_SECT_FILTER_ATTRS = 
QHG_LOCATION   = 
GENERATE_ECLIPSEHELP = NO 
ECLIPSE_DOC_ID   = org.doxygen.Project 
DISABLE_INDEX   = NO 
GENERATE_TREEVIEW  = YES 
ENUM_VALUES_PER_LINE = 4 
TREEVIEW_WIDTH   = 250 
EXT_LINKS_IN_WINDOW = NO 
FORMULA_FONTSIZE  = 10 
FORMULA_TRANSPARENT = YES 
USE_MATHJAX   = NO 
MATHJAX_RELPATH  = http://www.mathjax.org/mathjax 
MATHJAX_EXTENSIONS  = 
SEARCHENGINE   = NO 
SERVER_BASED_SEARCH = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the LaTeX output 
#--------------------------------------------------------------------------- 
GENERATE_LATEX   = NO 
LATEX_OUTPUT   = latex 
LATEX_CMD_NAME   = latex 
MAKEINDEX_CMD_NAME  = makeindex 
COMPACT_LATEX   = NO 
PAPER_TYPE    = a4wide 
EXTRA_PACKAGES   = 
LATEX_HEADER   = 
LATEX_FOOTER   = 
PDF_HYPERLINKS   = YES 
USE_PDFLATEX   = YES 
LATEX_BATCHMODE  = NO 
LATEX_HIDE_INDICES  = NO 
LATEX_SOURCE_CODE  = NO 
LATEX_BIB_STYLE  = plain 

#--------------------------------------------------------------------------- 
# configuration options related to the RTF output 
#--------------------------------------------------------------------------- 
GENERATE_RTF   = NO 
RTF_OUTPUT    = rtf 
COMPACT_RTF   = NO 
RTF_HYPERLINKS   = NO 
RTF_STYLESHEET_FILE = 
RTF_EXTENSIONS_FILE = 

#--------------------------------------------------------------------------- 
# configuration options related to the man page output 
#--------------------------------------------------------------------------- 
GENERATE_MAN   = NO 
MAN_OUTPUT    = man 
MAN_EXTENSION   = .3 
MAN_LINKS    = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the XML output 
#--------------------------------------------------------------------------- 
GENERATE_XML   = NO 
XML_OUTPUT    = xml 
XML_SCHEMA    = 
XML_DTD    = 
XML_PROGRAMLISTING  = YES 

#--------------------------------------------------------------------------- 
# configuration options for the AutoGen Definitions output 
#--------------------------------------------------------------------------- 
GENERATE_AUTOGEN_DEF = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the Perl module output 
#--------------------------------------------------------------------------- 
GENERATE_PERLMOD  = NO 
PERLMOD_LATEX   = NO 
PERLMOD_PRETTY   = YES 
PERLMOD_MAKEVAR_PREFIX = 

#--------------------------------------------------------------------------- 
# Configuration options related to the preprocessor 
#--------------------------------------------------------------------------- 
ENABLE_PREPROCESSING = YES 
MACRO_EXPANSION  = NO 
EXPAND_ONLY_PREDEF  = NO 
SEARCH_INCLUDES  = YES 
INCLUDE_PATH   = 
INCLUDE_FILE_PATTERNS = 
PREDEFINED    = 
EXPAND_AS_DEFINED  = 
SKIP_FUNCTION_MACROS = YES 

#--------------------------------------------------------------------------- 
# Configuration::additions related to external references 
#--------------------------------------------------------------------------- 
TAGFILES    = 
GENERATE_TAGFILE  = 
ALLEXTERNALS   = NO 
EXTERNAL_GROUPS  = YES 
PERL_PATH    = /usr/bin/perl 

#--------------------------------------------------------------------------- 
# Configuration options related to the dot tool 
#--------------------------------------------------------------------------- 
CLASS_DIAGRAMS   = NO 
MSCGEN_PATH   = 
HIDE_UNDOC_RELATIONS = NO 
HAVE_DOT    = NO 
DOT_NUM_THREADS  = 0 
DOT_FONTNAME   = FreeSans 
DOT_FONTSIZE   = 10 
DOT_FONTPATH   = 
CLASS_GRAPH   = YES 
COLLABORATION_GRAPH = YES 
GROUP_GRAPHS   = YES 
UML_LOOK    = NO 
UML_LIMIT_NUM_FIELDS = 10 
TEMPLATE_RELATIONS  = NO 
INCLUDE_GRAPH   = YES 
INCLUDED_BY_GRAPH  = YES 
CALL_GRAPH    = YES 
CALLER_GRAPH   = NO 
GRAPHICAL_HIERARCHY = YES 
DIRECTORY_GRAPH  = YES 
DOT_IMAGE_FORMAT  = png 
INTERACTIVE_SVG  = NO 
DOT_PATH    = \\somewhere\over\the\rainbow 
DOTFILE_DIRS   = 
MSCFILE_DIRS   = 
DOT_GRAPH_MAX_NODES = 50 
MAX_DOT_GRAPH_DEPTH = 1000 
DOT_TRANSPARENT  = YES 
DOT_MULTI_TARGETS  = NO 
GENERATE_LEGEND  = YES 

DOT_CLEANUP   = YES 

Antwort

9

Wenn Sie Doxygen 1.8.1.1 oder älter verwenden, wird die Einrückung berücksichtigt. Doxygen Release 1.8.1.2 entfernt führende Einrückung, die von den @code-Zeilen gemeinsam genutzt wird. Überprüfen Sie die Change log released on 12-07-2012.

+0

Dieses Fehlmerkmal ist in der Version 1.8.7 (oder früher) behoben, jedoch behalten Code-Blöcke im Markdown-Stil den Einzug nicht bei. '@code ... @ endcode' funktioniert gut, aber' ~~~~~ ... ~~~~~ 'nicht. –

1

Mit Doxygen 1.8.1 bekomme ich einen Syntaxcodeblock mit Vertiefung mit dem Beispiel in der Frage respektiert hervorgehoben . Welche Version von Doxygen verwenden Sie? Vielleicht ist dies nur ein Fall der Aktualisierung Ihrer Version von Doxgen. Wenn dies nicht die Lösung ist, müssen Sie etwas mehr Kontext bereitstellen, d. H. Ist die Beispieldokumentation, die Sie in Ihrem Quellcode in einer .txt- oder .markdown-Datei angeben?

Ich musste Ihren Eröffnungs Kommentar Zeichen von \ zu / ändern, ich nehme an, dies ist nur ein Tippfehler. Wenn Ihre Datei C++ - Quelle enthält, kann die {.cpp} auch aus \code{.cpp} weggelassen werden (d. H. \code an sich ist in Ordnung).

+0

Ich verwende auch Doxygen 1.8.1. Es gibt zwei Unterschiede zwischen dem Sample hier und dem echten Ding: 1. Ich fange jede Zeile des Kommentars mit einem anderen Sternchen (*) an, das auf den in der ersten Zeile ausgerichtet ist. Das verursacht das Problem nicht, weil ich schon ohne versucht habe. 2. Mein realer Code ist nur etwas ausführlicher und Teil einer Klassenbeschreibung. Und ich habe nur den obigen Beispielcode verwendet, aber das Verhalten ist das gleiche. –

+0

Ich habe versucht, Ihre Beispielkommentare als Dokumentation einer Klassenmethode zu setzen und trotzdem einen eingerückten Codeblock zu bekommen. Ich kann nichts in Ihrer Konfigurationsdatei sehen, das Ihr Problem verursachen würde.(Obwohl es viel zu tun gibt, könnten Sie einfach die Felder einfügen, die sich von der Standardkonfigurationsdatei unterscheiden). Können Sie einen anderen Kontext bereitstellen, also ein kleines Codebeispiel, das Ihr Problem reproduziert? – Chris

2

Aktualisieren Sie Ihre Doxygen HTML (. CSS) Stylesheet auf die neueste Version. Das hat das Problem für mich behoben.

8

Ich hatte das gleiche Problem, und es stellte sich heraus, aufgrund der Verwendung eines benutzerdefinierten HTML_STYLESHEET: unsere CSS-Datei für div.fragment von Doxygen verwendet seine eigene Stile definiert Code-Schnipsel zu wickeln, die nicht white-space: pre enthalten waren. Das Hinzufügen hat das Problem behoben.

0

Ich hatte dieses Problem, wenn ich den gleichen Code mit dem gleichen Doxygen 1.8.11 auf einem anderen (bedeutend älteren) Computer dokumentiere. Alle generierten Ausgaben wurden einschließlich CSS neu erstellt.

Der Einzug war in der HTML-Quelle sichtbar, aber der Systemstandard-Browser weigerte sich, ihn korrekt anzuzeigen, und eine entsprechende CHM-Datei verhielt sich ebenfalls (nicht überraschend, da der CHM-Viewer von Microsoft denselben Browser verwendet).

Nun, es war offensichtlich der Browser, der dafür zu alt ist. Selbst Firefox 14, der ebenfalls ziemlich alt ist, zeigt das generierte HTML mit Einrückung.