chore: sync marketing pages, CMS extensions, tests and project docs

同步工作区剩余变更,主要包括:
- 营销页面组件与布局持续优化(about/news/services/solutions/team 等)
- 详情页四层叙事组件、布局组件、UI 组件调整
- CMS 数据模型、API 路由、权限、工作流、站内通知、媒体管理扩展
- 新增/补充单元测试与 E2E 测试(cms-workflow.spec.ts 等)
- ESLint 9 迁移、jest/tsconfig 配置更新、依赖调整
- 新增 ADR、CMS 评估文档、Release Review / Acceptance 报告
- 移除水墨装饰组件与大体积未使用字体文件
This commit is contained in:
张翔
2026-07-25 08:04:01 +08:00
parent e35090b914
commit 10404dbb36
208 changed files with 18107 additions and 8330 deletions
+1 -4
View File
@@ -111,7 +111,6 @@ test.describe('性能 - 资源优化', () => {
const imageAnalysis = await page.evaluate(() => {
const images = Array.from(document.querySelectorAll('img'));
let totalSize = 0;
let optimizedCount = 0;
let largeImages = 0;
@@ -244,7 +243,6 @@ test.describe('可访问性 - WCAG 2.1 AA 合规', () => {
inputs.forEach(input => {
const id = input.id;
const ariaLabel = input.getAttribute('aria-label');
const ariaLabelledBy = input.getAttribute('aria-labelledby');
// 检查是否有显式 label
let hasLabel = false;
@@ -308,7 +306,6 @@ test.describe('可访问性 - WCAG 2.1 AA 合规', () => {
elementsWithAria.forEach(el => {
const role = el.getAttribute('role');
const ariaLabel = el.getAttribute('aria-label');
// 如果有 role,应该有相应的语义
if (role) {
@@ -503,7 +500,7 @@ test.describe('SEO - 元数据完整性', () => {
try {
JSON.parse(content!); // 应该是有效的JSON
} catch (e) {
} catch {
throw new Error(`Invalid JSON-LD at index ${i}`);
}
}