From 2e554ec6aecf2eb3ccfb045bd824dccba5c9ab4a Mon Sep 17 00:00:00 2001 From: Daelon Date: Sun, 26 Apr 2026 15:42:06 +0200 Subject: [PATCH] chore: initial mkdocs material skeleton with multirepo plugin --- .dockerignore | 11 +++++++ .gitignore | 10 ++++++ .python-version | 1 + Dockerfile | 26 +++++++++++++++ docs/index.md | 28 ++++++++++++++++ mkdocs.yml | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 4 +++ 7 files changed, 165 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 .python-version create mode 100644 Dockerfile create mode 100644 docs/index.md create mode 100644 mkdocs.yml create mode 100644 requirements.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..772f4fe --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +site/ +.venv/ +venv/ +__pycache__/ +*.pyc +.git/ +.idea/ +.vscode/ +.DS_Store +.mkdocs_temp/ +temp_dir/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4effb33 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +site/ +__pycache__/ +*.pyc +.venv/ +venv/ +.idea/ +.vscode/ +.DS_Store +.mkdocs_temp/ +temp_dir/ diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..aaec8dc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM python:3.12-slim AS builder + +RUN apt-get update \ + && apt-get install -y --no-install-recommends git ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +ARG GITHUB_TOKEN="" +RUN if [ -n "$GITHUB_TOKEN" ]; then \ + git config --global url."https://x-access-token:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"; \ + fi \ + && mkdocs build --strict --site-dir /site + +FROM nginx:1.27-alpine + +COPY --from=builder /site /usr/share/nginx/html + +RUN printf 'server {\n listen 80 default_server;\n listen [::]:80 default_server;\n root /usr/share/nginx/html;\n index index.html;\n location / { try_files $uri $uri/ $uri.html =404; }\n location ~* \\.(js|css|woff2?|svg|png|jpg|jpeg|gif|ico)$ { expires 7d; access_log off; }\n gzip on;\n gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;\n gzip_min_length 1024;\n}\n' > /etc/nginx/conf.d/default.conf + +EXPOSE 80 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..7176c93 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,28 @@ +# Daelon Engineering + +Welcome to the documentation hub of Daelon Engineering UG. + +## Projects + +
+ +- :material-database-cog: **[OmniBMS](OmniBMS/)** + + Battery management system platform. + + [:octicons-arrow-right-24: Documentation](OmniBMS/) + +- :material-chip: **[LiquidCore15](LiquidCore15/)** + + Liquid-cooled compute core hardware. + + [:octicons-arrow-right-24: Documentation](LiquidCore15/) + +
+ +## How this site is built + +Documentation lives in the `docs/` directory of each project repository on GitHub. +On every push, a webhook triggers a rebuild on `docs.daelon.cloud` — content is pulled fresh from each repo via the `mkdocs-multirepo-plugin`. + +To add a project: edit `mkdocs.yml` in this repository, add the repo URL under `plugins.multirepo.repos`, and push. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..4587a36 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,85 @@ +site_name: Daelon Engineering +site_url: https://docs.daelon.cloud +site_description: Documentation hub for Daelon Engineering projects +site_author: Daelon Engineering UG +copyright: Copyright © Daelon Engineering UG + +repo_url: https://github.com/daelon-eng +repo_name: daelon-eng + +theme: + name: material + language: en + features: + - navigation.tabs + - navigation.tabs.sticky + - navigation.sections + - navigation.expand + - navigation.indexes + - navigation.top + - navigation.tracking + - search.highlight + - search.share + - search.suggest + - content.code.copy + - content.code.annotate + - content.tabs.link + - toc.follow + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: Switch to light mode + icon: + repo: fontawesome/brands/github + +plugins: + - search + - multirepo: + cleanup: true + keep_docs_dir: true + repos: + - section: OmniBMS + import_url: 'https://github.com/daelon-eng/omnibms?branch=main&docs_dir=docs/*' + - section: LiquidCore15 + import_url: 'https://github.com/daelon-eng/LiquidCore15?branch=main&docs_dir=docs/*' + +markdown_extensions: + - admonition + - attr_list + - def_list + - footnotes + - md_in_html + - tables + - toc: + permalink: true + - pymdownx.details + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + +nav: + - Home: index.md + - OmniBMS: '!import https://github.com/daelon-eng/omnibms?branch=main' + - LiquidCore15: '!import https://github.com/daelon-eng/LiquidCore15?branch=main' diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b036db2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +mkdocs==1.6.1 +mkdocs-material==9.5.49 +mkdocs-multirepo-plugin==0.8.3 +pymdown-extensions==10.12