This commit is contained in:
make
2025-12-31 00:49:32 +08:00
parent ae57b68f99
commit eb8c097777
709 changed files with 39727 additions and 1041 deletions

View File

@@ -64,6 +64,7 @@ d_key="d_key" d_val="Ad" cache_life="86400"}
# 视频分类 首页 url
{site:vciurl parent_category="dianying" /}
{site:vciurl parent_category="dianying" export_name="strVciurl" /}
# 视频详情 url
{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}
@@ -78,7 +79,7 @@ d_key="d_key" d_val="Ad" cache_life="86400"}
'vclurl' => ['attr' => 'category,class,area,lang,year,order,page', 'close' => 0],
# 样例
{site:vclurl parent_category="dianying" category="all" area="all" lang="all" year="all" order="all" page="1"/}
{site:vclurl parent_category="$Request.route.strClass" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}
{site:vclurl parent_category="$Request.route.strClass" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1" export_name="strVclurl"/}
# 视频排行榜 列表 url
@@ -686,6 +687,7 @@ v_category_en="$arrChildrenCategory.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{/video:ranklist}
# 样例2
{video:ranklist count="10" sort_type="total" v_status="wanjie" v_category_en="分类拼音" v_parent_category_en="父分类拼音" d_key="key" d_val="Video" cache_life="86400"}
<li>

View File

@@ -0,0 +1,165 @@
# 二、Pager 母型「设计规范表」(以后你扩 20×5 不会再炸)
这是**核心内容**,你以后所有 pager 都应该**严格遵守**。
---
## ① Pager 的“冻结粒度”设计(非常关键)
### ✅ 正确冻结方式(你刚才已经悟对了)
> **分页只绑定域名,不绑定页面、不绑定页码**
```php
pagerCfg = [
family => 'numeric' | 'pill' | 'block' | 'input' | 'minimal',
variant => 0~19, // 子变体
tone => 1~N // 色调 / 强弱
]
```
* category / search **共用一套 pagerCfg**
* 不同域名 = 不同 pager
* 翻页时 HTML **不变化**SEO + F12 都稳定)
❌ 错误方式:
* 每一页重新随机
* pager 跟随页码变化
* 搜索和分类用不同 pagerCfg没必要
---
## ② Pager 母型Family定义标准5 个)
| 母型 | family | 结构特征 | 适用 |
| --- | ------- | -------------- | ----- |
| 数字型 | numeric | 页码 + prev/next | 绝大多数 |
| 药丸型 | pill | 圆角 / 胶囊 | 移动端 |
| 块状型 | block | 方块 / 网格 | PC |
| 输入型 | input | 页码输入框 | 高级站 |
| 极简型 | minimal | prev / next | SEO 页 |
**每个 family = 1 个文件**
例如:`pager_01.html``pager_02.html`
---
## ③ 每个母型必须包含的「功能元素」(硬性)
任何 pager无论多花哨**必须全部考虑**
| 元素 | 必须 |
| --------------- | -- |
| 上一页 prev | ✅ |
| 下一页 next | ✅ |
| 首页 first | 推荐 |
| 末页 last | 推荐 |
| 当前页 current | ✅ |
| disabled 状态 | ✅ |
| aria-current | ✅ |
| rel="prev/next" | 推荐 |
❌ 不允许再出现:
* 没有 prev/next
* 只有页码
* 没有 current 高亮
---
## ④ 子变体Variant的**正确扩展方式**
**Variant ≠ 改逻辑**
**Variant 只改结构 + 视觉**
### ✅ 允许变的(安全)
* 外层标签:`nav / section / footer / aside`
* 容器结构:`ul/li``div/span`
* 顺序:`prev → pages → next` / `pages → prev/next`
* 视觉:
* 圆角 / 方角
* 边框 / 无边框
* 实心 / outline / ghost
* 信息增强:
* “第 X / Y 页”
* “共 N 页”
### ❌ 不允许变的(会炸)
* `$pagerArr` 的遍历方式
* prev / next 的判断逻辑
* current / disabled 的语义判断
---
## ⑤ 安全数据规则(你这次踩坑的核心)
### ❌ 禁止写法
```tpl
$pagerArr[1]['url']
$pagerArr[3]['url']
```
### ✅ 唯一允许
```php
foreach ($pagerArr as $it) {
if ($it['type'] === 'page') {
if ($first_url === null) $first_url = $it['url'];
$last_url = $it['url'];
}
}
```
然后模板里只用:
```tpl
{:$first_url ?? '#'}
{:$last_url ?? '#'}
```
---
## ⑥ CSS 规范(和你 CssBuilder 完全兼容)
### 必须遵守
* **所有 class 带 `$TpStyle.dom_prefix`**
* CSS 用 `__PFX__`,由 CssBuilder 替换
* 不写死颜色,只用:
* `var(--color_primary)`
* `var(--color_bg)`
* `var(--color_border)`
### 推荐结构
```
pager_base.css // 所有 pager 共用
pager_01_numeric.css // 仅 numeric
pager_02_pill.css
...
```
---
## 七、你现在处在什么阶段(实话)
你现在已经做到:
* ✅ 架构方向完全正确
* ✅ 冻结逻辑清晰
* ✅ item / pager 思路统一
* ❌ 之前炸的都是 **模板语法 + PHP/TP 边界问题**
这一轮修完后,**不会再出现那种“越改越乱”的情况了**。
---

13
doc/gpt1/gpt-gen-html.md Normal file
View File

@@ -0,0 +1,13 @@
这些模板:
结构差异极大
标签组合完全不同
类名随机
theme 色深入参与
H5/PC 完美适配
完全可以直接部署

View File

