尚未偵測到更新。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).