From e181252a2b404037e23a897c725719b1d2fc39fa Mon Sep 17 00:00:00 2001 From: Jie Date: Thu, 3 Sep 2026 18:17:16 +0800 Subject: [PATCH 1/4] Say which integrations are out, in the places that say it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two of the three are public with releases, and every document that described the ecosystem still said all three were coming soon. The README table is the most-read page in the project and it was wrong in both languages; docs/projects.md had jsray-wp right and jsray-vscode stale; the site footer still greyed jsray-vscode out beside a repository that has been public since this morning. The contract test that exists to prevent exactly this is the reason the suite stayed green: it held jsray-vscode in the unpublished list, so it was enforcing the stale fact rather than catching it. Moving a name between those two lists is the deliberate act publishing should be — that only works if somebody moves it. The table now says what is true of each: public beta but not on the host's own directory yet, for the two that are out, and in development for the one that is not. --- README.md | 8 ++++---- README.zh-CN.md | 8 ++++---- demo/index.html | 6 +++--- demo/studio.html | 2 +- docs/projects.md | 2 +- docs/projects.zh-CN.md | 2 +- tests/contract.test.mjs | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 956174a..56cc9f4 100644 --- a/README.md +++ b/README.md @@ -107,13 +107,13 @@ JSRay is intended to be a fully open-source code rendering ecosystem: one small > One renderer. Many places for code to shine. -Official integrations live in their own repositories, use JSRay Core by default, and stay fully usable without paid feature locks. Planned integrations: +Official integrations live in their own repositories, use JSRay Core by default, and stay fully usable without paid feature locks. The integrations: | Integration | Repository | Status | |---|---|---| -| WordPress plugin | `jsray-wp` | Coming soon | -| VS Code extension | `jsray-vscode` | Coming soon | -| Terminal CLI | `jsray-terminal` | Coming soon | +| WordPress plugin | [`jsray-wp`](https://github.com/jsrayorg/jsray-wp) | Public beta · not on WordPress.org yet | +| VS Code extension | [`jsray-vscode`](https://github.com/jsrayorg/jsray-vscode) | Public beta · not on the Marketplace yet | +| Terminal CLI | `jsray-terminal` | In development | | …and more | — | Community & official adapters welcome | Each repository is published as it reaches its own beta. Every integration exposes renderer adapter hooks, so a host project can swap in another renderer when it needs to. diff --git a/README.zh-CN.md b/README.zh-CN.md index 57a7288..9b64aa3 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -86,13 +86,13 @@ JSRay 的目标是成为完整开源的代码渲染生态:一个轻量 Core > 一个渲染核心,让代码在不同平台中发光。 -官方集成各自独立仓库,默认使用 JSRay Core,并保持完整可用,不以付费锁定基础能力。规划中的集成: +官方集成各自独立仓库,默认使用 JSRay Core,并保持完整可用,不以付费锁定基础能力。集成一览: | 集成 | 仓库 | 状态 | |---|---|---| -| WordPress 插件 | `jsray-wp` | 即将推出 | -| VS Code 扩展 | `jsray-vscode` | 即将推出 | -| 终端 CLI | `jsray-terminal` | 即将推出 | +| WordPress 插件 | [`jsray-wp`](https://github.com/jsrayorg/jsray-wp) | 公开测试版 · 尚未上架 WordPress.org | +| VS Code 扩展 | [`jsray-vscode`](https://github.com/jsrayorg/jsray-vscode) | 公开测试版 · 尚未上架 Marketplace | +| 终端 CLI | `jsray-terminal` | 开发中 | | …以及更多 | — | 欢迎官方与社区适配器 | 各仓库在其到达 beta 时对外公开。每个集成都开放 renderer adapter / hook,宿主项目需要时可接入其它渲染器。 diff --git a/demo/index.html b/demo/index.html index c78d26a..6105b03 100644 --- a/demo/index.html +++ b/demo/index.html @@ -336,10 +336,10 @@