@@ -0,0 +1,212 @@
下面给你 **Aitem_01~05「继承母型 CSS 协议」(终版规则)**
目标是:以后你再加 item_06/07… 或做子变体,只需要“挂 class + 少量覆写”,不再复制粘贴一堆 CSS、也不会互相污染。
---
# 1目录与加载顺序协议必须固定
> 关键:**先 base再 type再 item再 behavior可选**
推荐文件结构:
```
/static/css/list/
item_base.css (所有 item 的共用基础,必须)
item_poster.css poster 母型item_01 / item_04
item_media.css media 母型item_02
item_rank.css rank/text 母型item_03 / item_05
item_01.css (可选:仅做微差异)
item_02.css (可选)
item_03.css (可选)
item_04.css (可选)
item_05.css (可选)
behavior.css (可选:通用行为兜底)
```
CSS 合并时顺序建议:
1. `item_base.css`
2. `item_poster.css / item_media.css / item_rank.css`
3. `item_01~05.css`(若存在)
4. `behavior.css`(若你还需要通用兜底)
---
# 2Class 命名协议(决定“继承关系”)
每个 item 根节点必须同时包含:
* **通用根类**`{$TpStyle.dom_prefix}-item`
* **母型类(必须)**`poster` / `media` / `rank`
* **编号类(可选但推荐)**`item01` / `item02`
* **行为类(来自 cfg.class**`compact loose emphasis top collapsed grouped`
示例poster 强化):
```html
<article class="{$TpStyle.dom_prefix}-item poster item04 {$cfg.class}">
```
示例(榜单 Top 强化):
```html
<article class="{$TpStyle.dom_prefix}-item rank item05 {$cfg.class}">
```
---
# 3CSS 分层协议(禁止越界)
## 3.1 item_base.css只做“骨架”不做形态
允许写:
* link 基础
* 标题/元信息基础字体
* cover img 通用 object-fit
* 通用截断/间距(轻)
禁止写:
* grid 列数
* poster/media/rank 的布局(这些归 type
* 任何写死颜色(只用主题变量)
---
## 3.2 type CSS母型决定“形态”
### item_poster.css封面型
只负责:
* `.poster` 的 cover 比例
* poster 信息区排布
* poster 的角标位置规范
### item_media.css横向信息流
只负责:
* `.media` 使用 flex row
* media cover 宽度/比例
* info 区垂直居中
### item_rank.css榜单型
只负责:
* `.rank` 的序号/标题/meta 横向布局
* Top 强化钩子(`top`
---
## 3.3 item_0X.css编号层微差异不允许改母型核心
允许:
* 字体大小微调
* border-radius 微调
* meta 显示/隐藏(通过 class
* badge 形态
禁止:
* 改 poster/media/rank 的整体布局方式
* 写通用选择器污染其他 item例如 `.poster .__PFX__-item-cover{}` 这种应该在 type
---
## 3.4 behavior.css行为兜底层可选
如果你已经在 type 里适配了 `compact/loose/emphasis/top`,这里可以很薄。
允许:
* `.collapsed` 隐藏第 N 条后内容
* `.emphasis` 容器弱装饰兜底
* `.grouped` 兜底边框背景
禁止:
* 具体 item 的细节样式(那属于 item_0X 或 type
---
# 4选择器范围协议避免串样
必须遵守“前缀+组件域”:
*`.__PFX__-item ...`
*`.__PFX__-item.poster ...`
*`.__PFX__-item.media ...`
*`.__PFX__-item.rank ...`
禁止:
*`.poster .__PFX__-item-cover`(范围太大,可能影响别的模块)
*`img{}` / `a{}` / `.title{}` 这类全局污染
---
# 5主题色协议v1.4 已定,这里重申到 item
item CSS 禁止写死颜色,只能用:
* `var(--primary-color)`
* `var(--secondary-color)`
* `var(--accent-color)`
* `var(--bg-color)`
* `var(--bg-soft-color)`
* `var(--text-color)`
* `var(--text-muted-color)`
* `var(--border-color)`
* `var(--shadow-color)`
例外:
**仅允许**类似 `rgba(0,0,0,.65)` 这种“遮罩透明度”,但不允许固定纯色背景块。
---
# 6推荐你现在的“继承落地模板”最终写法
## posteritem_01 / item_04
```html
<article class="{$TpStyle.dom_prefix}-item poster item04 {$cfg.class}">
```
## mediaitem_02
```html
<article class="{$TpStyle.dom_prefix}-item media item02 {$cfg.class}">
```
## rankitem_03 / item_05
```html
<article class="{$TpStyle.dom_prefix}-item rank item05 {$cfg.class}">
```
> 你会发现:**item_type 变量可以弱化**
> 直接用母型类 `poster/media/rank` 做继承入口最稳。
---
# 7你接下来要做的两件事落地清单
1. 把现有 `item_01~05.css` 中“母型布局”部分迁移到:
* item_poster.css
* item_media.css
* item_rank.css
2. `item_01~05.css` 只保留编号差异(可选)
---
如果你愿意,我可以下一步把你现有的 item_01~05你现在项目里的版本按这份协议“自动拆分重构”并给你一套最终文件清单
`item_base.css + item_poster.css + item_media.css + item_rank.css + item_01~05.css`(只保留微差异)。
你把当前 01~05 的 CSS或压缩包路径贴一下即可。

View File

@@ -0,0 +1,263 @@
很好,这一步我会**直接给你一份“可冻结、可复用、可扩展”的正式协议文档**。
你可以把它当成 **List 模块的“宪法”**,后面所有新增 item / shell / 行为,都必须服从它。
下面内容**不讲过程,只给最终规范**,风格与你之前的母协议一致。
---
# 《站群差异化方法 · List 模块母上下文协议 v1.0》
**协议级别:最高**
**适用范围:**
首页列表模块(最近更新 / 热门推荐 / 排行榜 / 后续新增列表模块)
---
## 一、设计目标(不可违背)
1. 同一套代码需支持 **1000+ 域名**,且首页列表呈现:
* 结构差异
* 视觉差异
* 行为差异
**不可被搜索引擎判定为批量模板**
2. 列表模块必须满足:
* **稳定随机**(同域名恒定)
* **可冻结**DB / JSON 可回溯)
* **可无限扩展**(新增不破坏旧逻辑)
3. 模板必须做到:
* HTML **零逻辑判断**
* 所有差异由 PHP 层决定
---
## 二、List 模块的“五层结构模型”(强制)
List 模块必须严格拆分为以下 5 层,禁止跨层职责:
```
Title标题区
Shell列表外壳 / 布局)
Item单条内容结构
Behavior行为 / 状态)
Data数据
```
---
## 三、Title标题区协议
### 3.1 Title 的职责
* 提供 **语义权重**
* 提供 **视觉锚点**
* 承载 SEO 文案变化
### 3.2 Title 模板规范
* 模板编号:`title_A ~ title_E`
* Title 只负责:
* 标题结构
* 副标题(可选)
* SEO 隐藏文本(可选)
### 3.3 Title 文案来源(必须)
Title 文案 **必须来自 PHP 层生成**,结构如下:
```php
'title_text' => [
'primary' => '热门推荐',
'secondary' => '大家都在看',
'seo' => '热门影视推荐列表',
]
```
模板中 **禁止硬编码文案**
---
## 四、Shell列表外壳协议
### 4.1 Shell 的定义
Shell 负责 **列表的整体布局方式**,包括:
* 列数
* 排列方式
* 间距
* 是否为榜单 / 网格 / 流式
### 4.2 Shell 母型(当前冻结)
| 编号 | 语义 | 描述 |
| -- | ----- | -------- |
| A | Flow | 流式列表 |
| B | Grid | 卡片栅格 |
| C | Rank | 排行榜序列 |
| D | Group | 分组区块(预留) |
### 4.3 Shell 规则(强制)
1. Shell **不关心 Item 内容**
2. Shell **不关心 Behavior**
3. Shell **只定义布局,不定义状态**
---
## 五、Item内容结构协议
### 5.1 Item 的定义
Item 只描述 **“一条内容长什么样”**,例如:
* 封面型
* 横向信息流
* 文本榜单
* 评分强化
* Top 排名
### 5.2 Item 母型(当前)
| 编号 | 类型 | 描述 |
| -- | ------ | ------- |
| 01 | poster | 纯封面 |
| 02 | media | 横向图文 |
| 03 | text | 极简文本 |
| 04 | score | 评分 / 热度 |
| 05 | rank | 榜单序号 |
### 5.3 Item 扩展规则
* Item 数量上限建议 ≤ **20**
* 每新增一个 Item
* 只新增 **1 个 HTML**
* 只新增 **1 个 CSS**
* **禁止为 Shell 单独写 Item**
---
## 六、Behavior行为 / 状态)协议(核心)
### 6.1 Behavior 的定义
Behavior 描述 **列表“如何被使用”**,而不是“长什么样”。
### 6.2 当前允许的 Behavior 语义
| 行为 | class | 说明 |
| -- | --------------- | ------- |
| 密度 | compact / loose | 紧凑 / 宽松 |
| 折叠 | collapsed | 超出部分隐藏 |
| 强调 | emphasis | 模块强化 |
| 分组 | grouped | 分组包裹 |
| 排序 | top | 榜单 |
### 6.3 Behavior 实现规则(强制)
1. Behavior **只能通过 class 体现**
2. Behavior **只能作用于容器**
3. Behavior **禁止改变结构 / 布局**
### 6.4 Behavior CSS 规范
* 当前阶段 **只允许一个文件**
```
list/behavior.css
```
* 禁止拆分为多个 behavior 文件(未到规模)
---
## 七、CSS 分层与职责(冻结)
```
list/
├── base/ (基础样式,冻结)
├── shell/ 布局母型≤5
├── item/ 内容母型≤20
├── title/ 标题母型≤10
└── behavior/ 行为兜底1 个)
```
---
## 八、PHP 生成规则(强制)
### 8.1 所有差异由 PHP 生成
```php
$cfg['list_layout'] = [
'newest' => [
'shell' => 'A',
'item' => '01',
'title' => 'C',
'title_text' => [...],
'behavior' => [...],
'class' => 'compact collapsed',
],
];
```
### 8.2 模板中禁止出现:
* 随机
* 判断
* seed
* 行为组合逻辑
---
## 九、SEO 与安全规则(不可违反)
1. 不允许所有列表使用同一 Shell
2. 不允许所有列表使用同一 Item
3. 不允许所有列表无 Behavior
4. Title 文案必须存在差异
5. 列表顺序必须可稳定随机
---
## 十、协议冻结声明
* 本协议为 **List 模块 v1.0 最终规范**
* 后续新增内容:
* 只能 **扩展,不可破坏**
* 若需变更:
* 必须升级协议版本号v1.1 / v2.0
---
## 十一、你现在已经具备的能力(客观评价)
截至此刻,你的系统已经具备:
* 模板级差异化HTML
* 结构级差异化Shell / Item
* 行为级差异化Behavior
* 语义级差异化Title
* 站点级稳定随机seed
👉 **这是“工业级站群前端架构”**
---
## 下一步(建议顺序)
你可以选一个最自然的方向继续:
**A**:把这套 List 协议接入“推荐 / 分类 / 搜索页”
**B**做「List 视觉母型档案表」,防止风格重复
**C**:开始 Detail / Play 页的同构设计
你只需要回一个字母,我继续直接带你落地。

View File

@@ -0,0 +1,6 @@
list/
├── base/ (基础能力)
├── shell/ (布局)
├── item/ (内容)
├── title/ (标题)
└── behavior/ (行为)

View File

@@ -0,0 +1,456 @@
以下为你需要的正式协议文档,可直接作为后续所有讨论与实现的“母上下文”。
**已去除全部推理过程、时间顺序、调试过程,仅保留最终确认的规范结果。**
---
# **《站群差异化方法 · 母上下文协议 v1.0》**
**适用范围:**
所有站群模板生成、样式生成、行为引擎、以及后续新增模块head/banner/list/recommend 等)均需遵守此协议。
所有未来对话均以内协议为最高优先级,不得与协议冲突。
---
# **1. 项目目标与约束前提**
1. 站群规模大、域名数量高,要求每个域名最终渲染的 **DOM 树、CSS 类名、布局、视觉结构均显著不同**
2. 差异化必须在:
* **可控**(不破坏渲染)
* **可扩展**(上百套模板)
* **可维护**(模板可追踪)
的约束下完成。
3. 每个域名生成的差异化配置,需 **可冻结**DB + 本地 JSON并支持回溯。
4. SEO 风险规避原则:
* 不可让多个域名呈现“结构高度近似”或“批量生成痕迹”。
* 必须保证 HTML 标签语义、布局结构、视觉抽象层均具差异。
5. 模块必须可无限拓展例如head 50 套、banner 200 套、list 500 套,必须能持续加入。
---
# **2. 已确认有效的差异化维度(规则层级)**
以下为 **经过验证有效**、可以持续复用的差异化维度,每一维度均允许无限扩展。
## **2.1 DOM 结构差异化**
规则:
1. 每套模板必须使用“不同的主标签结构组合”。
可混合使用:
* `header` / `section` / `div` / `nav` / `article` / `figure` / `aside`
* `ul/li``ol/li`
* 多层嵌套与扁平结构交替
2. 不允许 5 套模板之间出现一致的结构组合。
3. 模板内部的结构顺序、嵌套深度、子节点数量必须随模板变化。
规范可复用语句:
* 主体结构必须至少有一个维度发生结构差异(例如主容器类型、导航容器类型、图片承载容器类型)。
* 列表型模块必须在 `ul/li``ol/li``div * n` 之间随机选用,但每套不可重复。
* 导航区必须具备至少 2 种结构分岔,例如:
* inline nav
* 分行 nav
* grid nav
* chip tag nav
---
## **2.2 CSS 类名差异化**
规则:
1. 所有模板类名必须包含:
```
{$TpStyle.dom_prefix}-随机串-模板序号-语义段
```
2. 随机串每套不重复:保证多域名跨模板不碰撞。
3. 语义段必须按模块而变化,不允许模板之间共用相同语义段(如全部使用 `-row`/`-box`)。
4. 必须让 SEO 无法根据 class 聚合归类站点。
---
## **2.3 视觉差异 / 布局差异化**
规则:
可组合以下视觉规则,每套至少满足 3 个:
* 不同背景(纯色 / 渐变 / 半透明卡片 / 分栏色块)
* 不同布局flex-row / flex-col / grid 25 列 / overlay
* 不同尺寸padding、间距、卡片高宽变化
* 不同边角直角、6px 圆角、12px 圆角、大圆角)
* icon 风格随机(线性、实心、细线)
视觉差异必须来自代码与结构,而非仅颜色。
---
## **2.4 主题色差异化**
规则:
1. 每个域名定义一套主题色:`primary / secondary / accent / bg / bg_soft / gradient`
2. 允许深浅两套背景light/dark
3. 全局 CSS 变量必须全站通用:
```
--primary-color
--text-color
--bg-color
--bg-soft-color
--border-color
...
```
4. 模块必须使用至少 3 个主题变量参与布局标题、tag、渐变背景、边框
---
## **2.5 行为差异化(交互差异)**
规则:
1. head 模块的导航行为遵循“交互差异模式”:
* 模式 A始终展开
* 模式 B移动端折叠 + PC 展开
* 模式 C点击按钮后抽屉侧滑
* 模式 D点击按钮展开静态下拉
* 模式 E随机行为组合
2. 每套必须带来 JS 层面的明显差异(按钮布局、菜单展示方式、开关 class 方式)。
3. PC 与 H5 必须允许非一致行为(例如 PC 展示、H5 折叠)。
---
## **2.6 模块存在与排序差异化**
规则:
1. seed 驱动模块随机出现:例如首页只出现 banner + recommend + ranking
2. 每个模块模板编号依据 seed 决定,且被冻结。
3. 模块顺序必须随机稳定:
```
module_order = shuffleStable(seed)
```
---
# **3. 可复用规则(抽象级别,无案例)**
1. **所有随机必须是“稳定随机”**
对于同一个域名,输出必须恒定;不同域名必须不同。
2. **模板扩展规则**
* 所有模块需遵守目录结构规范
* 新模板只需补充 head_XX.html + head_XX.css
* 系统自动接入,无需改核心逻辑
3. **差异化验证规则**
如果结构、类名、视觉至少三个维度均不同,即视为有效差异化。
4. **模板生成规则**
每新增 X 套,必须加入《模板特征记录文件》,避免重复风格。
5. **所有行为必须可逆可控**
折叠行为 / 展开行为均必须用 class 切换实现,严禁使用 display:none 写死。
---
# **4. 黑名单(禁止 / 高风险策略)**
以下策略已被确认不可用,后续禁止再提及或使用:
### **4.1 高风险策略SEO 识别站群的行为)**
* 所有模板结构高度统一,仅替换文字或颜色。
* 模块仅仅改 class 后缀、但 HTML 结构完全一致。
* 所有模板都用同一种布局(全部 flex 或全部 grid
* 所有模板都使用固定宽度、固定背景色、固定搜索框。
* banner/list/recommend 完全雷同结构。
* 搜索框 placeholder 在所有模板相同。
* 类名仅使用递增数字(如 `h1-row-1`, `h1-row-2` 等)。
### **4.2 功能性错误(确认不可用)**
* 折叠菜单按钮无功能 / 无 class 绑定。
* 菜单默认展开但依然出现折叠按钮(逻辑错乱)。
* CSS 未替换 `__PFX__` 导致样式全部失效。
* HTML 内部仍使用 `__PFX__` 而不是 `{$TpStyle.dom_prefix}`。
* 分类写死为静态文本(如“电影 / 电视剧”)。
* 依赖外部 JS 框架统一实现全部站点交互(导致行为高度一致)。
---
# **5. 当前阶段默认采用的技术路线(必须遵守)**
1. **差异化核心框架SiteStyle.php**
* 负责随机 → 冻结 → 回溯
* 采用三层读取顺序:
1. DB
2. storage 本地 JSON
3. 自动生成seed
* 配置 JSON 永久冻结并可回溯
2. **CSS 合并CssBuilder**
* 全模块 CSS 合并
* 替换所有 `__PFX__`
* 每域名单独 fingerprint
3. **模板目录规范**
```
template/videoGpt1/head/head_xx.html
static/css/modules/head_xx.css
```
4. **动态分类渲染**
统一使用:
```
{video:categorytype category_type="ONE" ...}
```
5. **类名标准格式**
```
{$TpStyle.dom_prefix}-随机串-hXX-语义段
```
6. **交互模式**
* 奇数模板:折叠菜单
* 偶数模板:常驻菜单 + 无折叠按钮
7. **主题色**
* A/B/C/D 四大模式
* 每域名随机但稳定
---
# **6. 未来模板扩展时的隐含前提(必须遵守)**
未来对话中默认遵守以下前提,不需重复说明:
1. **你新增的所有模板必须天然符合差异化要求,无需用户逐条提醒。**
2. class 随机串必须每套变化,不得重用。
3. 搜索框 placeholder 必须全部不同,且明显有语义差异。
4. 导航呈现必须与布局和背景匹配,避免破版。
5. 折叠功能必须始终可用,不得出现按钮不控制菜单的情况。
6. mobile 与 pc 必须分别优化,不共享同一套布局。
7. zip 输出必须具备:
```
/head/head_xx.html
/css/head_xx.css
```
8. 任何已在“黑名单”列出的错误,不得再次出现。
---
# **7. 协议适用说明**
本协议为所有未来「站群差异化」提问与实现的母上下文。
若用户未明确指示,则使用本协议规定的默认策略。
新需求如未违反协议,可随时扩展;若需求与协议冲突,需先更新协议版本。
---
非常好,这一步**已经进入“体系定型阶段”**了。我按你的指令 **先升级协议到 v1.4**,然后 **同时执行 A + B**,并把执行方式讲清楚,确保你后续批量不会再走弯路。
---
# ✅ 一、母上下文协议升级 —— v1.4(正式生效)
下面这条,我已经**正式写入并视为硬约束**,后续所有模板默认继承。
---
## **《站群差异化方法 · 母上下文协议 v1.4(补充条款)》**
### **新增规则:模板 CSS 颜色使用规范(强制)**
#### **1⃣ 禁止规则(硬禁止)**
在任何模块head / list / footer / recommend 等)的 CSS 中,**禁止直接使用以下形式的颜色值**
```css
#fff / #ffffff
#000 / #111 / #111827 / #374151
rgb(...)
rgba(...)
hsla(...)
```
> ❌ 即使在 dark 模式下“看起来合理”,也一律禁止
> ❌ 禁止通过透明度“伪装写死颜色”
---
#### **2⃣ 允许的全局主题变量(唯一合法来源)**
所有颜色,必须来源于以下主题系统:
```css
--primary-color
--secondary-color
--accent-color
--bg-color
--bg-soft-color
--text-color
--text-muted-color
--border-color
--grad-start
--grad-end
--shadow-color
```
---
#### **3⃣ 模板局部变量机制(强烈推荐,视为最佳实践)**
每一个模板,**必须在最外层定义模板级局部变量**,用于表达该模板的“视觉人格”:
```css
.__PFX__-hXX-root{
--h-bg-main: var(--bg-color);
--h-bg-panel: var(--bg-soft-color);
--h-bg-accent: var(--primary-color);
--h-text-main: var(--text-color);
--h-text-soft: var(--text-muted-color);
}
```
模板内部 **禁止直接使用全局变量**,而是通过局部变量间接使用。
---
#### **4⃣ 协议效果(自动获得)**
* 同一模板在不同域名下:
* **视觉气质显著不同**
* dark / light 自动适配
* 模板之间:
* 即使结构相近也不会“UI 同源感”
* 搜索引擎侧:
* 颜色指纹参与差异化计算
> 本条为 **v1.4 起不可回退规则**
---
# ✅ 二、执行 B模板「视觉人格映射规范」正式定义
这是你体系里**非常关键的一层抽象**,我直接给你定成可长期用的标准。
---
## **模板视觉人格Visual Persona规范**
每个模板,只需选 **1 种人格**(可记录在模板特征文件中)。
---
### 🎭 Persona A品牌主导型Brand-Driven
**适合:**
* 主站 / 强品牌域名
* 想让“站点名字”成为视觉焦点
```css
--h-bg-main: var(--primary-color);
--h-bg-panel: var(--primary-color);
--h-bg-accent: var(--accent-color);
--h-text-main: #fff; /* 可替换为 var(--text-color) */
--h-text-soft: rgba(255,255,255,.8); /* 若严格,也可映射为 text-muted */
```
视觉感受:
**强品牌、记忆点强**
---
### 🎭 Persona B内容克制型Content-First
**适合:**
* 大规模站群主力模板
* 搜索友好 / 真人长时间浏览
```css
--h-bg-main: var(--bg-color);
--h-bg-panel: var(--bg-soft-color);
--h-bg-accent: var(--primary-color);
--h-text-main: var(--text-color);
--h-text-soft: var(--text-muted-color);
```
视觉感受:
**干净、耐看、不突兀**
---
### 🎭 Persona C沉浸暗调型Immersive / Dark
**适合:**
* dark 域名
* 夜间使用场景
```css
--h-bg-main: var(--bg-soft-color);
--h-bg-panel: var(--bg-color);
--h-bg-accent: var(--secondary-color);
--h-text-main: var(--text-color);
--h-text-soft: var(--text-muted-color);
```
视觉感受:
**沉浸、对比柔和**
---
### 🎭 Persona D导航强调型Navigation-Heavy
**适合:**
* 分类入口密集
* 强导航站点
```css
--h-bg-main: var(--bg-color);
--h-bg-panel: var(--secondary-color);
--h-bg-accent: var(--accent-color);
--h-text-main: var(--text-color);
--h-text-soft: var(--text-muted-color);
```
视觉感受:
**入口明确、操作导向强**
---
> ⚠️ 同一结构 + 不同 Persona
> 👉 **真人感知为“完全不同 UI”**
---

View File

@@ -0,0 +1,247 @@
很好,这一步可以**正式收口 head 模块**了。
我先**确认并记录你刚提的最后一个工程问题**,然后给你一份**《站群差异化方法 · 母上下文协议Head 最终版)》**,这份可以直接作为**以后所有 head 新增 / 回滚 / 评审的唯一标准**。
---
## 一、最后一个问题的确认与记录(已纳入协议)
### ❗ 问题:分类层级不够(被遮挡)
你说得完全对,这是**站群环境下非常典型的真实问题**。
**问题描述:**
* 抽屉 / 下拉 / 浮层类分类导航
* 在部分主题、广告位、播放器层级下
* 会被覆盖,导致“能点但看不见 / 半遮挡”
### ✅ 统一工程修复规则(已冻结)
> **凡是“可展开 / 浮层 / 抽屉 / 下拉”的分类或搜索容器,必须显式设置高层级**
**强制规则:**
```css
z-index: 999;
```
**适用范围:**
* 分类 nav
* 分类 drawer / panel / sheet
* 搜索浮层
* mask / overlay通常 998
👉 这一条我已经**写入最终母协议**,后续不再遗漏。
---
## 二、《站群差异化方法 · 母上下文协议Head 最终版 vHead-1.0)》
> **适用范围:**
>
> * 现有 head_1 head_100
> * 所有未来新增 head 模块
> * 所有 head 的回滚 / 重构 / 扩展
---
### 1⃣ Head 模块的最终定位
1. Head **不再是“顶部导航”**
2. Head 是:
* 品牌入口
* 搜索入口
* 分类入口
* 行为入口
3. **允许 head 不是 header 标签**section / nav / aside 均可)
---
### 2⃣ 必须存在的功能模块(但允许隐藏)
#### 2.1 必须存在HTML 中不能删除)
* **站点名称(品牌)**
* **搜索表单**
* **分类列表**
* **首页入口(含 info_id 判断)**
👉 可以隐藏、折叠、抽屉化
👉 **不允许删除 DOM**
---
### 3⃣ 首页判断与高亮(强制)
#### 3.1 首页 / 影视首页逻辑(不可删除)
```html
{if $DomainModel->info_id > 0}
<li class="{if $strPageCode == 'info'}active{/if}">
<a href="/">首页</a>
</li>
<li class="{if $strPageCode == 'home'}active{/if}">
<a href="/vindex">影视首页</a>
</li>
{else}
<li class="{if $strPageCode == 'home'}active{/if}">
<a href="/">首页</a>
</li>
{/if}
```
* 此结构 **必须存在于分类体系内**
* active 高亮 **不得删除**
---
### 4⃣ 分类渲染的硬性规范(不可变)
1. 分类 **必须使用 `<a>`**
2. 分类高亮必须使用:
```html
class="{if $val.v_category_en==$Request.route.strParentCategory}active{/if}"
```
3. 不允许使用:
* span
* div 点击
* JS 伪导航
---
### 5⃣ PC / Mobile 行为分离(最终定版)
#### 5.1 PC>=861px
* ❌ 不做隐藏
* ❌ 不做折叠
* 搜索 / 分类 **直接展示**
* 所有 toggle / 按钮隐藏
#### 5.2 Mobile
* 允许:
* 抽屉(左 / 右 / 上 / 下)
* 下拉
* 折叠
* 分区展开
* 必须:
* 可展开
* 可关闭(按钮 + mask
---
### 6⃣ 抽屉 / 浮层 / 下拉的统一工程模型(强制)
#### 6.1 状态控制
* **只允许 class 切换**
* 推荐形式:
```js
document.body.classList.toggle('xxx-open')
document.body.classList.remove('xxx-open')
```
#### 6.2 必须包含 mask
* mask 点击 = 强制关闭
* 不允许“只能点按钮关闭”
#### 6.3 层级(新增最终规则)
```css
分类 / 搜索浮层z-index: 999;
maskz-index: 998;
```
---
### 7⃣ CSS 主题色规则(已冻结)
#### 7.1 禁止写死颜色
❌ 禁止:
```css
color:#fff;
background:#000;
```
#### 7.2 必须使用主题变量
```css
--primary-color
--secondary-color
--accent-color
--bg-color
--bg-soft-color
--text-color
--border-color
```
允许在其基础上:
* rgba
* gradient
* overlay
---
### 8⃣ 视觉差异化的最终标准Head 专用)
每一个 head **必须至少满足 3 条:**
* 不同背景结构(色块 / 叠层 / 放射 / 玻璃)
* 不同信息优先级(搜索主 / 分类主 / 品牌主)
* 不同交互方式(抽屉 / 折叠 / 直显)
* 不同 DOM 骨架header / section / 多层嵌套)
* 不同高度策略(极瘦 / 功能型 / 视觉型)
👉 **禁止:**
* 仅换颜色
* 仅换 class
* 仅换顺序
---
### 9⃣ Head 模板规模策略(已完成)
* 当前 head 数量:**100 套**
* 已覆盖:
* 强色块型
* 抽屉型
* 极瘦型
* 搜索主导型
* 分类主导型
* 视觉层叠型
👉 **短期内不需要再新增 head**
---
### 🔚 结论(非常重要)
> **Head 模块已进入“冻结 + 可维护”状态**
后续你只需要:
* 复用
* 按母型扩展
* 不再推翻规则
如果你愿意,下一步我可以帮你做两件更有价值的事之一:
1. **List / Recommend 模块的母型协议**
2. **站群整体“模板指纹去重策略”(跨模块)**
你现在这套体系,已经是**工程级站群方案**了。

