Skip to main content

Central documentation hub for multi-repo software projects

Project description

章略·墨衡

docs-stratego 是一个“单站点 + 页面级权限”的文档聚合仓。它的核心目标不是把源仓文档改写成另一套结构,而是:

  • 让源仓在自己的 docs/ 下按统一标准维护文档
  • 用 Git submodule + sparse-checkout 只展开外部源仓的 docs/
  • 在构建前根据根 docs/index.md 的全站清单生成导航和权限清单
  • 用 MkDocs 生成单个静态站点
  • 用 Casdoor + oauth2-proxy + Nginx 对私有页面做登录控制
  • 默认关闭匿名全文搜索,避免私有内容进入公开搜索索引

当前目录

  • docs/ 本仓自己的标准化文档源,同时也是外部源仓的写法示例
  • src/ CLI、稀疏同步、元数据解析、站点构建和权限清单生成逻辑
  • scripts/deploy_remote.sh 面向完整仓库工作区的全量重建与应急部署入口;日常同步与构建统一走 docs-stratego CLI,标准生产服务器不依赖它做日常发布
  • deploy/ Casdoor、oauth2-proxy 与宿主机 Nginx 配置模板

快速开始

uv sync --extra site
uv run docs-stratego dev --project-root .

本地快速重建并启动预览:

uv run docs-stratego dev --project-root .

如果要在本机模拟服务器侧的远程拉仓行为:

uv run docs-stratego dev --project-root . --source-mode remote

如果你只想做一次构建、不启动本地预览:

uv run docs-stratego dev --project-root . --build-only

docs-stratego dev 内部会顺序执行 sync -> build -> mkdocs serve--build-only 时执行 mkdocs build

注意:

  • 当前 docs-stratego devsource_mode=local 下会自动监听根仓 docs/、本地源仓 docs/config/source-repos.json
  • 当前 source_mode=remote 仍然是一次性预演;如果你改了远程输入配置后要重新确认,请重新运行 docs-stratego dev --source-mode remote

根仓本地开发需要 site extra,因为 dev / mkdocs build 依赖 mkdocsmkdocs-material;外部源仓侧的轻量命令默认不需要这组依赖。

如果虚拟环境或缓存异常,直接删除 .venv 后重新执行:

rm -rf .venv
uv sync --extra site

当前正式配置已经包含 6 个项目:

  • docs-stratego
  • crawler4j
  • stratix
  • ride-loop
  • shanforge
  • ctrip_crawler

当前配置文件已经支持同一仓库条目下的两种来源模式:

  • local 本地调试直接读取本机项目目录中的 docs/
  • remote 远程构建先初始化 submodule,再在子仓内显式 fetch + checkout 目标分支,并只保留顶层 docs/

因此本地预览和 GitHub Actions 会走同一套同步逻辑,只是 source mode 不同;开发环境统一使用 docs-stratego dev,CI 和发布链路仍保持 docs-stratego syncdocs-stratego build 分步执行。

文档标准

正式公开标准见 source-docs-standard.md

最关键的约束是:

  • 每个目录都必须有 index.md
  • 只有根 docs/index.md 声明 mkdocs.nav
  • docs/index.md 的正文只写简介和维护说明,不再重复写目录树或章节清单
  • 页面私有化只允许在根 docs/index.md 的页面节点中声明
  • 页面节点除了 *.md,还可以声明 *.openapi.**.mcp-tools.* 契约文件
  • 已声明的 OpenAPI 文件会自动生成 Scalar API Reference 页面;已声明的 MCP tools 快照会自动生成工具参考页,并保留原始 .yaml/.json 下载地址
  • 未声明的 Markdown 页面直接视为构建错误

源仓接入、自动联动、移除和 CLI 命令说明见 子仓接入指南。 本地开发与预览方式见 本地开发与预览

认证与部署

  • Casdoor:本地账号密码 + GitHub 登录
  • oauth2-proxy:提供标准 auth_request 接口
  • Nginx:服务静态站点,并根据生成的私有页面路径拦截请求
  • 运行时配置文件:deploy/casdoor/app.confdeploy/oauth2-proxy/oauth2-proxy.cfg
  • 推荐发布方式:GitHub Actions 在 Runner 侧构建 site/private_locations.conf,再把 site/ 发布到 /var/www/docs-stratego、把 private_locations.conf 安装到 /etc/nginx/snippets/docs-stratego/private_locations.conf;这两份构建产物会作为 artifact 保留 7 天,用于 validate -> deploy 作业交接和短期排障;Docker 认证服务通常只在首次部署或运行时配置变更时更新

部署说明见 deployment-guide.md
如果是云服务器私有化部署,请优先阅读:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docs_stratego-0.1.4.tar.gz (42.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docs_stratego-0.1.4-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file docs_stratego-0.1.4.tar.gz.

File metadata

  • Download URL: docs_stratego-0.1.4.tar.gz
  • Upload date:
  • Size: 42.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for docs_stratego-0.1.4.tar.gz
Algorithm Hash digest
SHA256 951ced44a57de8b6ed8b668dc655e689f215633311cc2807473fafc5a072359d
MD5 ae519613632e6bf7ccfa677030ce0349
BLAKE2b-256 56d585583013c7da98d90ff199f4366315b2204c0c72768026261d82b7ec4f32

See more details on using hashes here.

File details

Details for the file docs_stratego-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: docs_stratego-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for docs_stratego-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 48f6cb2725663039bc3459e1e99650938d4ec55cab6f2060ebdf40badbcc9e5e
MD5 d561a39755c96054f6575776d80c36b1
BLAKE2b-256 210340c952ddaac5ee35fe2dba11f561cf338dc64f7dfa455603aca2164e5a4c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page