Documentation

Ecosystem

diff --git a/demo/studio.html b/demo/studio.html index aa82ea5..6ddc498 100644 --- a/demo/studio.html +++ b/demo/studio.html @@ -94,7 +94,7 @@

Ecosystem

  • WordPress · jsray-wpbeta
  • - +
  • VS Code · jsray-vscodebeta
  • How integrations work
  • diff --git a/docs/projects.md b/docs/projects.md index 9b9f7b3..5fb672c 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -66,7 +66,7 @@ Core changes flow into plugin repositories by copying or packaging `dist/` asset | `jsray` | npm `@jsray/core` | MIT | public | | `jsray-wp` | WordPress.org plugin | GPLv2 or later | public | | `jsray-terminal` | npm CLI | MIT | not published yet | -| `jsray-vscode` | VS Code Marketplace | MIT | not published yet | +| `jsray-vscode` | VS Code Marketplace | MIT | public | Future platform repositories such as `jsray-react`, `jsray-astro`, or `jsray-mdx` if needed. diff --git a/docs/projects.zh-CN.md b/docs/projects.zh-CN.md index c6b847e..554dafd 100644 --- a/docs/projects.zh-CN.md +++ b/docs/projects.zh-CN.md @@ -66,7 +66,7 @@ Core 的变更通过拷贝或打包 `dist/` 资产流向插件仓库。插件的 | `jsray` | npm `@jsray/core` | MIT | 已公开 | | `jsray-wp` | WordPress.org 插件 | GPLv2 or later | 已公开 | | `jsray-terminal` | npm CLI | MIT | 尚未发布 | -| `jsray-vscode` | VS Code Marketplace | MIT | 尚未发布 | +| `jsray-vscode` | VS Code Marketplace | MIT | 已公开 | 未来按需增加的平台仓库,例如 `jsray-react`、`jsray-astro`、`jsray-mdx`。 diff --git a/tests/contract.test.mjs b/tests/contract.test.mjs index 277d3e2..76eb646 100644 --- a/tests/contract.test.mjs +++ b/tests/contract.test.mjs @@ -393,8 +393,8 @@ test('site: the footer links the integrations that exist and only names the rest // // Both lists move as integrations ship. Moving a name from one to the other // is the deliberate act that publishing it should be. - const PUBLIC = ['jsray-wp']; - const UNPUBLISHED = ['jsray-vscode', 'jsray-terminal']; + const PUBLIC = ['jsray-wp', 'jsray-vscode']; + const UNPUBLISHED = ['jsray-terminal']; for (const page of ['demo/index.html', 'demo/studio.html']) { const footer = read(page).match(/ diff --git a/dist/jsray.js b/dist/jsray.js index 454124d..d795c05 100644 --- a/dist/jsray.js +++ b/dist/jsray.js @@ -1865,7 +1865,7 @@ * Runtime version, for shell/core compatibility negotiation. * Must match version.json — tools/check-versions.mjs asserts it. */ - version: '0.0.2-beta.1', + version: '0.0.2-beta.2', languages: G, normalizeLanguage, detectLanguage, diff --git a/docs/projects.md b/docs/projects.md index d6b220b..8bacd38 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -63,7 +63,7 @@ Core changes flow into plugin repositories by copying or packaging `dist/` asset | Repository | Intended channel | Licence | Available from today | |---|---|---|---| -| `jsray` | npm `@jsray/core` | MIT | npm — `@jsray/core@0.0.2-beta.1` | +| `jsray` | npm `@jsray/core` | MIT | npm — `@jsray/core@0.0.2-beta.2` | | `jsray-wp` | WordPress.org plugin | GPLv2 or later | GitHub release zip · not on WordPress.org yet | | `jsray-terminal` | npm CLI | MIT | GitHub — `npm i -g github:jsrayorg/jsray-terminal` · not on npm yet | | `jsray-vscode` | VS Code Marketplace | MIT | GitHub release `.vsix` · not on the Marketplace yet | @@ -94,7 +94,7 @@ The public website keeps the brand concentrated under `jsray.org`: moves on every release, which is right for the demo and wrong for a site nobody is watching. - `https://jsray.org/v//`: the same files frozen per release - (`jsray.org/v/0.0.2-beta.1/jsray.js`). A page that pins here keeps rendering + (`jsray.org/v/0.0.2-beta.2/jsray.js`). A page that pins here keeps rendering the way it did the day it was written. `tools/build-site.sh` emits both. Cloudflare replaces the whole asset bundle on diff --git a/docs/projects.zh-CN.md b/docs/projects.zh-CN.md index ede7405..6e7b20d 100644 --- a/docs/projects.zh-CN.md +++ b/docs/projects.zh-CN.md @@ -89,7 +89,7 @@ GPLv2 or later,因为 WordPress.org 的第一条指南接受任何 GPL 兼容许 (`jsray.org/dist/jsray.js`、`jsray.org/dist/themes/.css`)。这个路径每次 发版都会变 —— 对演示页是对的,对没人盯着的站点是错的。 - `https://jsray.org/v//`:同样的文件按版本固化 - (`jsray.org/v/0.0.2-beta.1/jsray.js`)。锁定到这里的页面,今天怎么渲染, + (`jsray.org/v/0.0.2-beta.2/jsray.js`)。锁定到这里的页面,今天怎么渲染, 以后还怎么渲染。 `tools/build-site.sh` 两者都生成。Cloudflare 每次部署都会整体替换资产包,因此 diff --git a/docs/versioning.md b/docs/versioning.md index f18bc33..a49a553 100644 --- a/docs/versioning.md +++ b/docs/versioning.md @@ -4,7 +4,7 @@ JSRay Core uses single-project versioning. Platform plugins keep their own version files in their own repositories. -Current version: `0.0.2-beta.1` +Current version: `0.0.2-beta.2` Current channel: `beta` Public beta released: yes @@ -33,7 +33,7 @@ The mechanics follow from that: `check:versions` requires the counter here, and `0.0.2`. ``` -0.0.1-beta.1 … 0.0.1-beta.5 → 0.0.2-beta.1 → 0.0.3-beta.1 → … → 0.1.0 +0.0.1-beta.1 … 0.0.1-beta.5 → 0.0.2-beta.1 → 0.0.2-beta.2 → 0.0.3-beta.1 → … → 0.1.0 ``` The `0.0.1` line closed at beta.5. `0.1.0` is where the beta label comes off, diff --git a/docs/versioning.zh-CN.md b/docs/versioning.zh-CN.md index 564a761..d382a4f 100644 --- a/docs/versioning.zh-CN.md +++ b/docs/versioning.zh-CN.md @@ -4,7 +4,7 @@ JSRay Core 采用单项目版本号。平台插件在各自仓库里维护自己的版本文件。 -当前版本:`0.0.2-beta.1` +当前版本:`0.0.2-beta.2` 当前通道:`beta` 公开测试版已发布:是 @@ -30,7 +30,7 @@ JSRay Core 是独立的 JavaScript 原生代码渲染内核。平台插件(包 `version_compare()` —— 字符串排序会把 `0.0.10` 排在 `0.0.2` 前面。 ``` -0.0.1-beta.1 … 0.0.1-beta.5 → 0.0.2-beta.1 → 0.0.3-beta.1 → …… → 0.1.0 +0.0.1-beta.1 … 0.0.1-beta.5 → 0.0.2-beta.1 → 0.0.2-beta.2 → 0.0.3-beta.1 → …… → 0.1.0 ``` `0.0.1` 这条线在 beta.5 结束。`0.1.0` 才是脱掉 beta 标签的地方,因此 `0.0.1` diff --git a/integrity.json b/integrity.json index 1711f91..d46d0d0 100644 --- a/integrity.json +++ b/integrity.json @@ -1,10 +1,10 @@ { "project": "jsray", - "version": "0.0.2-beta.1", + "version": "0.0.2-beta.2", "algorithm": "sha256", "note": "Base64 SHA-256 digests of the released Core assets. Integrations copy the relevant digest at sync time and verify their bundled snapshot against it.", "files": { - "dist/jsray.js": "sha256-x180Gx5SNG9mcOdUrW8pyDkuoGV6MY4VB2caqu1Jd44=", + "dist/jsray.js": "sha256-FAodgz8GT5uEr//Gd7lY6pbSBtbIZzzYHIitDfEqkVg=", "dist/jsray.css": "sha256-6Fuva+aZwCcmltNi2oN+1yWIJoKE+1rLpUxZvD9iutc=", "dist/themes/aurora.css": "sha256-S8X+R8XZNC8WRdHOen839zMkPxVFol6PPTrpZibbeJA=", "dist/themes/default.css": "sha256-vENOigRjwn1hW6wPjdM4tbZ58Ja44FMsa+akavPiMSI=", diff --git a/package.json b/package.json index 654983a..623ec14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jsray/core", - "version": "0.0.2-beta.1", + "version": "0.0.2-beta.2", "description": "JavaScript-native code rendering kernel with 23-class token semantics and pluggable themes.", "author": "Jie ", "license": "MIT", diff --git a/src/jsray.js b/src/jsray.js index 454124d..d795c05 100644 --- a/src/jsray.js +++ b/src/jsray.js @@ -1865,7 +1865,7 @@ * Runtime version, for shell/core compatibility negotiation. * Must match version.json — tools/check-versions.mjs asserts it. */ - version: '0.0.2-beta.1', + version: '0.0.2-beta.2', languages: G, normalizeLanguage, detectLanguage, diff --git a/tokens.json b/tokens.json index 6637fd5..b0b2cd1 100644 --- a/tokens.json +++ b/tokens.json @@ -1,7 +1,7 @@ { "name": "JSRay", "author": "Jie", - "version": "0.0.2-beta.1", + "version": "0.0.2-beta.2", "description": "Default palette · 23 token classes · 6 identifier families visually separated", "philosophy": { "identifier-families": { diff --git a/types/jsray.d.ts b/types/jsray.d.ts index 437183a..08c9c4c 100644 --- a/types/jsray.d.ts +++ b/types/jsray.d.ts @@ -24,7 +24,7 @@ declare namespace JSRay { /** A renderer-agnostic stream produced by `tokenize`. */ type TokenStream = Array; - /** Runtime version string, matches version.json (e.g. "0.0.2-beta.1"). */ + /** Runtime version string, matches version.json (e.g. "0.0.2-beta.2"). */ const version: string; /** Grammars for every registered language, keyed by name and by alias. */ diff --git a/version.json b/version.json index b348b2b..725543d 100644 --- a/version.json +++ b/version.json @@ -1,7 +1,7 @@ { "project": "jsray", "name": "JSRay Core", - "version": "0.0.2-beta.1", + "version": "0.0.2-beta.2", "channel": "beta", "publicBetaReleased": true, "notes": "Standalone JavaScript-native code rendering kernel. JSRay is planned as a fully open-source ecosystem with Core, official integrations, and community integrations." diff --git a/vocabulary.json b/vocabulary.json index 6a388b5..7457665 100644 --- a/vocabulary.json +++ b/vocabulary.json @@ -1,6 +1,6 @@ { "project": "jsray", - "version": "0.0.2-beta.1", + "version": "0.0.2-beta.2", "description": "Machine-readable token vocabulary: the three-name lock-step every JSRay surface shares. A palette key maps to one CSS custom property (--jr-) and one runtime class (tk-).", "tokens": { "keyword": "keyword",