Skip to content

Commit 0c7d144

Browse files
committed
docs: 文档站全面去 emoji,首页 features 改为 inline lucide svg
VitePress 默认主题对 feature 的 icon 字段会在 typeof 是 string 时走 v-html 渲染——所以可以直接塞 inline svg 字符串,不需要外部图片或 unplugin-icons。把首页 6 个 feature 的 emoji 换成 lucide 风格的 inline svg:shield(离线规则匹配)/ zap(毫秒级检测)/ puzzle(自定义规则)/ moon(明暗模式)/ feather(轻量集成)/ code-2(开发者友好)。stroke="currentColor" 让 svg 跟随容器 color。 theme/style.css 加 .VPFeature .icon 设 color: var(--vp-c-brand-1) + svg 26x26 size,feature icon 走品牌色。light teal、dark cyan,跟首页 hero 渐变 / 按钮统一。 清掉所有正文里的 emoji: - guide/basic-usage.md ASCII 工具栏示意图里的 ☀ ⚙ 📋 ↻ 🔍 📄 全删,改成纯文字标签 [主题] [设置] [复制] [刷新] 等;底部 ⬆ 圆形按钮描述改成「圆形按钮(向上箭头)」 - guide/tools.md 里「弹窗顶部的 📋 复制按钮」改成「弹窗顶部的「复制」按钮」 - config/index.md 里「弹窗顶部的 ⚙ 图标」改成「弹窗顶部的「设置」按钮」 - config/custom-rules.md 表格里 ✅ 改成「是」;列表项 ✏ 编辑 / 🗑 删除合并为「『编辑』『删除』两个按钮」;4 处 ☑ 勾选符号统一替换成 [x] - config/json-export.md 表格里 ✅ → 「是」、3 个 ⚠ → 「三选一」(更直观说明 patterns/selectors/globals 至少填一个),prettier 重新对齐 pipe - dev/detection-flow.md 里 ⏰ → 「注意:」、「↻刷新」 → 「刷新」 顺手修 markdownlint MD040:所有无 language 的 fenced code block(ASCII 流程图 / 数据流 / 简单文本)补上 ```text 语言标签。涉及 basic-usage / detection-flow / architecture / results / disabled-technologies / custom-rules 6 个文件 共 12 个 fence。补 language 后 vitepress 也能正确禁用 syntax highlighter(之前没语言时会按裸 text 渲染但 lint 不开心)。 node 脚本一次扫整个 docs 目录全 markdown 文件做 emoji + fence 处理,处理后再跑一遍 emoji 扫描,total 0 确认清干净。 插件版本升级到 1.0.95。
1 parent 4af55ba commit 0c7d144

12 files changed

Lines changed: 60 additions & 50 deletions

File tree

docs/.vitepress/theme/style.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,16 @@
111111
box-shadow: 0 12px 32px rgba(45, 212, 191, 0.18);
112112
}
113113

114+
/* feature icon 容器:图标走品牌色 + svg stroke 用 currentColor */
115+
.VPFeature .icon {
116+
color: var(--vp-c-brand-1);
117+
}
118+
119+
.VPFeature .icon svg {
120+
width: 26px;
121+
height: 26px;
122+
}
123+
114124
/* 中文阅读:行高与字号微调 */
115125
:root {
116126
--vp-layout-max-width: 1440px;

docs/config/custom-rules.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
| 字段 | 必填 | 说明 |
88
| ------------------- | ---- | ---------------------------------------------------------------------------------------------------------- |
9-
| **技术名称** | | 弹窗里显示的名字,比如 `MyCMS` |
9+
| **技术名称** | | 弹窗里显示的名字,比如 `MyCMS` |
1010
| **分类** | | 选一个内置分类(22 个)或自己输入新分类。默认「其他库」。Select 组件支持自由输入,分类列表里没有的也能写。 |
1111
| **类型说明** | | 给自己看的注释,比如 `企业 CMS``第三方支付`。会显示在 evidence 前缀,可以为空。 |
1212
| **置信度** | | 高 / 中 / 低,默认「中」 |
@@ -41,7 +41,7 @@
4141

4242
- 标题:规则的技术名称
4343
- 元信息:分类 · 类型 · 置信度 · 匹配方式 · N 条 patterns
44-
- 操作:✏ 编辑 / 🗑 删除(删除按钮 hover 变红)
44+
- 操作:「编辑」「删除」两个按钮(删除按钮 hover 变红)
4545

4646
## 验证规则
4747

@@ -61,51 +61,51 @@
6161

6262
识别 ExampleCMS:
6363

64-
```
64+
```text
6565
技术名称: ExampleCMS
6666
分类: 网站程序
6767
匹配方式: 关键词
6868
匹配规则:
6969
examplecms
7070
X-Generator: ExampleCMS
71-
匹配范围: 页面 URL 资源 URL DOM / 源码 响应头
71+
匹配范围: [x] 页面 URL [x] 资源 URL [x] DOM / 源码 [x] 响应头
7272
```
7373

