Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 96d8e119ed | |||
| 8d475087d2 |
@@ -1,5 +1,32 @@
|
||||
# 历史分支处置登记
|
||||
|
||||
## `feature/seo-geo-universal`
|
||||
|
||||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||||
|
||||
审计日期:2026-09-16
|
||||
分支 HEAD:`357e26ab`
|
||||
`main` 对应提交:`8d475087`(含 `fix/wechat-draft-test-fixture` 发布阻断修复)
|
||||
|
||||
### 交付内容
|
||||
|
||||
- 落盘/交付自动补齐 `mindspace-geo`(Finish sync、delivery writeBack、health-report)
|
||||
- 全页面 SEO/GEO 回填工具链、`storage publications` 扫描、143 生产回填脚本
|
||||
- Plaza/平台静态页 SEO 注入与统一审计
|
||||
|
||||
### 验证摘要
|
||||
|
||||
- `npm run verify:seo-geo`:46 项通过
|
||||
- `npm run verify:mindspace-publish-guards`:ok
|
||||
- 143 存量回填:2683 页,0 错误 / 0 警告
|
||||
- 103 快速发布:`20260916-103611-8d475087`(Portal 8081 健康 200)
|
||||
|
||||
### 最终处置
|
||||
|
||||
- 保留本地分支名仅用于审计追溯。
|
||||
- 不要从该分支继续开发、merge、cherry-pick 或构建 runtime/artifact。
|
||||
- 发布依据使用 `main` @ `8d475087`(或后续从 `main` 打出的 runtime manifest)。
|
||||
|
||||
## `feature/learn-standalone-pages`
|
||||
|
||||
**状态:禁止再次引用。改动已提交并进入 `main`,该分支保留仅用于只读追溯,不是待合并开发分支。**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import fs from 'node:fs';
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
@@ -196,12 +197,20 @@ test('convertRichMindSpacePageHtmlToWechatArticle extracts blog and startup temp
|
||||
});
|
||||
|
||||
test('collectPageImageCandidates adds sidecar thumbnail when hero image missing', () => {
|
||||
const publishDir = path.join(process.cwd(), 'MindSpace', '1c99b83b-0454-474f-a5d2-129d34506a32');
|
||||
const html = fs.readFileSync(path.join(publishDir, 'public/qiuting-xiaoxi.html'), 'utf8');
|
||||
const candidates = mindspaceWechatPageDraftInternals.collectPageImageCandidates(html, {
|
||||
publishDir,
|
||||
htmlRelativePath: 'public/qiuting-xiaoxi.html',
|
||||
});
|
||||
const publishDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mindspace-wechat-draft-'));
|
||||
const htmlRelativePath = 'public/no-hero-page.html';
|
||||
const htmlPath = path.join(publishDir, htmlRelativePath);
|
||||
fs.mkdirSync(path.dirname(htmlPath), { recursive: true });
|
||||
fs.writeFileSync(
|
||||
htmlPath,
|
||||
'<!doctype html><html><head><title>无封面页</title></head><body><h1>无封面页</h1><p>正文</p></body></html>',
|
||||
'utf8',
|
||||
);
|
||||
fs.writeFileSync(htmlPath.replace(/\.html$/i, '.thumbnail.png'), Buffer.from('png'), 'utf8');
|
||||
const candidates = mindspaceWechatPageDraftInternals.collectPageImageCandidates(
|
||||
fs.readFileSync(htmlPath, 'utf8'),
|
||||
{ publishDir, htmlRelativePath },
|
||||
);
|
||||
assert.ok(candidates.some((item) => /\.thumbnail\.(png|svg)$/i.test(item.ref ?? '')));
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user