{"id":17321163,"url":"https://github.com/haozeke/doxyyoda","last_synced_at":"2026-02-15T20:04:42.733Z","repository":{"id":96926263,"uuid":"343608285","full_name":"HaoZeke/doxyYoda","owner":"HaoZeke","description":"Modern CSS + SCSS Doxygen theme","archived":false,"fork":false,"pushed_at":"2026-02-15T07:07:31.000Z","size":327,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-15T12:55:51.730Z","etag":null,"topics":["css","documentation","doxygen","scss","theme","website"],"latest_commit_sha":null,"homepage":"https://haozeke.github.io/doxyYoda/","language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HaoZeke.png","metadata":{"files":{"readme":"readme.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-02T01:27:23.000Z","updated_at":"2026-02-15T07:07:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"e97f37d3-a8c4-4568-90a9-0001e3b7502a","html_url":"https://github.com/HaoZeke/doxyYoda","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/HaoZeke/doxyYoda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HaoZeke%2FdoxyYoda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HaoZeke%2FdoxyYoda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HaoZeke%2FdoxyYoda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HaoZeke%2FdoxyYoda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HaoZeke","download_url":"https://codeload.github.com/HaoZeke/doxyYoda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HaoZeke%2FdoxyYoda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29487797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","documentation","doxygen","scss","theme","website"],"created_at":"2024-10-15T13:35:33.776Z","updated_at":"2026-02-15T20:04:42.728Z","avatar_url":"https://github.com/HaoZeke.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"* doxyYoda\n#+DOWNLOADED: screenshot @ 2021-03-02 01:34:09\n[[file:images/doxyYoda/2021-03-02_01-34-09_screenshot.png]]\n\nA theme for [[http://doxygen.nl/][Doxygen]]. The *only* theme to use [[https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout][CSS Grid]] and [[https://sass-lang.com/guide][Sass]]. Also uses MathJax 3. Part of my ~yoda~ series of tools.\n\n** Why?\nHave you seen ~doxygen~ HTML? To go from:\n#+DOWNLOADED: screenshot @ 2021-03-02 00:51:00\n[[file:images/why/2021-03-02_00-51-00_screenshot.png]]\nTo:\n#+DOWNLOADED: screenshot @ 2021-03-02 00:51:40\n[[file:images/why/2021-03-02_00-51-40_screenshot.png]]\n*** But... [x] does this\n- Doxyrest :: Does not allow embedding source inline (see above), ~doxyrest~ just doesn't capture the same level of information\n- Exhale / Breathe :: Can't even display source code, inline or otherwise\nHonestly, nothing captures C++ like Doxygen. Nothing. So inspite of the weird JS cruft its best not to fight it (*cough* [[https://foonathan.net/2019/11/standardese-post-mortem/][Standardese]]). This is it.\n- m.css :: is actually very good; used it for [[https://dseams.info][d-SEAMS]]; but this is better for me, and will migrate the rest of my projects later\n\n*** Features\n- *CSS Grid layout* with Sass\n- *Dark mode* — toggle button + =prefers-color-scheme= support, persisted via =localStorage=\n- *Foldable inline code* — =\u003cdetails\u003e= wrapping with smooth transitions\n- *Copy to clipboard* — one-click code copying on every code block\n- *MathJax 3* — beautiful math rendering\n- *Frosted glass navbar* — sticky, translucent, always visible\n- *Modern admonitions* — color-coded notes, warnings, todos, bugs, and more\n- *Solarized palette* — warm, readable colors in both light and dark mode\n- *Pixi-managed build* — reproducible builds with =pixi run=\n\n*** Typography\n- Body: [[https://fonts.google.com/specimen/Crimson+Text][Crimson Text]] — a beautiful serif with excellent readability\n- Headings: [[https://fonts.google.com/specimen/Maiden+Orange][Maiden Orange]] — distinctive display face\n- Code: [[https://sourcefoundry.org/hack/][Hack]] — an open-source typeface designed for source code\n- Serif fallback: [[http://vollkorn-typeface.com/][Vollkorn]]\n\n** Quick Start\n\n*** With pixi (recommended)\n#+begin_src bash\ngit clone https://github.com/HaoZeke/doxyYoda\ncd doxyYoda\npixi run demo      # Build the demo site\npixi run serve     # Serve on localhost:8000\n#+end_src\n\n*** Manual\n#+begin_src bash\n# Compile SCSS\nsass src/styles/scss/main.scss src/styles/doxyYoda.css\n#+end_src\n\n** Usage\nClone the project into the directory with your ~Doxyfile~.\nInside your ~Doxyfile~:\n#+begin_src conf\nHTML_HEADER            = \"doxyYoda/src/html/header.html\"\nHTML_FOOTER            = \"doxyYoda/src/html/footer.html\"\nHTML_EXTRA_STYLESHEET  = \"doxyYoda/src/styles/doxyYoda.css\"\nLAYOUT_FILE            = \"doxyYoda/src/xml/doxyYoda.xml\"\n#+end_src\nOr with the release, simply download the ~.tar.gz~ into the directory with the ~Doxyfile~ and:\n#+begin_src conf\nHTML_HEADER            = \"doxyYoda/html/header.html\"\nHTML_FOOTER            = \"doxyYoda/html/footer.html\"\nHTML_EXTRA_STYLESHEET  = \"doxyYoda/css/doxyYoda.min.css\"\nLAYOUT_FILE            = \"doxyYoda/xml/doxyYoda.xml\"\n#+end_src\n\n*** GitHub Action\nThe easiest way to use doxyYoda in CI is with the bundled action:\n#+begin_src yaml\n- uses: HaoZeke/doxyYoda@v0.1.0\n  with:\n    cppreference-tag: true   # optional: download cppreference tag file\n#+end_src\nThis downloads the release tarball into =doxyYoda/= and (optionally) fetches the [[https://en.cppreference.com/w/][cppreference]] Doxygen tag file into =tags/=.\n\n**** Inputs\n| Input              | Default   | Description                              |\n|--------------------+-----------+------------------------------------------|\n| =version=          | =0.1.0=   | doxyYoda version (without =v= prefix)    |\n| =path=             | =doxyYoda= | Directory to extract into               |\n| =cppreference-tag= | =false=   | Download cppreference Doxygen tag file    |\n| =tags-path=        | =tags=    | Directory for tag files                  |\n\n**** Outputs\n| Output                 | Description                   |\n|------------------------+-------------------------------|\n| =path=                 | Path to doxyYoda directory    |\n| =header=               | Path to =header.html=         |\n| =footer=               | Path to =footer.html=         |\n| =stylesheet=           | Path to =doxyYoda.min.css=    |\n| =layout=               | Path to =doxyYoda.xml=        |\n| =cppreference-tag-file= | Path to cppreference tag file |\n\n**** Full example\n#+begin_src yaml\nname: Build API Docs\non: [push, pull_request]\njobs:\n  docs:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: HaoZeke/doxyYoda@v0.1.0\n        with:\n          cppreference-tag: true\n      - run: sudo apt-get install -y doxygen graphviz\n      - run: doxygen Doxyfile\n#+end_src\n\n** Pixi Tasks\nAll build and development tasks are managed via [[https://pixi.sh][pixi]]:\n\n| Task           | Command              | Description                      |\n|----------------+----------------------+----------------------------------|\n| Compile SCSS   | =pixi run compile=   | SCSS → CSS                       |\n| Watch mode     | =pixi run watch=     | Recompile on file changes        |\n| Build demo     | =pixi run demo=      | Generate demo documentation site |\n| Serve demo     | =pixi run serve=     | Serve demo on localhost:8000     |\n| Minify CSS     | =pixi run minify=    | Minify compiled CSS              |\n| Build release  | =pixi run release=   | Build release tarball            |\n| Bump version   | =pixi run bump=      | Bump version via tbump           |\n| Clean          | =pixi run clean=     | Remove build artifacts           |\n\n** SCSS Architecture\n#+begin_example\nsrc/styles/scss/\n├── main.scss          # Entry point\n├── _variables.scss    # CSS custom properties (light + dark mode)\n├── _base.scss         # Reset and global styles\n├── _fonts.scss        # Font imports (CDN)\n├── _colors.scss       # Color application\n├── _layout.scss       # CSS Grid layout\n├── _typography.scss   # Headings, links, member docs\n├── _code.scss         # Code blocks, syntax, copy button\n├── _doxynav.scss      # Navbar, sidebar, breadcrumbs\n├── _directives.scss   # Admonitions (note, warning, etc.)\n└── _tooltip.scss      # PowerTip tooltips\n#+end_example\n\n** Dark Mode\ndoxyYoda supports dark mode through two mechanisms:\n1. *Automatic*: respects =prefers-color-scheme: dark= from your OS settings\n2. *Manual toggle*: click the ☾ button in the navbar — preference persists via =localStorage=\n\nThe entire color system uses CSS custom properties, so the switch is instant with no flash of unstyled content.\n\n** How?\n- [[https://sass-lang.com/documentation/cli/dart-sass][Dart Sass]] is needed to compile the CSS (managed by pixi)\n- The colors are taken from [[https://ethanschoonover.com/solarized/][Solarized Light]] and the [[https://github.com/HaoZeke/hugo-theme-hello-friend-ng-hz/branches][hello-friend-ng-hz]] Hugo theme\n- CSS is minified via =sass --style=compressed= (no separate minifier needed)\n- Inspired by [[https://mcss.mosra.cz/][m.css]] and [[https://shibuya.lepture.com/][Shibuya]]\n\n*** Development Workflow\n#+begin_src bash\npixi run watch     # Auto-recompile SCSS on changes\npixi run demo      # Rebuild demo docs\npixi run serve     # Serve and preview\n#+end_src\n\nOr the manual way with [[https://github.com/filewatcher/filewatcher-cli][filewatcher-cli]] and [[https://wiki.alpinelinux.org/wiki/Darkhttpd][darkhttpd]]:\n#+begin_src bash\nfilewatcher -s '**/*.scss' \"sass src/styles/scss/main.scss:src/styles/doxyYoda.css\"\n#+end_src\n\n** Demo\nThe =demo/= directory contains a self-contained example project:\n- =demo/src/yoda.hpp= — C++ header exercising all Doxygen constructs\n- =demo/src/mainpage.dox= — Landing page showcasing every visual element\n- =demo/Doxyfile= — Pre-configured to use doxyYoda\n\nBuild and preview:\n#+begin_src bash\npixi run demo \u0026\u0026 pixi run serve\n# Open http://localhost:8000\n#+end_src\n\n** Tree View?\nUnfortunately, as long as Doxygen keeps shipping silly ~jQuery~ based javascript scripts which write weird resizing logic into the HTML on the fly, tree view isn't very feasible.\n*** I really want it!\nThere are some commented out sections relating to an attempt to work around the jQuery rubbish but it amounts to just rewriting the HTML in place (see commit 07cdb06). Might consider this later.\n\n** Users\n- [[https://symengine.org/symengine][SymEngine C++ API documentation]]\n- [[https://docs.dseams.info][d-SEAMS API Documentation]]\n- [[https://haozeke.github.io/eigen/][Eigen v3.4.0 (git) Unofficial API Documentation]]\n- [[https://atomic-solvers.github.io/featom/][featom API Documentation]]\n- [[https://haozeke.github.io/GaussJacobiQuad/][GaussJacobiQuad API Documentation]]\n\n* Acknowledgments\nThis project was conceived as part of SymEngine's Google Season of Docs 2020. Inspired by [[https://mcss.mosra.cz/][m.css]] by Vladimír Vondruš and [[https://shibuya.lepture.com/][Shibuya]] by Hsiaoming Yang.\n\n* License\n[[https://www.apache.org/licenses/LICENSE-2.0.html][Apache version 2]]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaozeke%2Fdoxyyoda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaozeke%2Fdoxyyoda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaozeke%2Fdoxyyoda/lists"}