7474
## 例子:识别 WordPress 主题
7575

76-
```
76+
```text
7777
技术名称: WordPress 主题: oceanwp
7878
分类: 主题 / 模板
7979
匹配方式: 关键词
8080
匹配规则:
8181
/wp-content/themes/oceanwp/
82-
匹配范围: 资源 URL DOM / 源码
82+
匹配范围: [x] 资源 URL [x] DOM / 源码
8383
```
8484

8585
## 例子:识别动态加载的支付 SDK
8686

8787
支付按钮点了之后才会请求脚本,所以勾「动态资源」:
8888

89-
```
89+
```text
9090
技术名称: ExamplePay
9191
分类: 支付系统
9292
类型说明: 第三方支付
9393
匹配方式: 关键词
9494
匹配规则:
9595
pay.example.com
9696
examplepay-sdk
97-
匹配范围: 动态资源
97+
匹配范围: [x] 动态资源
9898
```
9999

100100
## 例子:用正则识别带版本号的库文件
101101

102-
```
102+
```text
103103
技术名称: ExampleLib
104104
分类: 前端库
105105
匹配方式: 正则表达式
106106
匹配规则:
107107
examplelib-[0-9.]+\.min\.js
108-
匹配范围: 资源 URL 动态资源
108+
匹配范围: [x] 资源 URL [x] 动态资源
109109
```
110110

111111
## 减少误报小贴士

docs/config/disabled-technologies.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
每行一个技术名称,名称大小写不敏感、首尾空格自动去除:
88

9-
```
9+
```text
1010
Google Analytics
1111
百度统计
1212
WordPress 插件: akismet
@@ -37,7 +37,7 @@ Cloudflare
3737

3838
假设你只想看到非 Cloudflare 的 CDN,又想保留所有 CDN 分类下的检测。设置:
3939

40-
```
40+
```text
4141
Cloudflare
4242
```
4343

docs/config/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 配置指南
22

3-
设置页可以通过弹窗顶部的 ⚙ 图标打开,或者在 `chrome://extensions/` 找到 StackPrism 卡片点「详情 → 扩展程序选项」。
3+
设置页可以通过弹窗顶部的「设置」按钮打开,或者在 `chrome://extensions/` 找到 StackPrism 卡片点「详情 → 扩展程序选项」。
44

55
设置页分四个 panel:
66

