diff --git a/dnfs2/src/dnfs2.cpp b/dnfs2/src/dnfs2.cpp index e36e3b6..67c6faf 100644 --- a/dnfs2/src/dnfs2.cpp +++ b/dnfs2/src/dnfs2.cpp @@ -274,10 +274,6 @@ static json::value parse_sp(const std::string& content) { static void validate_sp(const json::object& sp) { std::string t = std::string(sp.at("_sp").as_string()); - // persist(style/theme 的生命周期标记)可选,必须是布尔值 - if (sp.contains("persist") && !sp.at("persist").is_bool()) - throw DnfsExp("persist 必须是布尔值", 400); - if (t == "js") { if (!sp.contains("code") || !sp.at("code").is_string()) throw DnfsExp("前端代码不能为空", 400); diff --git a/docs/dnfs_custom_themes.md b/docs/dnfs_custom_themes.md index 3667544..cc14cca 100644 --- a/docs/dnfs_custom_themes.md +++ b/docs/dnfs_custom_themes.md @@ -18,8 +18,7 @@ 1. 登录后打开「树状笔记」,进入自己的目标节点(样式节点发布在**谁拥有**的节点下,权限见下) 2. 在「节点操作」表单中,将**节点类型**选为 `主题变量` 或 `界面样式` 3. 在「节点内容」中填写变量或 CSS(格式见后文) -4. 可选:勾选「离开本节点后仍保持生效」(`persist`) -5. 提交——内容经 AI 审核通过后即时生效 +4. 提交——内容经 AI 审核通过后即时生效 ### 发布权限 @@ -30,13 +29,10 @@ ### 生命周期 -| 模式 | 生效范围 | 移除时机 | -|---|---|---| -| 默认(节点作用域) | 进入该节点所在层时生效 | 切换/返回节点时自动还原 | -| `persist`(勾选保持) | 一旦访问即全局保持,跨节点生效 | 用户面板点「还原界面样式」,或停用对应节点 | +样式节点为**节点作用域**:进入该节点所在层时注入生效,切换/返回节点时自动移除,界面还原。 - 每个样式节点卡片上有「停用样式/启用样式」与「审计源码」按钮,可逐个控制 -- 用户面板的「**还原界面样式**」一键清除全部注入样式(含 persist),本会话内 persist 样式不再自动注入(刷新页面恢复) +- 停用仅对当前浏览者本次生效,不影响其他访客 --- @@ -229,10 +225,10 @@ a:hover { text-shadow: 0 0 8px var(--accent); } 样式节点经 AI 审核,审核未通过会提示「内容审核不通过」;通过后刷新页面生效。非节点拥有者在他人节点下发布会被 403 拒绝。 **界面被改乱了怎么办?** -左上角用户面板 →「还原界面样式」,立即恢复默认。或在对应卡片上点「停用样式」。 +离开该节点所在层即自动还原;或在对应卡片上点「停用样式」。 -**想让全站访客都看到主题?** -发布时勾选「离开本节点后仍保持生效」(persist),并建议放在高层级节点中提高被访问到的概率。 +**样式只在特定层生效吗?** +是。样式仅在访问到该节点所在层时生效,离开即还原;想让更多访客看到,可把节点放在高层级。 **样式节点之间冲突?** 多个样式节点同时生效时按 DOM 注入顺序叠加,同特异性后者优先;可用卡片上的启停按钮逐个排查。 diff --git a/fsys/public/dnfs.html b/fsys/public/dnfs.html index d103b4d..e5eebc9 100644 --- a/fsys/public/dnfs.html +++ b/fsys/public/dnfs.html @@ -38,7 +38,6 @@ -
diff --git a/fsys/public/js/dnfs.js b/fsys/public/js/dnfs.js index 3718c27..868ff21 100644 --- a/fsys/public/js/dnfs.js +++ b/fsys/public/js/dnfs.js @@ -481,15 +481,9 @@ function renderContent(container, item) { var sp_effects_disabled = (function() { try { return localStorage.getItem('sp_effects_disabled') === '1'; } catch (e) { return false; } })(); -/* 清除当前页面已运行的全部特效沙箱(进入新节点 / 关闭特效时调用) */ -/* 清除当前页面已运行的全部特效沙箱与节点作用域注入样式(进入新节点 / 关闭特效时调用)。 - * persist 注入样式(data-persist="1")跨节点保留,由用户面板"还原界面样式"统一清除。 */ +/* 清除当前页面已运行的全部特效沙箱与注入样式(进入新节点 / 关闭特效时调用) */ function clearAllEffects() { document.querySelectorAll('.sp-effect-frame').forEach(function(f) { f.remove(); }); - document.querySelectorAll('.sp-injected-style:not([data-persist="1"])').forEach(function(s) { s.remove(); }); -} -/* 还原界面样式:清除 style/theme 节点的全部注入样式(含 persist),不清特效沙箱 */ -function clearAllStyles() { document.querySelectorAll('.sp-injected-style').forEach(function(s) { s.remove(); }); } function renderSpJs(container, sp, appendNote) { @@ -594,14 +588,11 @@ function renderSpFile(container, sp, appendNote) { } /* ===== 样式类节点(style/theme):CSS 注入