- 信封格式: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 同步更新
51 lines
2.0 KiB
HTML
51 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!-- 移动端适配核心标签 -->
|
|
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
|
<title>树状笔记</title>
|
|
<link rel="stylesheet" href="css/theme.css">
|
|
</head>
|
|
<body>
|
|
<div class="box">
|
|
<div id="userpanel" class="userpanel"></div>
|
|
<div id="minimap" class="minimap"></div>
|
|
<div id="movebar" class="movebar"></div>
|
|
<div class="recommend-list" id="recommend-list"></div>
|
|
<div class="card node-form">
|
|
<h3>节点操作</h3>
|
|
<label>新增节点</label><input id="input-note-title">
|
|
<!-- 特殊节点面板:仅管理员可见(dnfs.js 按 /whoami is_admin 显示) -->
|
|
<div id="sp-panel" style="display:none">
|
|
<label>节点类型</label>
|
|
<select id="sp-type">
|
|
<option value="text">普通文本</option>
|
|
<option value="link">链接(自动显示站点图标)</option>
|
|
<option value="html">网页代码(可审计/可运行)</option>
|
|
<option value="image">图片(自动显示)</option>
|
|
<option value="file">文件(可下载)</option>
|
|
</select>
|
|
<input type="file" id="sp-file" style="display:none">
|
|
<span id="sp-file-tip"></span>
|
|
</div>
|
|
<label>节点内容</label><textarea id="input-note-content"></textarea>
|
|
<div class="form-actions">
|
|
<button id="input-note-submit">提交</button>
|
|
<button id="input-note-clear">重置</button>
|
|
<button id="delete-note">删除当前节点</button>
|
|
</div>
|
|
</div>
|
|
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/12.0.0/markdown-it.min.js"></script>-->
|
|
<script src="js/markdown-it-12_0_0.js"></script>
|
|
<script src="js/validation.js"></script>
|
|
<script src="js/token_manager.js"></script>
|
|
<script src="js/dnfs.js"></script>
|
|
</div>
|
|
<footer class="footer">
|
|
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener">蜀ICP备2024107064号-2</a>
|
|
</footer>
|
|
</body>
|
|
</html>
|
|
|