From 49668a9b26552808d48a726195707260d22e6fa0 Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Sat, 4 Nov 2023 11:26:27 +0200 Subject: [PATCH] doc: fixup some Doxygen autogen issues Don't show page sections in left sidebar, it's confusing. Rename Modules -> API Reference in sidebar. Indicate visually the sidebar entries are collapsible. Fix spa_pod_json grouping. Move tools page to top level. Fix page ordering. --- doc/Doxyfile.in | 3 + doc/DoxygenLayout.xml | 238 ++++++++++++++++++++++++++++++++++++++++++ doc/api-tree.dox | 1 + doc/custom.css | 5 + doc/index.dox | 9 ++ doc/meson.build | 5 +- doc/pipewire.dox | 2 - 7 files changed, 260 insertions(+), 3 deletions(-) create mode 100644 doc/DoxygenLayout.xml diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 15f9ae1ba..b6004c789 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -36,6 +36,9 @@ GENERATE_TREEVIEW = YES SEARCHENGINE = YES GENERATE_LATEX = NO +TOC_INCLUDE_HEADINGS = 0 +LAYOUT_FILE = @layout@ + MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES PREDEFINED = PA_C_DECL_BEGIN= \ diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml new file mode 100644 index 000000000..65bfc9573 --- /dev/null +++ b/doc/DoxygenLayout.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/api-tree.dox b/doc/api-tree.dox index 0c5c8fe4b..88259af72 100644 --- a/doc/api-tree.dox +++ b/doc/api-tree.dox @@ -89,6 +89,7 @@ Utility data structures, macros, etc. \addtogroup spa_hooks \addtogroup spa_interfaces \addtogroup spa_json +\addtogroup spa_json_pod \addtogroup spa_keys \addtogroup spa_names \addtogroup spa_result diff --git a/doc/custom.css b/doc/custom.css index 43690cb81..a9cff0a20 100644 --- a/doc/custom.css +++ b/doc/custom.css @@ -17,3 +17,8 @@ --fragment-link: #729fcf; } } + +#nav-tree .arrow { + opacity: 1; + padding-right: 0.25em; +} diff --git a/doc/index.dox b/doc/index.dox index 36f3ebafb..451149219 100644 --- a/doc/index.dox +++ b/doc/index.dox @@ -43,4 +43,13 @@ More information on how to configure and use PipeWire. - [Intoduction to PipeWire](https://bootlin.com/blog/an-introduction-to-pipewire/) - [A custom PipeWire node](https://bootlin.com/blog/a-custom-pipewire-node/) + +\page page_overview +\page page_pipewire +\page page_tools +\page page_pipewire_modules +\page page_api +\page page_spa +\page page_tutorial + */ diff --git a/doc/meson.build b/doc/meson.build index f23248fe0..1fdca64f5 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -141,8 +141,11 @@ pw_tools_dox = configure_file(input: 'pipewire-tools.dox.in', configuration: pw_tools_dox_conf) input_dirs += [ 'doc/pipewire-tools.dox' ] +doxygen_layout = meson.project_source_root() / 'doc' / 'DoxygenLayout.xml' + doxyfile_conf.set('inputs', ' '.join(inputs + input_dirs)) doxyfile_conf.set('cssfiles', ' '.join(cssfiles)) +doxyfile_conf.set('layout', doxygen_layout) doxyfile_conf.set('path_prefixes', ' '.join(path_prefixes)) doxyfile_conf.set('c_input_filter', meson.project_source_root() / 'doc' / 'input-filter.sh') doxyfile_conf.set('h_input_filter', meson.project_source_root() / 'doc' / 'input-filter-h.sh') @@ -157,7 +160,7 @@ if docdir == '' endif html_target = custom_target('pipewire-docs', - input: [ doxyfile, examples_dox, pw_tools_dox ] + inputs + cssfiles + man_doxygen, + input: [ doxyfile, doxygen_layout, examples_dox, pw_tools_dox ] + inputs + cssfiles + man_doxygen, output: [ 'html' ], command: [ doxygen, doxyfile ], install: true, diff --git a/doc/pipewire.dox b/doc/pipewire.dox index 551adc0f4..0df12ef8a 100644 --- a/doc/pipewire.dox +++ b/doc/pipewire.dox @@ -17,10 +17,8 @@ # Components - \subpage page_daemon -- \subpage page_tools - \subpage page_session_manager - # Backends - \subpage page_pulseaudio