diff --git a/.gitignore b/.gitignore index 496097d..ec576bb 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ test/conan/* cov/* !**/.gitkeep +!docs/doxygen.css +!docs/doxygen_footer.html +!docs/doxygen_header.html compile_flags.txt coverage.info diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e661309..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "docs/doxygen-awesome-css"] - path = docs/doxygen-awesome-css - url = git@github.com:jothepro/doxygen-awesome-css diff --git a/Doxyfile.mk b/Doxyfile.mk index edf1ff4..69fe5df 100644 --- a/Doxyfile.mk +++ b/Doxyfile.mk @@ -1221,7 +1221,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = $(OUTDIR)/doxygen_header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1231,7 +1231,7 @@ HTML_HEADER = # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = +HTML_FOOTER = $(OUTDIR)/doxygen_footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1243,7 +1243,7 @@ HTML_FOOTER = # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = +HTML_STYLESHEET = $(OUTDIR)/doxygen.css # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets diff --git a/docs/doxygen.css b/docs/doxygen.css new file mode 100644 index 0000000..10a8395 --- /dev/null +++ b/docs/doxygen.css @@ -0,0 +1,372 @@ +/* From: https://github.com/awalsh128/doxygen-themes/blob/main/themes/primary_dark/doxygen.css */ +:root { + --margin-large: 1rem; + --margin-medium: 0.5rem; + --padding-large: 1rem; + --padding-medium: 0.4rem; + --padding-small: 0.2rem; + --border-radius: 0.4rem; + --header-margin: 0.5rem; +} + +a { + color: var(--bs-info); + text-decoration: none; +} + +body { + background-color: var(--bs-gray-600); +} + +h1 { + background-color: var(--bs-green); + border-radius: var(--border-radius); + font-size: xx-large; + margin-bottom: var(--header-margin); + margin-top: var(--header-margin); + padding: var(--padding-large); +} + +h2 { + background-color: var(--bs-cyan); + border-radius: var(--border-radius); + font-size: x-large; + padding: var(--padding-large); +} + +h3 { + background-color: var(--bs-gray-900); + border-radius: var(--border-radius); + padding: var(--padding-medium); +} + +img { + margin-bottom: var(--margin-large); +} + +p { + padding: 0 var(--padding-medium) 0 var(--padding-medium); +} + +/* Tree View - Hide for now. Doxygen layouts are too unruly. */ +div.ttc { + display: none; +} + +/* Page */ +.header { + background-color: var(--bs-gray-900); + background-image: var(--bs-gradient); + border-style: solid; + border-radius: var(--border-radius); + border-width: 1px; + margin-bottom: var(--margin-large); + margin-top: var(--margin-large); + padding: var(--padding-medium); + text-align: center; +} +.summary { + text-align: center; +} +.summary a { + margin-left: var(--padding-medium); +} +.title { + font-size: x-large; + padding: var(--padding-medium); +} + +.textblock { + background-color: var(--bs-gray-700); + border-style: solid; + border-width: 1px; + border-radius: var(--border-radius); + margin-bottom: var(--margin-medium); + padding: var(--padding-large); +} + +.section { + margin: 0 0 var(--margin-medium) 0; +} +.section dt { + background-color: var(--bs-blue); + border-radius: var(--border-radius) var(--border-radius) 0 0; + padding: var(--padding-medium); +} +.section td { + padding: var(--padding-small); +} +.section dd { + background-color: var(--bs-gray-600); + margin-bottom: 1px; + padding: var(--padding-medium); +} + +.memSeparator { + line-height: 1rem; +} +.separator\: { + line-height: var(--margin-small); +} + +/* Code */ +code { + white-space: pre-wrap; +} +.contents > p > code { + background-color: #000000; + display: inline-block; + padding: 1rem; + width: 100%; +} +.fragment { + background-color: #000000; + border-radius: var(--border-radius); + margin-bottom: var(--margin-medium); + padding: var(--padding-medium); +} +.comment { + color: var(--bs-gray-500); +} +.keyword { + color: var(--bs-pink); +} +.line { + color: var(--bs-cyan); + white-space: pre; +} +span.lineno { + color: var(--bs-teal); + padding-right: 1rem; +} +.preprocessor { + color: var(--bs-blue); +} + +/* Breadcrumbs & Doxygen Header */ +.navpath { + background-color: var(--bs-gray-900); + background-image: var(--bs-gradient); + padding: 0.5rem 0 0.3rem 2rem; + border-radius: 0 0 var(--border-radius) var(--border-radius); +} +.navpath ul { + display: flex; + flex-wrap: wrap; + padding: 0 0; + margin-bottom: 1rem; + list-style: none; +} +.navelem + .navelem { + padding-left: var(--padding-medium); +} +.navelem + .navelem::before { + float: left; + padding-right: var(--padding-medium); + color: #6c757d; + content: var(--bs-breadcrumb-divider, "/"); +} + +/* Class: Types & Public Member Functions */ +.memberdecls { + width: 100%; +} +.memItemLeft { + background-color: var(--bs-gray-800); + padding: var(--padding-medium); + vertical-align: middle; +} +.memItemRight { + background-color: var(--bs-gray-800); + padding: var(--padding-medium); + vertical-align: middle; +} +.mdescLeft { + background-color: var(--bs-gray-700); + padding: var(--padding-medium); + vertical-align: middle; +} +.mdescRight { + background-color: var(--bs-gray-700); + padding: var(--padding-medium); + vertical-align: middle; +} +.inherit_header { + background-color: var(--bs-gray-700); + line-height: 3rem; + padding-left: var(--padding-large); + vertical-align: middle; +} +.memTemplParams { + background-color: var(--bs-gray-700); + padding: var(--padding-medium); + vertical-align: middle; +} +.memTemplItemLeft { + background-color: var(--bs-gray-800); + padding-right: var(--padding-medium); + vertical-align: middle; +} +.memTemplItemRight { + background-color: var(--bs-gray-800); + padding-right: var(--padding-medium); + vertical-align: middle; +} + +/* Class: Member Functions */ +.memtitle { + background-color: var(--bs-orange); + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-style: solid solid none solid; + margin-bottom: 0; +} +.memtitle a { + color: var(--bs-yellow); +} +.memtitle a:hover { + color: var(--bs-red); + font-weight: bolder; +} +.memitem { + background-color: var(--bs-gray-700); + border-radius: 0 0 var(--border-radius) var(--border-radius); + border-style: none solid solid solid; + margin-bottom: 1rem; + padding: var(--padding-medium); +} +/* Class: Member Function - Prototype */ +.memproto { + background-color: var(--bs-gray-800); + border-radius: var(--border-radius); + margin-bottom: var(--margin-medium); + padding: var(--padding-medium); +} +.memproto td { + column-fill: auto; +} +/* Class: Member Function - Signature */ +.paramtype { + color: var(--bs-pink); + vertical-align: middle; +} +.paramname { + color: var(--bs-cyan); + vertical-align: middle; + display: inline-flex; +} +.paramname code { + /* Override code from .fragments. */ + margin: 0; + padding: 0; + line-height: 1.6rem; + vertical-align: baseline; +} +/* Class: Member Function - Components */ +.memdoc dl { + margin-bottom: var(--margin-medium); +} +/* Class: Member Function - Template Parameters */ +.tparams dt { + background-color: var(--bs-green); + border-radius: var(--border-radius) var(--border-radius) 0 0; + padding: var(--padding-medium); +} +.tparams td { + padding: var(--padding-small); +} +.tparams dd { + background-color: var(--bs-gray-600); + margin-bottom: 1px; + padding: var(--padding-small); + padding-left: var(--padding-medium); +} +/* Class: Member Function - Parameters */ +.params dt { + background-color: var(--bs-green); + border-radius: var(--border-radius) var(--border-radius) 0 0; + padding: var(--padding-medium); +} +.params td { + padding: var(--padding-small); +} +.params dd { + background-color: var(--bs-gray-600); + padding: var(--padding-small); + padding-left: var(--padding-medium); +} +table.params tr { + margin-bottom: 1px; +} + +/* Class List */ +.levels { + background-color: var(--bs-green); + padding: var(--padding-large); +} +.levels span { + font-weight: bold; + margin-left: var(--padding-medium); + margin-right: var(--padding-medium); +} +.levels span:hover { + color: var(--bs-cyan); + font-weight: bolder; +} +.directory { + background-color: var(--bs-gray-800); + background-image: var(--bs-gradient); + margin-bottom: var(--margin-large); + margin-top: var(--margin-large); +} +table.directory { + width: 100%; +} +.even { + background-color: var(--bs-gray-700); + background-image: var(--bs-gradient); +} +.entry { + padding: 0.5rem; + vertical-align: middle; +} +.arrow:hover { + color: var(--bs-cyan); + font-weight: bolder; +} +.icona { + background-color: var(--bs-green); + border-radius: 0.5rem; + color: var(--bs-black); + margin: 0.2rem 0.5rem 0.2rem 0.5rem; + padding: 0.2rem 0.5rem 0.2rem 0.5rem; +} + +/* Struct */ +.dynheader { + background-color: var(--bs-blue); + border-radius: var(--border-radius) var(--border-radius) 0 0; + font-weight: bolder; + padding: var(--padding-medium); + text-align: center; +} +.dyncontent { + background-color: var(--bs-gray-700); + background-image: var(--bs-gradient); + border-radius: 0 0 var(--border-radius) var(--border-radius); + margin-bottom: var(--margin-medium); + padding: var(--padding-medium); + text-align: center; +} + +#main-nav { + display: none; +} + +#main-menu-state { + display: none; +} + +.main-menu-btn { + display: none; +} diff --git a/docs/doxygen_footer.html b/docs/doxygen_footer.html new file mode 100644 index 0000000..25c8f82 --- /dev/null +++ b/docs/doxygen_footer.html @@ -0,0 +1,7 @@ + + +