尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证OpenTide website and documentation (opentide.org)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Source for the opentide web presence — deployed on GitHub Pages at opentide.org.
Built with Next.js and Fumadocs, exported as a static site for GitHub Pages.
| Section | Source | Path |
|---|---|---|
| Landing page | This repo | / |
| Documentation | Synced at build time | /docs |
| Specifications | specifications repo | /docs/specifications |
| RFCs | specifications rfcs/ | /docs/specifications/rfcs |
| Usage, CLI, MCP, SDK | opentide docs/ | /docs/{usage,cli,mcp,sdk} |
| Blog | This repo content/blog/ | /blog/ |
Documentation prose is synced from the opentide and specifications repos via pnpm sync:content and committed under content/docs/ as .mdx so Fumadocs can compile JSX and private-repo CI can build without cross-repository access. content/docs/.sync-stamp.json records the vendor SHAs; pnpm check:docs fails if those gitlinks moved without a refresh. A GitHub Actions workflow (sync-docs.yml) does this on a schedule and on repository_dispatch, then deploys — you do not need to run sync by hand after a package release.
If you clone opentide repos as siblings:
opentide/
├── opentide/
├── specifications/
└── website/ ← you are here
pnpm install
OPENTIDE_DOCS_PATH=../opentide/docs SPECIFICATIONS_PATH=../specifications pnpm dev
git submodule update --init --recursive
pnpm install
pnpm dev
Environment overrides (first match wins):
| Variable | Default candidates |
|---|---|
OPENTIDE_DOCS_PATH | vendor/opentide/docs, ../opentide/docs |
SPECIFICATIONS_PATH | vendor/specifications, ../specifications |
| Command | Description |
|---|---|
pnpm dev | Sync docs + start dev server |
pnpm fetch:pypi | Snapshot the current PyPI version for local/dev first paint |
pnpm sync:content | Copy opentide + specifications docs into content/docs/ as .mdx |
pnpm check:docs | Fail if content/docs does not match the pinned vendor gitlinks |
pnpm test | Unit tests for sync, freshness, and GitHub source URLs |
pnpm verify:demos | Run the landing demo objects through opentide validate --strict, lint --strict and a dry-run deploy (needs pip install opentide) |
pnpm build | Snapshot PyPI + sync docs + static export to out/ |
pnpm lint | ESLint |
pnpm types:check | TypeScript + Fumadocs MDX types |
Add an MDX file under content/blog/:
---
title: Your post title
description: One sentence summary for listings and SEO.
author: Your Name
date: 2026-06-25
tags:
- detection-engineering
---
Your content here.
Open a pull request. Posts appear at /blog/<filename-without-extension>/.
development branch (Fumadocs-formatted docs under docs/).../specifications when the vendor submodule is empty.Pushes to main deploy to GitHub Pages via .github/workflows/deploy.yml. Custom domain is opentide.org (public/CNAME, siteUrl in lib/shared.ts, and the Pages custom-domain field). Apex DNS is four GitHub A records plus AAAA; www CNAMEs to opentidehq.github.io. Do not attach blog.opentide.org to this Pages site — forward it to /blog/ at the registrar.
The landing page reads the current opentide version from the PyPI JSON API in the browser. Publishing a wheel does not require a website rebuild for that number to update.
Docs, changelog pages, specs, and RFCs do need a rebuild. .github/workflows/sync-docs.yml handles that without a human. RFC pages are not a separate publish step: pnpm sync:content rebuilds /docs/specifications/rfcs/ from specifications/rfcs/ (including reserved numbers that only exist in the README) every time the specifications pin moves.
repository_dispatch / workflow_dispatch) bump vendor/opentide + vendor/specificationspnpm sync:content and commit content/docs/ (including .sync-stamp.json)<Tabs>main and dispatch GitHub Pages deployA new or updated RFC in the specifications repository shows up on the site on the next hourly run. An opentide release dispatch refreshes both pins immediately. Nothing in this repository has to be edited by hand.
To notify the site immediately after a PyPI publish (optional, from opentidehq/opentide):
gh api repos/opentidehq/website/dispatches -f event_type=opentide-released
That call needs a token with repo scope on this repository. If it is not wired, the hourly schedule still picks the change up.
Licensed under the European Union Public Licence v. 1.2 (EUPL-1.2).