diff --git a/documentation/DoxyLayout.in b/documentation/DoxyLayout.in new file mode 100644 index 0000000000000000000000000000000000000000..0e13429a8caefac904a071b9cea5595dd49f8d12 --- /dev/null +++ b/documentation/DoxyLayout.in @@ -0,0 +1,196 @@ + +<doxygenlayout version="1.0"> + <!-- Generated by doxygen 1.8.14 --> + <!-- Navigation index tabs for HTML output --> + <navindex> + <tab type="mainpage" visible="yes" title=""/> + <tab type="pages" visible="yes" title="" intro=""/> + <tab type="modules" visible="yes" title="" intro=""/> + <tab type="namespaces" visible="yes" title=""> + <tab type="namespacelist" visible="yes" title="" intro=""/> + <tab type="namespacemembers" visible="yes" title="" intro=""/> + </tab> + <tab type="classes" visible="yes" title=""> + <tab type="classlist" visible="yes" title="" intro=""/> + <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> + <tab type="hierarchy" visible="yes" title="" intro=""/> + <tab type="classmembers" visible="yes" title="" intro=""/> + </tab> + <tab type="files" visible="yes" title=""> + <tab type="filelist" visible="yes" title="" intro=""/> + <tab type="globals" visible="yes" title="" intro=""/> + </tab> + <tab type="examples" visible="yes" title="" intro=""/> + <tab type="user" url="@CORSIKA_WEBPAGE_URL@" title="@CORSIKA_WEBPAGE_TITLE@"/> + </navindex> + + <!-- Layout definition for a class page --> + <class> + <briefdescription visible="yes"/> + <includes visible="$SHOW_INCLUDE_FILES"/> + <inheritancegraph visible="$CLASS_GRAPH"/> + <collaborationgraph visible="$COLLABORATION_GRAPH"/> + <memberdecl> + <nestedclasses visible="yes" title=""/> + <publictypes title=""/> + <services title=""/> + <interfaces title=""/> + <publicslots title=""/> + <signals title=""/> + <publicmethods title=""/> + <publicstaticmeth title=""/> + <publicattributes title=""/> + <publicstaticattributes title=""/> + <protectedtypes title=""/> + <protectedslots title=""/> + <protectedmethods title=""/> + <protectedstaticmethods title=""/> + <protectedattributes title=""/> + <protectedstaticattributes title=""/> + <packagetypes title=""/> + <packagemethods title=""/> + <packagestaticmethods title=""/> + <packageattributes title=""/> + <packagestaticattributes title=""/> + <properties title=""/> + <events title=""/> + <privatetypes title=""/> + <privateslots title=""/> + <privatemethods title=""/> + <privatestaticmethods title=""/> + <privateattributes title=""/> + <privatestaticattributes title=""/> + <friends title=""/> + <related title="" subtitle=""/> + <membergroups visible="yes"/> + </memberdecl> + <detaileddescription title=""/> + <memberdef> + <inlineclasses title=""/> + <typedefs title=""/> + <enums title=""/> + <services title=""/> + <interfaces title=""/> + <constructors title=""/> + <functions title=""/> + <related title=""/> + <variables title=""/> + <properties title=""/> + <events title=""/> + </memberdef> + <allmemberslink visible="yes"/> + <usedfiles visible="$SHOW_USED_FILES"/> + <authorsection visible="yes"/> + </class> + + <!-- Layout definition for a namespace page --> + <namespace> + <briefdescription visible="yes"/> + <memberdecl> + <nestednamespaces visible="yes" title=""/> + <constantgroups visible="yes" title=""/> + <classes visible="yes" title=""/> + <typedefs title=""/> + <enums title=""/> + <functions title=""/> + <variables title=""/> + <membergroups visible="yes"/> + </memberdecl> + <detaileddescription title=""/> + <memberdef> + <inlineclasses title=""/> + <typedefs title=""/> + <enums title=""/> + <functions title=""/> + <variables title=""/> + </memberdef> + <authorsection visible="yes"/> + </namespace> + + <!-- Layout definition for a file page --> + <file> + <briefdescription visible="yes"/> + <includes visible="$SHOW_INCLUDE_FILES"/> + <includegraph visible="$INCLUDE_GRAPH"/> + <includedbygraph visible="$INCLUDED_BY_GRAPH"/> + <sourcelink visible="yes"/> + <memberdecl> + <classes visible="yes" title=""/> + <namespaces visible="yes" title=""/> + <constantgroups visible="yes" title=""/> + <defines title=""/> + <typedefs title=""/> + <enums title=""/> + <functions title=""/> + <variables title=""/> + <membergroups visible="yes"/> + </memberdecl> + <detaileddescription title=""/> + <memberdef> + <inlineclasses title=""/> + <defines title=""/> + <typedefs title=""/> + <enums title=""/> + <functions title=""/> + <variables title=""/> + </memberdef> + <authorsection/> + </file> + + <!-- Layout definition for a group page --> + <group> + <briefdescription visible="yes"/> + <groupgraph visible="$GROUP_GRAPHS"/> + <memberdecl> + <nestedgroups visible="yes" title=""/> + <dirs visible="yes" title=""/> + <files visible="yes" title=""/> + <namespaces visible="yes" title=""/> + <classes visible="yes" title=""/> + <defines title=""/> + <typedefs title=""/> + <enums title=""/> + <enumvalues title=""/> + <functions title=""/> + <variables title=""/> + <signals title=""/> + <publicslots title=""/> + <protectedslots title=""/> + <privateslots title=""/> + <events title=""/> + <properties title=""/> + <friends title=""/> + <membergroups visible="yes"/> + </memberdecl> + <detaileddescription title=""/> + <memberdef> + <pagedocs/> + <inlineclasses title=""/> + <defines title=""/> + <typedefs title=""/> + <enums title=""/> + <enumvalues title=""/> + <functions title=""/> + <variables title=""/> + <signals title=""/> + <publicslots title=""/> + <protectedslots title=""/> + <privateslots title=""/> + <events title=""/> + <properties title=""/> + <friends title=""/> + </memberdef> + <authorsection visible="yes"/> + </group> + + <!-- Layout definition for a directory page --> + <directory> + <briefdescription visible="yes"/> + <directorygraph visible="yes"/> + <memberdecl> + <dirs visible="yes"/> + <files visible="yes"/> + </memberdecl> + <detaileddescription title=""/> + </directory> +</doxygenlayout> diff --git a/documentation/Doxyfile.in b/documentation/Doxyfile.in index ded50d6a5ee5068ce65aa1a15338654f98f3ec72..f3768a1d22014397db7d836339de10dd020695ec 100644 --- a/documentation/Doxyfile.in +++ b/documentation/Doxyfile.in @@ -11,6 +11,7 @@ INPUT = @PROJECT_SOURCE_DIR@/corsika @PROJECT_SOURCE_DIR@/src @ EXCLUDE_PATTERNS = *.inl FULL_PATH_NAMES = YES STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ +LAYOUT_FILE = DoxyLayout.xml FILE_PATTERNS = *.cpp *.hpp *.dox *.md *.inc EXTENSION_MAPPING = inc=C++ diff --git a/documentation/api.rst b/documentation/api.rst index f8436257b4f5bfb33b642b0a7ac4bd452774634c..14630f3f015644a40ed9c562044572d0cad2d0f0 100644 --- a/documentation/api.rst +++ b/documentation/api.rst @@ -1,11 +1,20 @@ -Full API -======== +Reference Documentation +======================= -Consider using Doxygen directly for a full API reference.... +Find the latest full reference manual at `Doxygen`_, or the components on: + +* `Classes`_ +* `Functions`_ +* `Files`_ + +.. _Doxygen: doxygen/html/index.html +.. _Classes: doxygen/html/classes.html +.. _Functions: doxygen/html/functions.html +.. _Files: doxygen/html/files.html .. - .. doxygenindex:: - :project: CORSIKA8 - :path: c8 - :outline: - :no-link: + .. doxygenindex:: + :project: CORSIKA8 + :path: c8 + :outline: + :no-link: \ No newline at end of file diff --git a/documentation/conf.py b/documentation/conf.py index ab28020201a0af1b306226ac3afad29d2a606b85..b0a15a6f281ce7008fea14840657803c94f7b6ae 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -1,40 +1,51 @@ import sys import subprocess, os -def configureDoxyfile(input_dir, output_dir): - with open('Doxyfile.in', 'r') as file : +def configureDoxyfile(template_file, output_file, input_dir, output_dir): + with open(template_file, 'r') as file : filedata = file.read() filedata = filedata.replace('@PROJECT_SOURCE_DIR@', input_dir) filedata = filedata.replace('@CMAKE_CURRENT_BINARY_DIR@', output_dir) filedata = filedata.replace('@CMAKE_BINARY_DIR@', output_dir) - with open('Doxyfile', 'w') as file: + with open(output_file, 'w') as file: + file.write(filedata) + +def configureDoxyLayout(template_file, output_file, page_url, page_tile): + with open(template_file, 'r') as file : + filedata = file.read() + + filedata = filedata.replace('@CORSIKA_WEBPAGE_URL@', page_url) + filedata = filedata.replace('@CORSIKA_WEBPAGE_TITLE@', page_tile) + + with open(output_file, 'w') as file: file.write(filedata) -read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True' + + +read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True' +build_version = os.environ.get('READTHEDOCS_VERSION', None) breathe_projects = {} -if read_the_docs_build: - - input_dir = '../' - output_dir = 'build' - configureDoxyfile(input_dir, output_dir) +doc_url = 'https://corsika-8.readthedocs.io/en/'+build_version - subprocess.call('mkdir -p build/corsika/framework/core; cd build/corsika/framework/core && ../../../../../src/framework/core/pdxml_reader.py ../../../../../src/framework/core/ParticleData.xml ../../../../../src/framework/core/NuclearData.xml ../../../../../src/framework/core/ParticleClassNames.xml', shell=True) +if read_the_docs_build: + configureDoxyfile("Doxyfile.in", "Doxyfile", "../", "_build/workdir/doxygen") + configureDoxyLayout("DoxyLayout.in", "DoxyLayout.xml", doc_url , "CORSIKA 8 Webpage") + subprocess.call('mkdir -p _build/workdir/doxygen; doxygen Doxyfile', shell=True) + html_extra_path = ['_build/workdir/'] + breathe_projects['CORSIKA8'] = '_build/workdir/doxygen/xml' - subprocess.call('mkdir -p build/corsika/media; cd build/corsika/media && ../../../../src/media/readProperties.py ../../../../src/media/properties8.dat', shell=True) - subprocess.call('doxygen', shell=True) - breathe_projects['CORSIKA8'] = output_dir + '/xml' # -- Project information ----------------------------------------------------- -project = u'CORSIKA8' +project = u'CORSIKA8' copyright = u'2021, CORSIKA 8 Collaboration' -author = u'CORSIKA 8 Collaboration' +author = u'CORSIKA 8 Collaboration' # The short X.Y version version = u'0.0.0' @@ -54,10 +65,14 @@ extensions = [ breathe_default_project = "CORSIKA8" - # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # @@ -74,11 +89,6 @@ master_doc = 'index' # Usually you set "language" from the command line for these cases. language = None -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path . -exclude_patterns = [] - # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' @@ -86,10 +96,26 @@ pygments_style = 'sphinx' # -- Options for HTML output ------------------------------------------------- html_theme = 'sphinx_rtd_theme' -# html_theme_options = {} -# html_static_path = [] -# html_sidebars = {} +html_theme_options = { + 'analytics_id': '', # Provided by Google in your dashboard + 'analytics_anonymize_ip': False, + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'bottom', + 'style_external_links': False, + # Toc options + 'collapse_navigation': True, + 'sticky_navigation': True, + 'navigation_depth': 4, + 'includehidden': True, + 'titles_only': False +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] htmlhelp_basename = 'C8doc' diff --git a/documentation/rtfd-requirements.txt b/documentation/rtfd-requirements.txt index 3087817421ed52d662b781f58b78ca9e2ae4a38a..e9cd6124c6c7ee0a6f9fe033beefb7c37d6b0b6c 100644 --- a/documentation/rtfd-requirements.txt +++ b/documentation/rtfd-requirements.txt @@ -1,4 +1,4 @@ -sphinx_rtd_theme == 0.5.1 -sphinx == 3.5.3 -breathe == 4.27.0 -recommonmark == 0.7.1 +sphinx_rtd_theme >= 0.5.1 +sphinx >= 3.5.3 +recommonmark >= 0.7.1 +breathe >= 4.27.0 \ No newline at end of file