Skip to content

Repository files navigation

IrisSakura:Research · Engineering · Framework · Game

IrisSakura 个人站

这是 IrisSakura 的长期个人创作网站。公开展示游戏、Mod、文章与长期项目;内部仍通过事实源、Publication Contract 和生成器保证公开信息可靠。

正式 Logo、Wordmark、产品 Lockup、核心概念 Icon 与 Social Card 模式由 config/brand.json 统一登记;新增页面必须先取得一个已登记的 Brand Mode,再由 owner generator 生成公开投影。

部分作品会沿着一条可验证的协作链形成,但四个项目并不从属于这条流水线:

Myosotis(研究)→ Iris Engineering(工程治理)→ SakuraGameFramework(能力沉淀)→《言铸之剑》(游戏验证)

站点不展示没有事实来源的技能百分比、虚构项目、模拟联系结果或私有仓库地址。

页面结构

  • /:个人介绍、Now、代表作品、近期动态、最新文章、Mods、长期项目与关于入口;
  • /pages/development.html:一级“项目”入口,并列介绍 Iris Engineering、SakuraGameFramework、Myosotis 与 Violet Shelf;
  • /pages/engineering.html:Iris Engineering 子页,说明研发工作流、授权、执行与验证边界;
  • /pages/journal.html:研究资料库 Myosotis(稳定内部 Journal)入口,包含策展研究、公开证据链与文章入口;
  • /pages/tools.html:Violet Shelf 项目页,只说明真实本地工具边界,不提供下载或发布声明;
  • /pages/blog.html:一级“文章”入口,聚合正式文章、系列与标签;
  • /pages/subscribe.html:文章订阅说明、复制订阅地址与阅读入口;
  • /rss.xml:只收录正式文章语义地址的 RSS 2.0 订阅;
  • /pages/framework.html:SakuraGameFramework 项目页,展示采用入口、架构、模块浏览器与生命周期成熟度;
  • /pages/framework-quickstart.html:从 Core Only 到 Bootstrap Lite 的 15 分钟安装、事件、对象池、验证与清理教程;
  • /pages/game.html:《言铸之剑》可玩原型案例;
  • /pages/mods.html:Freesia Mods 跨游戏 Mod 创作系列入口;按宿主游戏组织显式登记的 Mod 作品与共享技术基础;
  • /pages/portfolio.html:游戏、Mod 与实验原型;7 个 Consumer Lab 案例可在 Framework 技术区域继续浏览;
  • /pages/brand.html:由“关于与联系”和页脚进入的品牌资料页,公开展示 IrisSakura 品牌架构、四项目资料、色板、图标与命名规则;
  • /pages/art-music.html:旧“美术音乐”地址的 noindex Brand 兼容跳转;
  • /pages/contact.html:个人介绍、创作兴趣、Now、工作邮箱、工作 QQ 与公开主页;
  • /pages/about.html:旧 About 地址的 noindex 首页兼容跳转;
  • /404.html:GitHub Pages 自定义错误页。

Living 内容维护

  • /pages/now.html:当前投入、思考、阶段成果与近期动态;从首页、关于和页脚进入,不增加一级导航。
  • 更新当前活动只改 data/now.json。current 建议 3~5 项,thinking 为 0~4 项,recentlyCompleted 为 0~5 项。空的可选栏目不显示;长期未更新不会阻止构建。
  • 编辑动态只改 data/updates.json,按日期降序排列。同日保留编辑顺序;未来日期按 Asia/Shanghai 判断。动态不自动读取 Git,不进入 RSS。
  • 首批内容采用 2026-09-20 确认的三个方向,仅记录当天启动网站整理这项动态,没有补写历史日期或完成结果。
  • 首页文章只选正式发布内容,按 publishedAt 降序、slug 升序取前三篇;修改旧文不改变首页新文章排序。
  • config/site-presentation.json 控制首页区块顺序和作品分组。作品只能引用登记 ID;空分组不显示。Consumer Lab 已移至 /pages/framework.html#consumer-lab,作品页旧锚点保留导引。
  • 真实视觉目前复用《言铸之剑》游戏截图。Iris / Violet 暂无站内产品截图,保留文字介绍;后续只添加审阅过的真实素材,不制作虚假界面。
  • 新截图可放入 assets/images/showcase/,公开前检查私有地址、路径、密钥和聊天等敏感内容。
  • 更新后运行 npm run check、npm run test:smoke、npm run package:site,生成的 HTML 不手工维护。提交与发布另行授权。

