chore: initial mkdocs material skeleton with multirepo plugin

This commit is contained in:
Daelon 2026-04-26 15:42:06 +02:00
commit 2e554ec6ae
7 changed files with 165 additions and 0 deletions

11
.dockerignore Normal file
View file

@ -0,0 +1,11 @@
site/
.venv/
venv/
__pycache__/
*.pyc
.git/
.idea/
.vscode/
.DS_Store
.mkdocs_temp/
temp_dir/

10
.gitignore vendored Normal file
View file

@ -0,0 +1,10 @@
site/
__pycache__/
*.pyc
.venv/
venv/
.idea/
.vscode/
.DS_Store
.mkdocs_temp/
temp_dir/

1
.python-version Normal file
View file

@ -0,0 +1 @@
3.12

26
Dockerfile Normal file
View file

@ -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

28
docs/index.md Normal file
View file

@ -0,0 +1,28 @@
# Daelon Engineering
Welcome to the documentation hub of Daelon Engineering UG.
## Projects
<div class="grid cards" markdown>
- :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/)
</div>
## 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.

85
mkdocs.yml Normal file
View file

@ -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 &copy; 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'

4
requirements.txt Normal file
View file

@ -0,0 +1,4 @@
mkdocs==1.6.1
mkdocs-material==9.5.49
mkdocs-multirepo-plugin==0.8.3
pymdown-extensions==10.12