diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js b/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js
index 02b681f..19d7018 100644
--- a/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js
+++ b/project/短视频脚本创作/V1.0/mcn-work-shop/public/data-pages.js
@@ -1229,14 +1229,6 @@ function svgCut(text, maxU) { /* 超宽截断加省略号 */
const s = String(text || '');
return _uLen(s) <= maxU ? s : (svgWrap(s, maxU - 1)[0] + '…');
}
-/* —— 配色:按拆解文本情绪调性选 深色系/浅色系(复用 F6 配色规范;赛道标签歧义时以情绪锚点为准) —— */
-function vkPalette(analysis) {
- const blob = ['赛道', '账号核心定位', '内容核心', '内容风格', '可复用的爆款内容体系'].map((k) => String((analysis || {})[k] || '')).join(' ');
- const deep = /深沉|催泪|怀旧|忧郁|厚重|悲情|救赎|泪目|旧时光|岁月|思念|遗憾|守护/.test(blob);
- const light = /明快|欢乐|治愈|解压|暖心|温馨|可爱|元气|清新|甜蜜|宠溺|搞笑|积极/.test(blob);
- /* 深色词命中 → 深色系(如催泪向治愈);否则浅色系(默认) */
- return deep && !light ? 'deep' : 'light';
-}
/* 抽取拆解为「关键信息模块数据」→ [{ title, kind:'kv', rows:[[k,v]...] } | { title, kind:'blocks', blocks:[[b, [[k,v]...]]] }](无内容模块不返回) */
function vkCollect(analysis) {
if (!analysis || typeof analysis !== 'object') return [];
@@ -1290,23 +1282,18 @@ function vkCollect(analysis) {
}
/* SVG 生成器:analysis=拆解 dict,vt=视频标题(含话题标签原样,卡内自行清理),acc=账号名。
排版模型:全宽 680,白色画布(用户定稿:白底简洁版,非账号设定卡式渐变大底),头部标题框 520×170,
- 其下逐模块排版——模块标题(accent 色书写)→ 浅 tint 圆角内容卡;深/浅调性只作用于 accent 与卡片 tint。
+ 其下逐模块排版——模块标题(棕红 accent 书写)→ 米色圆角内容板块(#FAEEDA,参照账号设定卡内容板块规范,09-04 去粉红定稿)。
文本折行按「全角单位」计算:中文 1u≈字号宽、ASCII 0.55u;行 y 均为 text 基线,行高按字号 + 视觉间距直接给出(无字符串后处理)。 */
function renderVideoKeySvg(analysis, vt, acc) {
const D = vkCollect(analysis);
if (!D || !D.mods || !D.mods.length) return '';
- const deep = vkPalette(analysis) === 'deep';
- /* 色板:白底 + tint 卡;deep=暖米棕红系(深沉向)/ light=粉白玫瑰金系(明快向) */
- const P = deep ? {
- bgA: '#FFFFFF', bgB: '#FFFFFF', /* 纯白底(09-04 用户定稿) */
- box: '#FBF3E7', boxBd: '#EBD9BC', boxTitle: '#7B2D1B', boxText: '#6A5644', boxTag: '#C13B2F',
- headBox: '#FBF3E7', headBd: '#EBD9BC', headTitleA: '#8C2F1E', headTitleB: '#C05A32', headSub: '#C13B2F', headDim: '#A08B76',
- secTitle: '#8C2F1E', deco: '#EBD9BC',
- } : {
- bgA: '#FFFFFF', bgB: '#FFFFFF',
- box: '#FDF1F5', boxBd: '#F0D3E0', boxTitle: '#A13D6B', boxText: '#6E4A5C', boxTag: '#D84A8A',
- headBox: '#FDF1F5', headBd: '#F0D3E0', headTitleA: '#B03E76', headTitleB: '#E0579A', headSub: '#D84A8A', headDim: '#B193A5',
- secTitle: '#A13D6B', deco: '#F0D3E0',
+ /* 色板(09-04 用户定稿:统一参照账号设定卡米色系——旧梦留声机账号卡内容板块 #FAEEDA,去掉粉色系);
+ 纯白底 + 米色内容板块 + 暖棕文字 + 棕红 accent(与 F6 账号设定卡 deep 系规范一致) */
+ const P = {
+ bgA: '#FFFFFF', bgB: '#FFFFFF', /* 纯白底 */
+ box: '#FAEEDA', boxBd: '#EDCBA4', boxTitle: '#7B2D1B', boxText: '#6F5B4A', boxTag: '#C13B2F',
+ headBox: '#FAEEDA', headBd: '#EDCBA4', headTitleA: '#8C2F1E', headTitleB: '#C05A32', headSub: '#8C2F1E', headDim: '#A88770',
+ secTitle: '#8C2F1E', deco: '#EDCBA4',
};
const W = 680, LX = 40, CW = W - LX * 2; /* 内容区:x 40,宽 600 */
const X = (u) => Math.max(4, Math.floor(u)); /* 全角单位 → 字数 */
@@ -1326,7 +1313,7 @@ function renderVideoKeySvg(analysis, vt, acc) {
const tl = svgWrap(titleRaw, 20).slice(0, 2); /* 主标题最多 2 行,每行 ≤20 全角字 */
const tlMore = svgWrap(titleRaw, 20).length > 2;
const ty = tl.length === 2 ? headY0 + 52 : headY0 + 84;
- tl.forEach((ln, i) => { T(340, ty + i * 32, (i === 1 && tlMore) ? ln + '…' : ln, 21, `url(#vkT${deep ? 'D' : 'L'})`, 700, 'middle'); });
+ tl.forEach((ln, i) => { T(340, ty + i * 32, (i === 1 && tlMore) ? ln + '…' : ln, 21, 'url(#vkT)', 700, 'middle'); });
T(340, headY0 + 146, '视频拆解 · 关键信息', 11, P.headSub, 600, 'middle');
T(340, headY0 + 162, `${acc ? acc + ' · ' : ''}赛道:${D.track || '未知'}`, 9.5, P.headDim, null, 'middle');
@@ -1418,7 +1405,7 @@ function renderVideoKeySvg(analysis, vt, acc) {
-
+
diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html b/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html
index cda5f1b..160504b 100644
--- a/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html
+++ b/project/短视频脚本创作/V1.0/mcn-work-shop/public/index.html
@@ -43,6 +43,6 @@
-
+