docs/config/json-export.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@
2828
}
2929
```
3030

31-
| 字段 | 类型 | 必填 | 说明 |
32-
| ------------ | ------------------------ | ---- | ----------------------------------------------------------------------- |
33-
| `name` | string | | 弹窗显示名 |
34-
| `category` | string | | 分类,默认 `其他库` |
35-
| `kind` | string | | 类型说明,默认 `自定义规则` |
36-
| `confidence` | `"高"` / `"中"` / `"低"` | | 默认 `` |
37-
| `matchType` | `"keyword"` / `"regex"` | | 默认 `regex` |
38-
| `patterns` | string[] | | 三选一(patterns / selectors / globals 至少有一个非空) |
39-
| `selectors` | string[] | | CSS 选择器列表 |
40-
| `globals` | string[] | | 全局变量名列表(`window.x.y` 写成 `x.y`|
41-
| `matchIn` | string[] | | `url` / `resources` / `html` / `headers` / `dynamic` 任意组合,默认全选 |
42-
| `url` | string | | 必须 `http(s)://`,可空 |
31+
| 字段 | 类型 | 必填 | 说明 |
32+
| ------------ | ------------------------ | ------ | ----------------------------------------------------------------------- |
33+
| `name` | string | | 弹窗显示名 |
34+
| `category` | string | | 分类,默认 `其他库` |
35+
| `kind` | string | | 类型说明,默认 `自定义规则` |
36+
| `confidence` | `"高"` / `"中"` / `"低"` | | 默认 `` |
37+
| `matchType` | `"keyword"` / `"regex"` | | 默认 `regex` |
38+
| `patterns` | string[] | 三选一 | 三选一(patterns / selectors / globals 至少有一个非空) |
39+
| `selectors` | string[] | 三选一 | CSS 选择器列表 |
40+
| `globals` | string[] | 三选一 | 全局变量名列表(`window.x.y` 写成 `x.y`|
41+
| `matchIn` | string[] | | `url` / `resources` / `html` / `headers` / `dynamic` 任意组合,默认全选 |
42+
| `url` | string | | 必须 `http(s)://`,可空 |
4343

4444
## 操作按钮
4545

docs/dev/architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 目录结构
44

5-
```
5+
```text
66
stackprism/
77
├─ src/
88
│ ├─ manifest.config.ts # @crxjs/vite-plugin 用的 MV3 manifest 定义
@@ -64,7 +64,7 @@ stackprism/
6464

6565
Chrome 扩展有四种执行环境,StackPrism 全部用上:
6666

67-
```
67+
```text
6868
┌─────────────────────────────────────────────────────────────┐
6969
│ 1. Service Worker (ESM module) │
7070
│ src/background/*.ts │

docs/dev/detection-flow.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
StackPrism 同时跑三条管道并把结果合并:
66

7-
```
7+
```text
88
┌──────────────────────────────────────────────────────────┐
99
│ 管道 A:响应头 (chrome.webRequest) │
1010
│ - background webRequest.onHeadersReceived │
@@ -35,7 +35,7 @@ StackPrism 同时跑三条管道并把结果合并:
3535

3636
## 数据流:从触发到弹窗显示
3737

38-
```
38+
```text
3939
用户点击扩展图标
4040
4141
弹窗 mount
@@ -63,7 +63,7 @@ bg 返回 PopupResult
6363
6464
弹窗 setState.result,展示
6565
66-
后续 background 还会持续接收 webRequest 响应头、动态快照等增量更新,
66+
注意:后续 background 还会持续接收 webRequest 响应头、动态快照等增量更新,
6767
每次更新都重新写 popup:{tabId} 缓存
6868
6969
chrome.storage.onChanged 触发 popup 端 onStorageChange
@@ -73,7 +73,7 @@ chrome.storage.onChanged 触发 popup 端 onStorageChange
7373

7474
## 主动检测时机
7575

76-
弹窗里点「刷新」会触发 `START_BACKGROUND_DETECTION` 消息:
76+
弹窗里点「刷新」会触发 `START_BACKGROUND_DETECTION` 消息:
7777

7878
```ts
7979
// background/detection.ts
@@ -121,7 +121,7 @@ background 端 `dynamic-snapshot.ts`:
121121

122122
每条 rule 在三个层面被使用:
123123

124-
```
124+
```text
125125
detectFromXxx(snapshot, rules)
126126
for (const rule of rules):
127127
1. matchesRuleTextHints(rule, context) ─ 业务侧 resourceHints 预过滤

docs/guide/basic-usage.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
## 顶部工具栏
66

7-
```
8-
[栈棱镜 v1.0.x 当前页 URL] [] [] [📋] [刷新]
7+
```text
8+
[栈棱镜 v1.0.x 当前页 URL] [主题] [设置] [复制] [刷新]
99
```
1010

1111
- **左边**:扩展名 + 版本号 + 当前页 URL(截断,hover 显示完整)
@@ -17,7 +17,7 @@
1717

1818
## 概览数据
1919

20-
```
20+
```text
2121
22 技术 274 资源 0 响应头
2222
```
2323

@@ -29,7 +29,7 @@
2929

3030
## 分类过滤栏
3131

32-
```
32+
```text
3333
[ 重点 5 全部 22 ] [ 选择分类 ▾ ]
3434
```
3535

@@ -40,12 +40,12 @@
4040

4141
每条技术一个卡片:
4242

43-
```
43+
```text
4444
React [高置信度]
4545
- DOM 节点存在 React Fiber 标记
4646
- 资源 URL 匹配 cdn.example.com/react.production.min.js
4747
来源:响应头 动态监控
48-
[Flag] 识别不准确,点击纠正
48+
识别不准确,点击纠正
4949
```
5050

5151
- **技术名**:可点击,跳转到该技术的官网或仓库(鼠标悬停时右侧出现外链图标)
@@ -60,8 +60,8 @@ React [高置信度]
6060

6161
## 底部工具栏
6262

63-
```
64-
[🔍 搜索] [📄 原始线索] GitHub
63+
```text
64+
[搜索] [原始线索] GitHub
6565
```
6666

6767
左侧两个工具按钮,详情见 [辅助工具](./tools.md)。点击后会从底部滑出抽屉式面板,再点同个按钮 / 点抽屉里的 X 关闭。
@@ -70,4 +70,4 @@ React [高置信度]
7070

7171
弹窗整体高度锁定 600px,只有**技术列表区域**自己滚动。顶部工具栏、概览、分类过滤栏始终可见。
7272

73-
列表向下滚超过约 240px 时右下角浮出一个 ⬆ 圆形按钮,点击平滑滚回顶部。
73+
列表向下滚超过约 240px 时右下角浮出一个圆形按钮(向上箭头),点击平滑滚回顶部。

docs/guide/results.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
最多 4 行说明插件依据什么做出判断,比如:
1818

19-
```
19+
```text
2020
- DOM 节点存在 React Fiber 标记
2121
- 资源 URL 匹配 unpkg.com/react@18.2.0/umd/react.production.min.js
2222
- 响应头 X-Powered-By: Next.js

docs/guide/tools.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777

7878
## 复制 JSON
7979

80-
弹窗顶部的 📋 复制按钮会把当前的完整 raw JSON 复制到剪贴板(与「原始线索」面板内容一致)。
80+
弹窗顶部的「复制」按钮会把当前的完整 raw JSON 复制到剪贴板(与「原始线索」面板内容一致)。
8181

8282
适合:
8383

0 commit comments

Comments
 (0)