本地运行

npm ci
npm run build
python3 -m http.server 8000

打开 http://localhost:8000/。

构建与验证

npm run check
npm run test:smoke
npm run package:site
  • npm run generate:从公共模板和 JSON 事实源生成导航、页脚、SEO、RSS、Sitemap、栏目/文章分享图与 Framework 静态回退;
  • npm run test:json:直接扫描原始 JSON 文本,拒绝 package.json、data/*.json 和 config/*.json 的重复键与语法错误;
  • npm run build:生成站点源文件并把 TypeScript 编译到 dist/;
  • npm test:运行数据契约、内容真实性、链接、资源和 HTML 语义检查;
  • npm run test:smoke:用无头 Chromium 检查主要路由、响应式留白、页面 Brand Mode、文章出版、证据链与移动导航;
  • npm run package:site:把发布所需文件复制到 _site/。

Productization Phase I

  • 全站 Search / Cmd/Ctrl+K 读取构建时生成的 data/site-search-index.json;原 data/search-index.json 继续服务 Journal 专题搜索。来源、排序与失败回退见 docs/architecture/search.md。
  • 文章、研究、项目与 Framework 的相关导航由 data/content-relations.json 和已登记的系列、项目关系及 Evidence Chain 派生;规则见 docs/architecture/content-graph.md。
  • 隐私优先的分析适配器默认关闭。账户激活、公开站点标识及事件参数合同见 docs/operations/analytics.md。
  • 生成器为正式页面输出与 canonical 对应的 JSON-LD;搜索引擎验证值默认未配置,后续步骤见 docs/operations/search-engine-registration.md。
  • Playwright Smoke 包含主要页面可访问性扫描和性能预算检查。测试范围、人工复核边界与实验室报告分别见 docs/quality/accessibility.md 和 docs/quality/performance.md。
  • 发布包只含显式准入的运行时 JSON;npm run package:site 会扫描 _site/ 中的来源提交、私有路径与维护字段。

dist/ 和 _site/ 都是 CI 产物,不进入主分支。不要直接修改生成文件。

数据来源

  • config/brand.json:名称、家族、页面 Brand Mode、正式资产、Social palette 与 Deprecated Naming 的品牌合同;
  • config/site-presentation.json:六项主导航、四项目稳定 ID、展示名称、顺序、职责短句、动作和页脚分组;
  • config/mod-series.json:Freesia Mods 的显式系列归属和展示角色,不复制 data/projects.json 的项目事实;
  • data/site.json:站点定位、Profile、栏目头图和真实社交入口;
  • data/projects.json:八个公开项目的状态、事实更新时间、复核时间、同步方式、职责、证据、限制与下一步;
  • data/consumer-lab.json:七个独立 Unity 消费项目的站点策展文案与 owner-only 技术快照;该文件用于生成校验,不进入 Pages artifact;
  • data/journal.json:私有研究仓库的站内策展快照,不含仓库地址;
  • data/journal-source.json:由 Journal 固定提交生成的公开摘要与博客清单;
  • content/blogs/:通过安全导入并由 publication 合同选中的 Markdown 正文镜像;
  • config/blog-publication.json:Journal 导入自动收敛的出版投影;既有条目保留站点侧状态、语义 slug 与首次发布日期,标题、摘要、系列、标签、更新日期和正文哈希跟随固定导出;
  • data/blog-taxonomy.json:正式文章使用的系列与标签语义路由;既有策展文案保留,新 ASCII 标签由导入器确定性补齐;
  • data/evidence-chains.json:研究、Framework 采用映射和游戏系统之间的公开证据链与边界;
  • data/framework.json:由 Sakura Framework 权威清单生成的白名单公开快照;
  • data/framework-adoption.json:经人工复核的 Supported 包、稳定路线和真实项目采用映射;
  • data/framework-previous-review.json:跨仓预审过渡期间保留的前一套采用、教程与 Framework 项目事实;生成器按权威快照 hash 选择整套内容;
  • data/framework-quickstart.json:只登记路线 ID 与教程步骤,包名从 adoption 注册表派生,不自行绑定版本。
  • data/iris-engineering.json:Iris Engineering 的公开快照;首次 fixed-commit import 会把当前 legacy v1 迁移为 schema v2,只公开审阅语义和 sourceUpdatedAt,source SHA 留在不发布的 owner provenance。

框架同步和维护边界见 docs/maintenance/framework-sync.md。 Iris Engineering 同步、provenance 与五路径 owner scope 见 docs/maintenance/iris-engineering-sync.md。 Iris Shelf 与 UDGAP 的 source-push 项目状态、共享 importer 和三路径 owner scope 见 docs/maintenance/project-status-sync.md。 品牌职责与 Design System 所有权分别见 docs/brand/brand-architecture.md 和 docs/brand/visual-system.md。

项目状态中的 source-push 表示已有源仓推送驱动的公开投影,fixed-snapshot 表示固定提交导入,versioned-review 表示只复核已版本化产品事实,site-curated 表示站点策展。Iris Shelf 与 UDGAP 使用同一 closed-schema importer,但分别拥有源仓 profile、provenance 和 Actions scope;言铸之剑仍是 Plastic/site-curated,不能把本地工作区或未验证输出伪装成自动同步。

栏目视觉与项目头图

作品与通用栏目视觉由 data/site.json 管理;四个项目首屏由 config/site-presentation.json 与 config/brand.json 的项目题图映射共同管理,不需要逐页修改生成后的 HTML。

  1. Iris Engineering、SakuraGameFramework、Myosotis 与 Violet Shelf 分别使用 assets/images/brand/site-v2/hero-*.webp,派生记录与源/输出哈希见同目录 manifest.json。这些首屏不再叠加 data/site.json.pageCovers。

  2. home、blog 和 contact 可继续使用纯 CSS 栏目视觉;portfolio 与 game 可以使用已有真实项目图片,并通过 position 设置焦点:

{
  "portfolio": { "image": "assets/images/sword-of-words/room-selection.png", "position": "50% 46%" },
  "game": { "image": "assets/images/sword-of-words/combat-room.png", "position": "50% 48%" }
}

position 的第一个百分比控制左右焦点,第二个控制上下焦点。framework、journal 和 engineering 的旧 cover 配置只保留兼容数据,不再拥有对应项目首屏。

  1. 运行 npm run build。构建会检查项目图片并重建页面,同时在 ignored .generated/social/ 生成每个页面独立的 1200×630 PNG 分享图;npm run package:site 再将它们映射到 Pages artifact 的稳定 /assets/social/ URL。不要手工编辑生成目录,也不要填写本机绝对路径或私有仓库地址。

研究记录同步

同步采用由 Journal main 推送触发的公开导出包,个人站不克隆或读取私有 Journal。 需要在本地复现时,先在 Journal 生成导出目录,再导入本站:

npm run journal:import -- --input /path/to/public-export
npm run journal:check -- --input /path/to/public-export

策展白名单位于 config/journal-curation.json。游戏设计与框架审计只发布摘要。 Journal 的 blogs/publication.v1.json 是文章进入公开导出和个人站发布的授权边界。导入器会在 同一次操作中收敛 config/blog-publication.json:既有条目保留站点侧 status、语义 slug 和 publishedAt,从固定导出刷新其余 Journal-owned 元数据;新的语义 ID 默认以该 ID 作为 slug, 并以来源更新时间作为首次发布日期。新 ASCII 标签也会同步进入 taxonomy,既有标签和系列文案不被覆盖。

重复 ID、正文哈希不一致、危险内容、非语义 hash ID、未知系列或正文草稿标记仍会失败关闭。 当前公开导出中已移除的来源会同步移出站点出版投影;新系列需要站点维护者提供可读的语义 slug 和说明,导入器不会猜测公开栏目名称。 reviewedJournalCurationHash 只覆盖人工策展的项目文案、知识流和 featured notes,不把每次自动 同步的 publication 数量伪装成人工复审。

导入器同时检查提交 SHA、数量、正文哈希、危险 HTML、本机路径和凭据模式。

Gitea 到 GitHub 的密钥配置、路径所有权和冲突处理见 docs/maintenance/journal-sync.md。

Consumer Lab 同步

Consumer Lab 当前包含 7 个 Consumer Lab 案例:4 个仓库启用 source-push。

启用 source-push 的消费者仓库会在 main 推送时从固定提交生成脱敏技术投影,并由站点导入器更新 data/consumer-lab.json。源仓只能同步提交、Framework/Unity 版本、包集合和通过计数;项目类型、 摘要与四条核心系统仍由本站策展,且 owner-only 注册表不会打进 Pages artifact。

本地可用以下命令复现单个消费者投影:

npm run consumer:export -- --source /path/to/consumer --commit <consumer-sha> --output /tmp/consumer.json
npm run consumer:import -- --input /tmp/consumer.json
npm run consumer:check -- --input /tmp/consumer.json

证据新鲜度、包集合复核、Runner Secret 与并发冲突策略见 docs/maintenance/consumer-lab-sync.md。

Iris Engineering 同步

Iris Engineering main 的每次更新都会由源仓 workflow 从 exact event commit 生成 closed、脱敏导出;本站 importer 验证 manifest hash/bytes、fixed checkout HEAD 和 ancestry 后,原子更新 owner-only provenance 与公开 Engineering snapshot,再由既有 generator 重建首页、Engineering 页和 Portfolio 页。

本地复现:

npm run engineering:import -- \
  --input /absolute/path/to/iris-public-export \
  --source-repository /absolute/path/to/fixed-iris-checkout
npm run engineering:check -- \
  --input /absolute/path/to/iris-public-export \
  --source-repository /absolute/path/to/fixed-iris-checkout

站点只允许同步修改 config/iris-engineering-sync.json、data/iris-engineering.json、index.html、pages/engineering.html 和 pages/portfolio.html。source SHA 不进入公开 data/HTML/Pages;同提交篡改、旧提交、旁支、额外文件或范围扩张都会失败关闭。Secret、Runner 与首次真实运行见 docs/maintenance/iris-engineering-sync.md,不能由本地通过推断为已启用。

发布流程

.github/workflows/site-quality-and-pages.yml 在推送和 PR 时执行构建、测试、浏览器冒烟测试与生成状态检查。main 验证通过后,工作流只把 _site/ 作为 GitHub Pages artifact 发布。

内容真实性原则

  • 规模不等于成熟度;Framework 页面必须同时展示生命周期;
  • 原型不等于正式发布;没有 Demo、视频或平台证据时明确标注缺口;
  • 私有研究只发布经过策展的摘要;博客必须先通过安全导出,再在站点出版合同中明确批准;
  • 联系入口必须真实可访问;
  • 新的公共声明需要对应数据、页面证据或验证记录。

许可证与素材

代码以 ISC License 发布。项目截图和站点视觉素材的版权归 IrisSakura 所有,除非文件旁另有说明;许可证不自动授予这些素材的再发布权。

六个花卉项目

Iris Engineering、SakuraGameFramework、Myosotis、Violet Shelf、Freesia Mods 与 Wisteria 使用统一登记的 Six Flower Personas V2 人物素材。公开入口由站点生成器维护;创作者身份与各游戏作品保留各自视觉。

维护说明:Persona V2 调查、迁移映射。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages