Skip to content

Plainstruct 4.0.2 Release

Choose a tag to compare

@MogroWang MogroWang released this 08 Oct 12:47
· 3 commits to main since this release

[4.0.2] - 2026-10-08

新增

  • 博客主题:顶栏导航可调节顺序,归档参与排序与重命名:顶栏自定义导航此前顺序固定随内容树,现每个选中项可在配置面板中拖动把手调节顺序,构建产物按此顺序渲染顶栏(桌面顶栏、移动端导航面板与空导航回退三处同源);「归档」常驻选择器参与勾选、重命名、排序(详见变更段);数量上限(导航最多显示)只收敛文档项,归档入口始终随开关保留
  • 博客主题:顶栏导航重命名显示原名称:重命名输入框的占位提示改为该项的原页面标题,悬停提示同步列出原名,改过名的项也能一眼对回原文
  • 博客文档:配置头新增「页面目录」开关:文档配置头新增三态「页面目录」 —— 跟随主题设置(缺省,不落字段)/ 强制显示 / 强制隐藏,按篇覆盖主题的「启用文章目录」开关;新建文档弹窗(博客站点)同步加入页面目录开关(勾选 = 强制显示,不勾选 = 跟随主题)
  • 新建文档:配置头加入「隐藏文档」开关:新建文档弹窗新增隐藏文档开关,勾选即写入 hidden: true,创建后不进文章流/导航/搜索索引,与「编辑配置头」中的同名开关语义一致
  • 搜索插件:文本框搜索栏宽度可调(双端独立):搜索入口为「长条文本框」时,插件分组新增「搜索栏宽度」滑杆(160–420px) —— 随面板桌面端/移动端标签切换分别设置 PC 与移动端宽度(不新增选项),移动端缺省沿用 PC,可一键恢复沿用;悬浮、顶栏、文档主题顶栏三种位置同一变量取宽,移动端窄屏超出时自动收窄不溢出;侧栏内仍为整行展示
  • 博客主题(移动端):站点标识顶栏居中:「品牌与标识」组新增「站点标识顶栏居中」(移动端专属,≤640px) —— Logo 与站点名在顶栏水平居中,不参与 flex 排版,目录按钮/导航仍在原位;建议配合「移动端顶栏显示目录按钮」使用
  • 博客主题(移动端):顶栏列表按钮与搜索按钮样式同步:移动端目录按钮由淡色底改为与搜索入口同材质的扁圆角矩形条(60×36、同毛玻璃背景、描边与阴影,明暗随主题自适应)
  • 博客主题(移动端):列表按钮可配置:「顶栏与导航」组新增移动端专属字段 —— 列表按钮大小(高度,宽度随比例伸缩)、列表按钮圆角、按钮填充色(暗色主题默认深色)、按钮填充不透明度与下拉列表文字对齐(左/中/右)
  • 图片预览:预览中 iframe 内嵌显示占位提示:正文手写的 iframe 内嵌在预览中改为占位提示(内嵌页面自身资源在预览中无法保证可用),提醒发布站点后正常渲染;构建产物不受影响,按改写后的页面相对地址输出

