From ce7fc5064063569b6e8eb9f2f08c2e94a5e81861 Mon Sep 17 00:00:00 2001 From: Martin Schwan Date: Tue, 9 Jun 2026 10:36:17 +0200 Subject: [PATCH 1/2] doc: Add Sphinx theme using PHYTEC styling Import the Sphinx theme from github.com/phytec/doc-bsp-yocto, which uses PHYTEC branded styling. Signed-off-by: Martin Schwan --- doc/conf.py | 4 + doc/sphinx/static/css/phytec-theme.css | 388 +++++++++++++++++++++++++ 2 files changed, 392 insertions(+) create mode 100644 doc/sphinx/static/css/phytec-theme.css diff --git a/doc/conf.py b/doc/conf.py index 60e3181..6207cb0 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -12,3 +12,7 @@ html_theme_options = { 'style_external_links': True } +html_static_path = ['sphinx/static'] +html_css_files = [ 'css/phytec-theme.css' ] + +pygments_style = 'bw' diff --git a/doc/sphinx/static/css/phytec-theme.css b/doc/sphinx/static/css/phytec-theme.css new file mode 100644 index 0000000..de2ff0c --- /dev/null +++ b/doc/sphinx/static/css/phytec-theme.css @@ -0,0 +1,388 @@ +/* Definitions for Colorscheme from the Phytec Website */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --teal: #20c997; + --cyan: #17a2b8; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #006e73; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --black: #000; + --white: #fff; + --gray1: #f5f5f5; + --gray2: #d0d2d3; + --gray3: #95989a; + --gray4: #707070; + --teal1: #03c9d6; + --teal2: #02a6b1; + --teal3: #16969e; + --teal4: #006e73; + --orange: #ff9708; + --green: #c5d900; + --yellow: #f1bf00; +} + +body { + font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; + color: var(--dark); +} + +.rst-content code, +.rst-content kbd, +.rst-content pre, +.rst-content samp +.rst-content tt, +code { + font-family: "Roboto Mono", SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; +} + +.rst-content .code-block-caption { + font-style: normal; + font-weight: bold; + font-size: 87%; + padding: 8px 12px; + text-align: inherit; + background-color: var(--gray2); + border-bottom: 0px; + margin-bottom: -1px; +} + +.rst-content .linenodiv pre, +.rst-content div[class^="highlight"] pre, +.rst-content pre.literal-block { + font-size: 81.25%; +} + +.rst-content div[class^=highlight], +.rst-content pre.literal-block { + border: none; + background-color: var(--gray1); +} + +.rst-content code.literal, +.rst-content tt.literal { + color: var(--pink); +} + +.rst-content code, +.rst-content tt, +code { + background-color: var(--gray1); + font-size: 81.15%; + border: none; +} + +.rst-content .toctree-wrapper > p.caption, +h1, h2, h3, h4, h5, h6, +legend { + font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.wy-nav-content { + background: var(--white); +} + +.wy-nav-content a { + color: var(--teal3); +} + +.wy-nav-content a:hover { + color: var(--teal2); +} + +.wy-menu-vertical header, +.wy-menu-vertical p.caption { + color: var(--teal3); + + /* Improves the appearance of uppercase text */ + letter-spacing: 0.75px; +} + +.wy-side-nav-search, +.wy-nav-top { + background-image: linear-gradient(to right, var(--teal2) 0%, var(--success) 400%); +} + +.wy-side-nav-search input[type="text"] { + border-color: transparent; + background-clip: padding-box; + font-family: inherit; +} + +.wy-nav-side { + color: var(--white); + background-color: color-mix(in srgb, var(--dark), var(--black)); +} + +.wy-menu-vertical a { + color: var(--gray1); +} + +.wy-menu-vertical a:hover { + background-color: var(--gray-dark); +} + +.wy-menu-vertical li.toctree-l1.current > a { + border: none; +} + +.wy-menu-vertical li.toctree-l2.current > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + background-color: var(--gray2); +} + +.wy-menu-vertical li.toctree-l3.current > a, +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + background-color: color-mix(in srgb, var(--gray2), var(--gray3)); +} + +.wy-menu-vertical li.current { + background-color: var(--gray1); +} + +.wy-menu-vertical li.current > a, +.wy-menu-vertical li.on a { + color: var(--dark); + background-color: var(--white); +} + +.wy-menu-vertical li.current a { + border: none; +} + +.wy-menu-vertical li.current a:hover { + background-color: var(--gray2); +} + +.wy-table-responsive table td, +.wy-table-responsive table th { + white-space: inherit; +} + +.btn, +.rst-versions { + font-family: inherit; +} + +.rst-versions .rst-current-version { + color: var(--teal3); + background-color: color-mix(in srgb, var(--dark) 75%, var(--black));; + font-weight: bold; +} + +.rst-versions .rst-other-versions { + background-color: color-mix(in srgb, var(--dark), var(--black)); +} + +@media screen and (min-width: 1100px) { + .wy-nav-content-wrap { + background: color-mix(in srgb, var(--white) 95%, var(--dark)); + } +} + +.rst-content .danger, +.rst-content .error, +.rst-content .wy-alert-danger.admonition, +.rst-content .wy-alert-danger.admonition-todo, +.rst-content .wy-alert-danger.attention, +.rst-content .wy-alert-danger.caution, +.rst-content .wy-alert-danger.hint, +.rst-content .wy-alert-danger.important, +.rst-content .wy-alert-danger.note, +.rst-content .wy-alert-danger.seealso, +.rst-content .wy-alert-danger.tip, +.rst-content .wy-alert-danger.warning, +.wy-alert.wy-alert-danger { + background-color: color-mix(in srgb, var(--red) 15%, transparent); +} + +.rst-content .danger .admonition-title, +.rst-content .danger .wy-alert-title, +.rst-content .error .admonition-title, +.rst-content .error .wy-alert-title, +.rst-content .wy-alert-danger.admonition-todo .admonition-title, +.rst-content .wy-alert-danger.admonition-todo .wy-alert-title, +.rst-content .wy-alert-danger.admonition .admonition-title, +.rst-content .wy-alert-danger.admonition .wy-alert-title, +.rst-content .wy-alert-danger.attention .admonition-title, +.rst-content .wy-alert-danger.attention .wy-alert-title, +.rst-content .wy-alert-danger.caution .admonition-title, +.rst-content .wy-alert-danger.caution .wy-alert-title, +.rst-content .wy-alert-danger.hint .admonition-title, +.rst-content .wy-alert-danger.hint .wy-alert-title, +.rst-content .wy-alert-danger.important .admonition-title, +.rst-content .wy-alert-danger.important .wy-alert-title, +.rst-content .wy-alert-danger.note .admonition-title, +.rst-content .wy-alert-danger.note .wy-alert-title, +.rst-content .wy-alert-danger.seealso .admonition-title, +.rst-content .wy-alert-danger.seealso .wy-alert-title, +.rst-content .wy-alert-danger.tip .admonition-title, +.rst-content .wy-alert-danger.tip .wy-alert-title, +.rst-content .wy-alert-danger.warning .admonition-title, +.rst-content .wy-alert-danger.warning .wy-alert-title, +.rst-content .wy-alert.wy-alert-danger .admonition-title, +.wy-alert.wy-alert-danger .rst-content .admonition-title, +.wy-alert.wy-alert-danger .wy-alert-title { + background-image: linear-gradient(to right, var(--red) 0%, var(--orange) 300%); +} + +.rst-content .admonition-todo, +.rst-content .attention, +.rst-content .caution, +.rst-content .warning, +.rst-content .wy-alert-warning.admonition, +.rst-content .wy-alert-warning.danger, +.rst-content .wy-alert-warning.error, +.rst-content .wy-alert-warning.hint, +.rst-content .wy-alert-warning.important, +.rst-content .wy-alert-warning.note, +.rst-content .wy-alert-warning.seealso, +.rst-content .wy-alert-warning.tip, +.wy-alert.wy-alert-warning { + background-color: color-mix(in srgb, var(--orange) 15%, transparent); +} + +.rst-content .admonition-todo .admonition-title, +.rst-content .admonition-todo .wy-alert-title, +.rst-content .attention .admonition-title, +.rst-content .attention .wy-alert-title, +.rst-content .caution .admonition-title, +.rst-content .caution .wy-alert-title, +.rst-content .warning .admonition-title, +.rst-content .warning .wy-alert-title, +.rst-content .wy-alert-warning.admonition .admonition-title, +.rst-content .wy-alert-warning.admonition .wy-alert-title, +.rst-content .wy-alert-warning.danger .admonition-title, +.rst-content .wy-alert-warning.danger .wy-alert-title, +.rst-content .wy-alert-warning.error .admonition-title, +.rst-content .wy-alert-warning.error .wy-alert-title, +.rst-content .wy-alert-warning.hint .admonition-title, +.rst-content .wy-alert-warning.hint .wy-alert-title, +.rst-content .wy-alert-warning.important .admonition-title, +.rst-content .wy-alert-warning.important .wy-alert-title, +.rst-content .wy-alert-warning.note .admonition-title, +.rst-content .wy-alert-warning.note .wy-alert-title, +.rst-content .wy-alert-warning.seealso .admonition-title, +.rst-content .wy-alert-warning.seealso .wy-alert-title, +.rst-content .wy-alert-warning.tip .admonition-title, +.rst-content .wy-alert-warning.tip .wy-alert-title, +.rst-content .wy-alert.wy-alert-warning .admonition-title, +.wy-alert.wy-alert-warning .rst-content .admonition-title, +.wy-alert.wy-alert-warning .wy-alert-title { + background-image: linear-gradient(to right, var(--orange) 0%, var(--yellow) 150%); +} + +.rst-content .note, +.rst-content .seealso, +.rst-content .wy-alert-info.admonition, +.rst-content .wy-alert-info.admonition-todo, +.rst-content .wy-alert-info.attention, +.rst-content .wy-alert-info.caution, +.rst-content .wy-alert-info.danger, +.rst-content .wy-alert-info.error, +.rst-content .wy-alert-info.hint, +.rst-content .wy-alert-info.important, +.rst-content .wy-alert-info.tip, +.rst-content .wy-alert-info.warning, +.wy-alert.wy-alert-info { + background-color: color-mix(in srgb, var(--teal2) 15%, transparent); +} + +.rst-content .note .admonition-title, +.rst-content .note .wy-alert-title, +.rst-content .seealso .admonition-title, +.rst-content .seealso .wy-alert-title, +.rst-content .wy-alert-info.admonition-todo .admonition-title, +.rst-content .wy-alert-info.admonition-todo .wy-alert-title, +.rst-content .wy-alert-info.admonition .admonition-title, +.rst-content .wy-alert-info.admonition .wy-alert-title, +.rst-content .wy-alert-info.attention .admonition-title, +.rst-content .wy-alert-info.attention .wy-alert-title, +.rst-content .wy-alert-info.caution .admonition-title, +.rst-content .wy-alert-info.caution .wy-alert-title, +.rst-content .wy-alert-info.danger .admonition-title, +.rst-content .wy-alert-info.danger .wy-alert-title, +.rst-content .wy-alert-info.error .admonition-title, +.rst-content .wy-alert-info.error .wy-alert-title, +.rst-content .wy-alert-info.hint .admonition-title, +.rst-content .wy-alert-info.hint .wy-alert-title, +.rst-content .wy-alert-info.important .admonition-title, +.rst-content .wy-alert-info.important .wy-alert-title, +.rst-content .wy-alert-info.tip .admonition-title, +.rst-content .wy-alert-info.tip .wy-alert-title, +.rst-content .wy-alert-info.warning .admonition-title, +.rst-content .wy-alert-info.warning .wy-alert-title, +.rst-content .wy-alert.wy-alert-info .admonition-title, +.wy-alert.wy-alert-info .rst-content .admonition-title, +.wy-alert.wy-alert-info .wy-alert-title { + background-image: linear-gradient(to right, var(--teal2) 0%, var(--success) 300%); +} + +.rst-content .hint, +.rst-content .important, +.rst-content .tip, +.rst-content .wy-alert-success.admonition, +.rst-content .wy-alert-success.admonition-todo, +.rst-content .wy-alert-success.attention, +.rst-content .wy-alert-success.caution, +.rst-content .wy-alert-success.danger, +.rst-content .wy-alert-success.error, +.rst-content .wy-alert-success.note, +.rst-content .wy-alert-success.seealso, +.rst-content .wy-alert-success.warning, +.wy-alert.wy-alert-success { + background-color: color-mix(in srgb, var(--teal2) 15%, transparent); +} + +.rst-content .hint .admonition-title, +.rst-content .hint .wy-alert-title, +.rst-content .important .admonition-title, +.rst-content .important .wy-alert-title, +.rst-content .tip .admonition-title, +.rst-content .tip .wy-alert-title, +.rst-content .wy-alert-success.admonition-todo .admonition-title, +.rst-content .wy-alert-success.admonition-todo .wy-alert-title, +.rst-content .wy-alert-success.admonition .admonition-title, +.rst-content .wy-alert-success.admonition .wy-alert-title, +.rst-content .wy-alert-success.attention .admonition-title, +.rst-content .wy-alert-success.attention .wy-alert-title, +.rst-content .wy-alert-success.caution .admonition-title, +.rst-content .wy-alert-success.caution .wy-alert-title, +.rst-content .wy-alert-success.danger .admonition-title, +.rst-content .wy-alert-success.danger .wy-alert-title, +.rst-content .wy-alert-success.error .admonition-title, +.rst-content .wy-alert-success.error .wy-alert-title, +.rst-content .wy-alert-success.note .admonition-title, +.rst-content .wy-alert-success.note .wy-alert-title, +.rst-content .wy-alert-success.seealso .admonition-title, +.rst-content .wy-alert-success.seealso .wy-alert-title, +.rst-content .wy-alert-success.warning .admonition-title, +.rst-content .wy-alert-success.warning .wy-alert-title, +.rst-content .wy-alert.wy-alert-success .admonition-title, +.wy-alert.wy-alert-success .rst-content .admonition-title, +.wy-alert.wy-alert-success .wy-alert-title { + background-image: linear-gradient(to right, var(--teal2) 0%, var(--success) 300%); +} + +.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd, +.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd { + font-size: 81.25%; + font-weight: bold; + background-color: var(--white); + border: 1px solid var(--gray2); + border-radius: 3px; + box-shadow: 0 2px var(--gray1); + padding: 1px 6px; + margin: auto 0; +} From 0eed1c4c57b302c68ce1108b8a3d455eb7d439b6 Mon Sep 17 00:00:00 2001 From: Martin Schwan Date: Tue, 9 Jun 2026 11:09:36 +0200 Subject: [PATCH 2/2] doc: sphinx: Add favicon Add a favicon for the partup project documentation site. Signed-off-by: Martin Schwan --- doc/conf.py | 1 + doc/sphinx/static/favicon.ico | Bin 0 -> 4286 bytes doc/sphinx/static/favicon.svg | 184 ++++++++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 doc/sphinx/static/favicon.ico create mode 100644 doc/sphinx/static/favicon.svg diff --git a/doc/conf.py b/doc/conf.py index 6207cb0..b07f889 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -14,5 +14,6 @@ } html_static_path = ['sphinx/static'] html_css_files = [ 'css/phytec-theme.css' ] +html_favicon = 'sphinx/static/favicon.ico' pygments_style = 'bw' diff --git a/doc/sphinx/static/favicon.ico b/doc/sphinx/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..805c8857560baee6b68db24308428aeda19e2278 GIT binary patch literal 4286 zcmc(j>vI}a6u{R!3L$Cjr;g)PZ5==OPpEbL;EaEPj#Ec%NS)5~;Y|JDH^&)A{oYr! zX__Y71p@&xPIZvh1QwP+5*t#}B)r0#P?iMBvkQy&f|uDPT_BHAnC0x=y?cM>oW1wl zb0CP9;P=D{0{s%oqXcn`Ac(i&0h@?Z@IdX=54>kSQafr51abE+A<==ZAGL~Z{}kvh zXh3&P4Z1UG(3747J=?#5o}>!&B$S{xPJ-ST0EZ%gJQPv@Nnipq^<#;bEe8n(X=s z@=K8Yw1a%=I@xc!rZ_yL2VLP-{7F@R!bX3Q3I_H0OeRn&mGT@q;5i!zPG>CiU~EEl z#I+0iYkV-EhJ3CW-$s3!$>l=jN{df67h%oxnQ)u_$NU*FzD6lYyVq|NTVQwGUiXYL zx5@ri@4qGA;~L&I8!NNs9!<2Ee@*#w)W-!p7MA65k@I@Saz^6^3AN^x$fWw!kn!G! zQIB^#T`oW6a6c?f^qGw&^Iw#&Rrckw*??fYd_Gz>8s1Hct-n7F?*|Ko$1G+enSSCe z+*0<7tv^w|!+Kia_fn})F&f_4ZnggZFq{fB`r&Wu=RT43FUk)GG$p=>PaD>VE+oUNnpU51ij6QGfK_P1I?qgLGA? zeQhn7TFEm>XKq4sd>QdgwA@|h*s5PwTq9u^|M$&bTKayQuPf4F*78{h#XnN>`Xhz< z_`hiV&C+r&X5;?Lt5^Kh_zwnl#6R2zOELTHj*AS(3Bxi6Z8Xte2J!wkYm@sL+2|R| z!Z+*t<)i)A?zoWHsY9t^nL8JRKKCPiupLNpl`>~txa>Lz|Kt7N?l>QRh7KIZm3FWx z$3^!+&Oe-g&~xWDA&+mW;2haa*)Mo_`A6IHPcRU?VA&@e!^{^Qj!Vo0kk<1b$~G8n zv>82%*cSUGUqk-0XFgw_%}pw=(ZA`(`4>gY!$KV(+i`y58Tr?N@R2T?aVmEQNbC8Z znU;rYI#k(y9DkmN{n!`w`LE;r{L^e33Yh24`uDQ`;xVyoT>m=V$yhXYuO4GjKZaS% z^Z9uFKMy|2zjgYPQLG=5ESo8Jl0T(;aeS@zjaVdN=$QZceil1-EL;}Mzk_`LVocl~ ze{2=3zy0R_c-(emDz#G7PQO);KYOTuW^{_K2*3Vm#bwznmrO1e7ytQoi&VYr-(&q* xjel3cz!a>1e&+K#RR7lEuk!Fvwf=@Ru$Jsx{SEhEJ + + +