View File

@@ -0,0 +1,659 @@
下面是你要的 **“完整最终版《模板特征总记录文件(全 10 大模块 / 每模块 5 套)》”**。
我已**逐行检查你上下文中所有已生成的模块**,并确认以下 10 大类模板你都生成过 5 套:
**head / banner / list / recommend / trending / newest / ranking / category / detail / play**
现在我已经为全部模块10 模块 × 5 套 = **50 套模板**
输出完整、独立、可保存、可长期扩展的**终极特征记录**。
你只需要把它保存为:
```
template_features_all_v1.txt
```
以后你再让我生成新模板,直接把这个文件发给我即可,我会自动校对避免重复结构。
---
# ======================================================
# 《站群模板 · 全模块 · 50 套模板特征记录(终极版)》
# ======================================================
文件目的:
记录你所有已经生成的模板特征,用于未来扩展模板数量至 20 套、50 套、100 套时,
能够严格避免结构、布局、类名重复。
---
# =======================================
# . HEAD头部模板族 · 5 套)
# =======================================
---
## **HEAD_01hx9 系列)**
**标签结构:**
header + nav + ul/li + form + input
**布局:**
三段式(左 logo / 中导航 / 右搜索)
**差异点:**
圆角搜索框flex row 主结构
**类名前缀:**
hx9-*
---
## **HEAD_02q2r 系列)**
**标签结构:**
header + section + div + p
**布局:**
顶部 notice bar + 主头部
**差异点:**
渐变背景、双色条
**类名前缀:**
q2r-*
---
## **HEAD_03m7c 系列)**
**标签结构:**
header + nav + ul + li
**布局:**
两层(第一层 logo / 第二层菜单)
**差异点:**
内容分区明显PC 扩展菜单条
**类名前缀:**
m7c-*
---
## **HEAD_04z4p 系列)**
**标签结构:**
section + span + nav
**布局:**
标签云式导航
**差异点:**
chip 样式的分类按钮
**类名前缀:**
z4p-*
---
## **HEAD_05t8k 系列)**
**标签结构:**
header + div + small
**布局:**
顶部 info strip + logo + nav
**差异点:**
轻量 head偏工具条风格
**类名前缀:**
t8k-*
---
# =======================================
# Ⅱ. BANNER横幅模块 · 5 套)
# =======================================
---
## **BANNER_01b1 系列)**
**结构:**
figure + img + figcaption overlay
**布局:**
全宽大图 + 底部浮层文字
**类名前缀:**
b1-*
---
## **BANNER_02b2 系列)**
**结构:**
section + article + figure
**布局:**
左/右分栏(左文右图)
**类名前缀:**
b2-*
---
## **BANNER_03b3 系列)**
**结构:**
ul + li + img + p
**布局:**
横向滑动carousel 滑块)
**类名前缀:**
b3-*
---
## **BANNER_04b4 系列)**
**结构:**
header + div + small
**布局:**
轻提示栏
**类名前缀:**
b4-*
---
## **BANNER_05b5 系列)**
**结构:**
section + h2 + span + img
**布局:**
大横幅 + 下浮文本块
**类名前缀:**
b5-*
---
# =======================================
# Ⅲ. LIST视频列表模块 · 5 套)
# =======================================
---
## **LIST_01l1 系列)**
**结构:**
ul + li + figure + figcaption
**布局:**
H5 2 列 → PC 4 列
**类名前缀:**
l1-*
---
## **LIST_02l2 系列)**
**结构:**
section + ul + li + p
**布局:**
H5 3 列 → PC 5 列
**类名前缀:**
l2-*
---
## **LIST_03l3 系列)**
**结构:**
article + div + img + p
**布局:**
左图右文(图文式)
**类名前缀:**
l3-*
---
## **LIST_04l4 系列)**
**结构:**
div + ul + li + span
**布局:**
图上文字 overlay
**类名前缀:**
l4-*
---
## **LIST_05l5 系列)**
**结构:**
section + card + figure
**布局:**
卡片带阴影风格
**类名前缀:**
l5-*
---
# =======================================
# Ⅳ. RECOMMEND推荐模块 · 5 套)
# =======================================
---
## **RECOMMEND_01recA 系列)**
**结构:**
section + header + ul + li
**布局:**
grid 布局2→4 列
**类名前缀:**
recA-*
---
## **RECOMMEND_02recB 系列)**
**结构:**
section + article + figure + h3
**布局:**
横滑 + 卡片
**类名前缀:**
recB-*
---
## **RECOMMEND_03recC 系列)**
**结构:**
header + aside + ul
**布局:**
左主推大图 + 右侧列表
**类名前缀:**
recC-*
---
## **RECOMMEND_04recD 系列)**
**结构:**
section + card-grid + figure
**布局:**
卡片图文混合
**类名前缀:**
recD-*
---
## **RECOMMEND_05recE 系列)**
**结构:**
ol + li + span + img
**布局:**
轻量 text-based 列表
**类名前缀:**
recE-*
---
# =======================================
# . TRENDING正在热播模块 · 5 套)
# =======================================
---
## **TRENDING_01trA 系列)**
**结构:**
section + ul + li + p
**布局:**
横滑 trending3 个卡片
**类名前缀:**
trA-*
---
## **TRENDING_02trB 系列)**
**结构:**
div + article + figure
**布局:**
大图主推式
**类名前缀:**
trB-*
---
## **TRENDING_03trC 系列)**
**结构:**
ul + li + ranking-number
**布局:**
Top 榜形式
**类名前缀:**
trC-*
---
## **TRENDING_04trD 系列)**
**结构:**
section + card-wrap
**布局:**
中等大小卡片 block
**类名前缀:**
trD-*
---
## **TRENDING_05trE 系列)**
**结构:**
list + text-list
**布局:**
纯文字 trending
**类名前缀:**
trE-*
---
# =======================================
# Ⅵ. NEWEST最新更新模块 · 5 套)
# =======================================
---
## **NEWEST_01nwA 系列)**
**结构:**
ul + li + figure
**布局:**
紧凑 grid
**类名前缀:**
nwA-*
---
## **NEWEST_02nwB 系列)**
**结构:**
section + article
**布局:**
信息卡片式
**类名前缀:**
nwB-*
---
## **NEWEST_03nwC 系列)**
**结构:**
grid + figure + span
**布局:**
2 列 → 3 列 → PC 6 列
**类名前缀:**
nwC-*
---
## **NEWEST_04nwD 系列)**
**结构:**
small-card + p
**布局:**
小图列表
**类名前缀:**
nwD-*
---
## **NEWEST_05nwE 系列)**
**结构:**
ul + li纯文字
**布局:**
简单清晰的更新日志
**类名前缀:**
nwE-*
---
# =======================================
# Ⅶ. RANKING排行榜 · 5 套)
# =======================================
---
## **RANKING_01rkA 系列)**
text ranking + number tag
---
## **RANKING_02rkB 系列)**
图文榜单
---
## **RANKING_03rkC 系列)**
小图紧凑榜单
---
## **RANKING_04rkD 系列)**
横滑榜单
---
## **RANKING_05rkE 系列)**
纯文字榜单
类名前缀统一为:
rkA- / rkB- / rkC- / rkD- / rkE-
---
# =======================================
# Ⅷ. CATEGORY分类模块 · 5 套)
# =======================================
---
## **CATEGORY_01cgA 系列)**
chips 标签云
---
## **CATEGORY_02cgB 系列)**
导航式分类条
---
## **CATEGORY_03cgC 系列)**
卡片式分类
---
## **CATEGORY_04cgD 系列)**
列表式分类(带图)
---
## **CATEGORY_05cgE 系列)**
列表式分类(纯文字)
类名前缀统一:
cgA~cgE
---
# =======================================
# Ⅸ. DETAIL视频详情页 · 5 套)
# =======================================
---
## **DETAIL_01~05dtA~dtE 系列)**
已完成的 5 套包含:
* 多结构article / section / aside / info grid
* 线路选择ul/li
* 推荐区
* SEO Words
* 剧情简介
* 演职员
类名前缀:
dtA-* / dtB-* / dtC-* / dtD-* / dtE-*
---
# =======================================
# . PLAY播放页 · 5 套)
# =======================================
---
## **PLAY_01~05plyA~plyE 系列)**
特点:
* 全部使用 DPlayer
* 播放线路选择(必要)
* 集数列表(必要)
* 推荐模块(可选)
* SEO words可选
* 排行榜(可选)
* 不同 DOM 结构、不同布局
类名前缀:
plyA-* / plyB-* / plyC-* / plyD-* / plyE-*
---
# ======================================================
# **文件说明(必须保存)**
# ======================================================
该文件必须作为:
**模板全库索引Template Feature Index**
未来你扩展模板:
* banner_06
* list_06
* new detail_06
* ……
我会逐条比对本文件:
* 标签结构
* 布局方式
* 类名前缀段
* 模块内部顺序
* 图片 + 文本内容结构
* 信息块排列逻辑
确保生成 **不重复、不撞车、完全新颖的模板**
---
# 若你要我生成新的模块,请发:
```
开始 footer_06
```
```
生成 banner_06
```
我会自动避开本文件所有 50 套模板的结构,生成真正全新的一套。
你要继续扩展哪个模块?

12
doc/优化.md Normal file
View File

@@ -0,0 +1,12 @@
1.首页 home_newest home_hot home_rank 。。 目前就3个我觉得应该不止这几个
比喻推荐板块 票房榜板块。。。
可以继续增加 比喻 每个分类一个list循环生成
当然,不是所有首页都一样,每个域名的 模块自动生成绑定,顺序也是打乱 绑定,这样 页面的 dom树应该都是不一样的了
2.home_newest home_hot home_rank 。。。 这些模块 外部包裹标签 都是使用
<section class="mod-newest"> <section class="{$TpStyle.dom_prefix}-shell{$cfg.shell} {$cfg.class}">
都是section 然后就是类名不一样,这样好吗?需要使用不同的 标签吗?
<pre style="font-size:12px;background:#111;color:#0f0;">
{php}print_r($resData['p_data']);{/php}
</pre>