修复

  • 博客主题:隐藏目录后仍残留目录列空位:文章双栏网格此前固定两列(正文 + 188px 目录列),配置头关闭目录(或主题关掉目录开关)时目录栏不渲染,但 188px 列与 44px 列间距的空位仍在 —— 现目录未渲染时正文占满整行(五款博客主题);顺带修复正文无标题时空目录栏(「目录」标题 + 空列表)仍渲染的问题(空数组在模板中为真值,构建端不再落空字段)
  • 预览站点:iframe 内嵌、图标、图片等资源无法显示(内容页/构建页/主题页/独立窗口):两条根因 —— 其一,资源加载的内容安全策略过严,外链 http 图片、外部样式表与字体(图标字体)、http 内嵌 iframe、外链音视频被拦;现已放开资源加载(图片/样式/字体/媒体/iframe 均允许 http/https 与 data:/blob:),仅保留底线:预览窗口禁止向外部发起 fetch/WebSocket(connect-src 限同站)、禁用 object 插件与 base 劫持,构建产物中的不可信脚本仍无法外带数据;其二,正文手写的裸 HTML 内嵌此前只改写 <img> 的地址,<iframe>、<video>、<audio> 等在预览中相对地址落到应用自身 origin、在构建产物中落到当前页面目录,全部 404 —— 现统一改写这些元素的 src/poster(预览指向协议地址,构建换算页面相对地址),指向站内文档(.md)时自动指向构建后的页面
  • 图片预览:像素渲染拖影与缩放限制(逻辑重做):像素画布改为每帧全屏重绘(不再局部清除,拖影/残像根除),并去除 ≥100% 吸附整数倍的缩放限制 —— 与抗锯齿模式同一套连续缩放范围、同一套手势与补间动画,本质就是「放原图,不开抗锯齿」;此前版本的手势失效根因(隐藏 <img> 用 visibility 不参与命中,按点落到遮罩即触发关闭)已改用 opacity: 0 淡出修复,像素模式与抗锯齿模式手势完全同路
  • 友情链接配置 UI:文本框溢出(全部主题):友情链接逐条编辑的名称/链接/图标三框此前挤在一行,窄面板下明显超出配置框;现每条分行列出(名称/链接/图标各占一行,按钮附在对应行尾),条目以细边框围出,不再溢出
  • 友情链接:名称可留空(有图标时):解析端不再强制要求名称 —— 有图标时允许纯图标链接(无图标也无名称的坏行仍忽略),十款主题的名称文本改为有名称才渲染;配置面板与行文本存储格式不变
  • 主题配置:顶栏导航拖动排序无效(根因修复):排序此前基于 HTML5 Drag & Drop —— WKWebView(macOS 壳层)对 HTML5 DnD 支持不可靠,dragstart 常不触发,拖动后松手顺序无变化;现改为指针拖拽(Pointer Events + 捕获),把手按下即捕获,移到目标行上方实时重排,触屏同样可拖
  • 主题配置:顶栏导航数量与顶栏实际一致:两处修正 —— 计数改从「已选行」取值,剔除已删除文档的失效项;归档作为常驻项计入可见行,消除了「顶栏显示归档入口」默认开启时顶栏实际渲染「上限+1」项导致的数量困惑
  • 预览站点:页脚友链图标在内容页与主题页正确渲染:预览通道的友链站内图标此前按构建规则换算为页面相对地址,落到应用自身 origin 全部 404 —— 现预览下换算为协议地址,构建产物不变
  • 图片预览:像素渲染丢失阴影与圆角:像素画布此前只画图像本体,<img> 的投影(0 22px 70px)与 6px 圆角在像素模式下消失 —— 现画布先铺同参数阴影底,再按圆角路径裁剪绘制,与抗锯齿模式观感一致
  • 全部主题:移动端点按蓝色高亮框去除:WebKit 的 tap highlight 在移动端点按按钮/链接时闪现系统蓝色框 —— 十款主题与内置插件样式统一 -webkit-tap-highlight-color: transparent
  • 博客主题(移动端):下拉列表文字对齐修复:对齐枚举此前以中文原文直出 CSS(text-align: 居中 非法值,不生效) —— 现经 body 数据属性映射为合法 CSS 值,左/中/右三档正确生效
  • 图片预览:抗锯齿模式移动端性能与手感对齐像素渲染:拖拽与双指捏合的变换写入统一改为按帧合批(一帧多次 pointermove 只写一次样式),两种渲染模式共用同一套手势管线;进出场/复位等需要同步布局的路径保持原样
  • 文档主题:侧栏折叠后顶栏生硬弹出:桌面端顶栏此前以 display: none ⇄ flex 切换显隐,无法过渡;现改为常驻布局 + transform: translateY(-100%) 与 visibility 控制 —— 折叠/常显时顶栏自顶部非线性下移出现(340ms,与侧栏、下拉变形同一缓动族),展开时收回视口上方,显示方向可随时打断;「不显示」配置仍彻底移除;「减弱动态」下退化为无过渡显隐(五款文档主题同步)

变更

  • 发布页:重新发布前确认:发布成功后点击「重新发布」圆形按钮,先弹出确认询问(说明将重新提交到目标仓库并触发 Pages 构建),确认后才执行,防误触把远端覆盖一遍
  • 发布页:发布动画重做为「外圈纯扩散 + 中心加载」:发布中的动效重做为外圈纯扩散圆环(两道错相 1/2 周期,透明度长尾渐隐、起止归零,循环点无跳变,非线性缓出),按钮中心保留同色两段式加减速加载环 —— 扩散与加载各司其职;「减弱动态」下降级处理
  • 主题配置:移除「顶栏显示归档入口」独立选项:该开关由顶栏导航中归档行的眼睛开关承担(同源配置,存量站点的设置保留),配置面板不再重复出现;归档其余功能不受影响
  • 主题配置:归档常驻导航选择器:「归档」不再依赖「顶栏显示归档入口」开关才出现在选择器 —— 默认固定参与排序与重命名(未排序时居末尾),行内眼睛开关单独控制其可见/不可见(与该配置项同源);顶栏中归档按选择列表位置渲染,数量上限仍只收敛文档项
  • 主题配置:顶栏导航重命名框溢出修复:自定义名称输入框由固定宽度改为随行宽收缩(占位提示原名称),窄面板下不再超出配置组边框
  • 独立预览窗口:返回按钮重绘:右上角「返回软件界面」按钮由分栏图标改为返回箭头图标(横线自右折回左上的角标箭头),与应用内「撤销/返回」图标族一致
  • 应用版本升至 4.0.2