qing
|
1b6a767f62
|
feat(dnfs): 节点卡片仅标题可点击进入子节点
将进入子节点的点击事件从整张卡片收窄到标题 h3,内容/统计/操作区不再触发
跳转;同步 theme.css 将手型光标与 hover 高亮集中在标题上。
|
2026-08-05 10:48:09 +08:00 |
|
qing
|
7f6f077469
|
feat(dnfs): support in-node rendering for frontend code nodes
|
2026-08-05 10:30:29 +08:00 |
|
qing
|
60db2c40d8
|
特效保持全屏视觉,但 iframe 元素挂载到节点容器内
|
2026-08-05 10:15:21 +08:00 |
|
qing
|
08aff2656d
|
前端特效节点改为在节点容器内展示,不再全屏铺底
|
2026-08-05 10:12:47 +08:00 |
|
qing
|
897e76fd8f
|
style(dnfs): 移除左侧用户面板按钮的 emoji 表情,保持文字简洁
|
2026-08-05 02:02:00 +08:00 |
|
qing
|
84a1a5e3be
|
feat(dnfs): 顶部搜索框实时过滤当前层节点卡片
- 抽取 renderCards() 复用卡片渲染,load_notes 保存 current_children
- 卡片绑定 __item 引用,搜索时直接切换 .style.display(不重建 DOM、不清特效)
- 按 title/owner/content 子串匹配;信封节点链接/代码/文件名纳入搜索,排除图片/文件的 base64 数据
- 支持实时 input 过滤、回车触发、ESC 清空;无匹配时显示提示
- 切换/返回节点时自动清空搜索关键词
|
2026-08-05 01:52:52 +08:00 |
|
qing
|
85c9699758
|
feat(dnfs): 用户面板折叠时不再显示用户名,仅显示展开按钮
|
2026-08-05 01:42:51 +08:00 |
|
qing
|
9dd16e0eef
|
feat(dnfs): 进入新节点时先清除上一节点特效再加载当前节点特效
|
2026-08-05 01:29:49 +08:00 |
|
qing
|
28894e48dc
|
feat(dnfs): 用户面板下移并新增无特效模式开关;管理员增加运维机器人/进程管理器入口
|
2026-08-05 00:49:30 +08:00 |
|
qing
|
cc671a9fce
|
feat(dnfs): 含前端内容的节点渲染到当前页面时自动执行(隔离iframe沙箱启动特效)
|
2026-08-04 23:57:39 +08:00 |
|
qing
|
f7ed1f785b
|
fix(dnfs): 前端代码节点改为隔离iframe沙箱运行,特效不再污染父页面导致运行后无法进入节点
|
2026-08-04 23:51:21 +08:00 |
|
qing
|
745ce06f85
|
fix(dnfs): 前端代码节点运行改为局部输出缓冲+捕获窗口自动恢复console,避免应用自身日志(pid)刷进输出框干扰导航
|
2026-08-04 22:47:48 +08:00 |
|
qing
|
f17a6a8233
|
fix(dnfs): 前端代码节点注入脚本包IIFE隔离作用域,避免覆盖页面全局导致运行后无法进入节点
|
2026-08-04 22:29:10 +08:00 |
|
qing
|
30360cb106
|
feat(dnfs): 前端代码节点支持完整HTML/CSS/JS并注入当前页面
将内联 JS 节点扩展为内联前端代码节点:内容存完整 HTML 文档,
运行后解析注入当前页面——style 注入 head、script 在全局作用域执行
可操作整页加特效、body 渲染到节点下方容器,console 输出捕获到下方。
|
2026-08-04 22:24:33 +08:00 |
|
qing
|
c7441c1c6f
|
fix(dnfs): JS代码节点改用<script>注入执行以兼容CSP
new Function/eval 被 CSP(script-src self unsafe-inline) 拦截,改用注入内联
<script> 执行,避免引入 unsafe-eval。代码在全局作用域运行可操作页面加特效,
console 输出经 hook 捕获到输出区(保留原 console 行为)。
|
2026-08-04 22:11:19 +08:00 |
|
qing
|
fed2d42472
|
refactor(dnfs): JS代码节点改为在当前页面执行以支持页面特效
移除 iframe 沙箱方案,改为 new Function 在当前页面上下文执行,
代码可直接操作 document/window 对页面施加特效;console 输出捕获到下方区域。
|
2026-08-04 22:08:15 +08:00 |
|
qing
|
2918f2c83c
|
feat(dnfs): 特殊节点类型由网页代码(html)改为JS代码(js)
将 _sp 标识从 html 改为 js,运行方式由新窗口 document.write 改为
插入页面 iframe 沙箱执行,捕获 console 输出,postMessage 自适应高度。
后端 dnfs.py 白名单、校验、审核文本同步更新。
|
2026-08-04 22:05:01 +08:00 |
|
qing
|
c7364286b7
|
fix(static): getNode仅401跳登录,其他异常提示原因并上抛
|
2026-08-02 12:19:02 +08:00 |
|
qing
|
c3c07ab06d
|
Merge pull request 'Main' (#17) from main into dev_qing
Reviewed-on: #17
|
2026-08-02 11:51:31 +08:00 |
|
qing
|
5a3dff9026
|
fix(static): 修复dnfs导航栈污染与返回键栈空越界
- 点卡片/返回上一层前先经 confirmLeaveIfDirty 守卫确认,用户选择
不放弃输入时不再执行 push/pop,stack 保持原样
- 返回键目标 id 判断由 length>=0(恒真,空栈取到 undefined)改为
length>0,空栈正确回根节点 0
|
2026-08-02 11:46:51 +08:00 |
|
shufeng2012
|
7e4fd7e54a
|
Add search input border.
|
2026-08-02 09:04:53 +08:00 |
|
shufeng2012
|
627950394d
|
✨ 添加代码块语法高亮功能
|
2026-08-01 20:08:51 +08:00 |
|
qing
|
e007990594
|
feat(dnfs,static): 新增管理员特殊节点(链接/网页代码/图片/文件)
- 信封格式:content 为 {"_sp":...} JSON,普通 Markdown 节点不受影响
- dnfs:add_note/update_note 按 is_admin 强制特殊节点发布权(非管理员 403),
字段与大小校验(url≤2048、code≤512KB、base64≤3.5M 字符),AI 审核剔除 base64 负载
- dnfs:修复存量 bug —— 模块级 _sys.path.insert 未定义导致 import 即 NameError
- static:新增 GET /api/favicon 服务端代理(SSRF 防护:内网地址拦截 + 重定向校验 + 512KB 上限)
- 前端:管理员可见节点类型选择器;链接 favicon 卡片 / 网页可审计可运行 / 图片直显 / 文件下载
- theme.css 补充 select 与特殊节点样式;两个 README 同步更新
|
2026-08-01 04:34:23 +08:00 |
|
qing
|
ea670adde2
|
feat(static): dnfs 内容输入框随内容自动调整高度
- textarea 输入时自动增长,最小 120px,最大 400px
- 超过最大高度后出现滚动条,避免页面无限撑开
- 编辑已有节点时自动适配内容高度
- 提交/重置/退出编辑后恢复初始高度
- 禁用手动拖拽 resize,由自动增长统一控制
|
2026-07-30 22:21:24 +08:00 |
|
qing
|
9765edac9b
|
fix(static): 前端脚本识别 WAF 拦截响应并正确提示
- validation.js 新增 WafTip 公共检测:403 + 响应体含 blocked by WAF 双重特征,
与 gateway 白名单拒绝的 403(JSON 错误消息)精确区分
- login/register/dnfs/view 各请求点在 JSON 解析前识别拦截,统一提示
「请求被 WAF 安全规则拦截,请检查输入内容」
- 修复 dnfs getNode 被 WAF 拦截时落入 catch 误跳登录页的问题
- 验证码图片加载识别 403 拦截,alt 提示点击重试
- __view.html 补充引入 validation.js
|
2026-07-30 11:01:34 +08:00 |
|
qing
|
40175eddb5
|
Revert "style(dnfs): 用户信息面板移到左边中间,与右侧 minimap 镜像对称"
This reverts commit 5c33dbe027.
|
2026-07-30 09:52:08 +08:00 |
|
qing
|
5c33dbe027
|
style(dnfs): 用户信息面板移到左边中间,与右侧 minimap 镜像对称
|
2026-07-30 09:44:15 +08:00 |
|
qing
|
a58a0f97e3
|
feat(dnfs): minimap 与用户面板按视口宽度决定初始折叠态
新增 PANEL_EXPAND_MIN_WIDTH=768 断点:宽屏默认展开、窄屏默认折叠避免
遮挡内容;仅决定初始状态,用户手动折叠/展开不被 resize 覆盖。
|
2026-07-30 09:40:58 +08:00 |
|
qing
|
55b127747a
|
fix(dnfs): 用户面板用户名/角色改为纯展示,去除手型光标与 hover 变色
新增 .tag.no-hover 修饰类还原交互态;折叠按钮与退出登录保持可点样式。
|
2026-07-30 09:34:53 +08:00 |
|
qing
|
8c1956cdeb
|
feat(dnfs): 左上角用户信息面板(默认折叠),新增 /whoami 身份接口
dnfs 新增 POST /whoami:解 Token payload 返回 user/is_admin,无或畸形
Token 返回 login=false(HttpOnly Cookie 模式下 JS 无法读 Token,身份
必须由后端下发);static 加 /whoami 代理(Cookie 转 Bearer);前端
dnfs.html 左上新增 userpanel,镜像 minimap 样式默认折叠,展开显示
用户名/角色/退出登录(POST /logout 清 Cookie 后跳登录页)。
|
2026-07-30 09:31:28 +08:00 |
|
qing
|
1388fcb72b
|
feat(dnfs): 卡片移动按钮一并纳入 can_operate 权限显隐
编辑/移动/删除三个按钮合并为单次权限判断(移动本质也是 update_note),
未登录或无权时不渲染整个按钮组。
|
2026-07-30 09:21:15 +08:00 |
|
qing
|
b4e1cf462a
|
feat(dnfs): get_notes 按当前用户注入 can_operate,前端按权显隐编辑/删除按钮
dnfs get_notes 可选解析 Authorization(畸形 Token try 兜底),为每个节点
附带 can_operate 标记(is_admin 或 owner,口径与 delete/update 一致);
dnfs.js 卡片编辑/删除按钮仅 can_operate === true 时渲染,未登录或无权隐藏。
|
2026-07-30 09:17:28 +08:00 |
|
qing
|
949d274c22
|
获取节点失败后跳转
|
2026-07-30 08:22:53 +08:00 |
|
qing
|
3bc4f9720f
|
fix(dnfs): 移动请求期间禁用按钮防止重复提交
后端 update_note 走 AI 审核耗时较长,confirmMove 期间禁用移动条
与表单按钮,finally 统一恢复
|
2026-07-29 14:37:27 +08:00 |
|
qing
|
3f9bffb9ea
|
feat(dnfs): 节点移动功能
- dnfs.js: 卡片新增移动按钮,startMove 暂存节点,底部悬浮移动条
提供移动到当前层/取消;confirmMove 经 update_note 改 pid 完成迁移;
拦截移动到自身与已在当前层的情况
- dnfs.html: 新增 #movebar 容器
- theme.css: act-move 描边按钮与 movebar 底部悬浮条样式
|
2026-07-29 11:40:35 +08:00 |
|
qing
|
ace98caff6
|
feat: 卡片编辑/删除按钮 + dnfs 管理员豁免
- dnfs.js: 卡片底部新增编辑/删除按钮,复用下方表单支持编辑模式
(startEdit/cancelEdit/updateNode/deleteChild),stopPropagation 防误触
- theme.css: 新增 card-actions/act-btn 按钮样式,编辑橙色/删除红色软底
- dnfs.py: ADMIN_USERS 统一管理豁免名单(admin, admin@qsont.me),
update_note 新增管理员豁免,delete_note 同步改用名单
- dnfs/README.md: 同步更新所有权豁免说明
|
2026-07-29 11:22:30 +08:00 |
|
qing
|
2fc12e7b00
|
feat(dnfs): 卡片增加观看/点赞/分享互动统计图标
- dnfs.js: 新增眼睛/爱心/转发 SVG 图标常量与 makeStatItem 构造函数,
统计行挂载在 owner 胶囊下方,计数缺省显示 0(后端暂无该字段)
- theme.css: 新增 card-stats/stat-item/stat-num 样式
|
2026-07-29 10:59:40 +08:00 |
|
qing
|
dae81ba4a1
|
style(dnfs): 美化卡片发帖用户显示为头像+昵称胶囊
- dnfs.js: owner 纯文本改为首字符圆形头像 + 昵称,空值兜底匿名
- theme.css: 新增 Owner Chip 样式段,复用主题变量自动适配深色模式
|
2026-07-29 10:53:29 +08:00 |
|
qing
|
a905dac00d
|
display note ownerx
|
2026-07-29 10:47:20 +08:00 |
|
qing
|
483c5f227f
|
fix: 发布节点期间同步禁用重置/删除按钮,防止误触
|
2026-07-28 12:17:27 +08:00 |
|
qing
|
bfd2d334fe
|
fix: 前端按钮防重复点击,避免重复请求(dnfs提交/删除、view刷新、验证码刷新)
|
2026-07-28 12:10:48 +08:00 |
|
qing
|
4ad3fbfca8
|
fix: 修复公开页面因旧 Cookie 验签失败误返回 401
浏览器会自动给每个请求携带 q4_token,gateway 重启轮换内存 RSA 密钥后旧凭证验签失败,导致无需登录的公开页面也 401。代理层改为仅对需鉴权目标校验凭证,公开目标跳过;前端遇 401 自动跳转登录页自愈。
|
2026-07-28 09:31:10 +08:00 |
|
qing
|
e89578fa82
|
security: Token 改为 HttpOnly Cookie 下发,消除 XSS 窃取面
登录时网关签发 HttpOnly+Secure+SameSite=Lax 的 q4_token Cookie,前端不再经手 Token;网关代理时支持从 Cookie 验签并向下游注入 Authorization(dnfs 零改动),新增 /logout 清除 Cookie,static 代理路由兼容 Cookie 转 Bearer。
|
2026-07-28 09:07:12 +08:00 |
|
qing
|
a67f190634
|
“返回上一层”按钮样式
|
2026-07-27 15:41:14 +08:00 |
|
qing
|
9b4a0a6a16
|
折叠minimap
|
2026-07-27 14:51:41 +08:00 |
|
shufeng2012
|
0abba64ea8
|
🐛 我看还是把等号加上吧
|
2026-07-27 13:32:06 +08:00 |
|
qing
|
f056da1dfc
|
update minimap
|
2026-07-27 12:36:59 +08:00 |
|
qing
|
614368eb93
|
fontend update without css
|
2026-07-27 12:24:06 +08:00 |
|
qing
|
896cfc32ca
|
网友修x改、我修复之后
|
2026-07-26 12:06:56 +08:00 |
|
shufeng2012
|
15a95f7a18
|
✨ 添加 删除节点确认 功能
|
2026-07-24 15:08:48 +08:00 |
|