V2.1.0
- 修复了markdown预览在新文件输入时无法换行的bug,
本次更新主要集中在 MarkdownRenderService.cs,旨在修复 WebView 的布局问题并优化视觉体验。
核心修复
修复长文本不换行问题: 在注入的 CSS 中添加了 word-wrap: break-word 和 overflow-wrap: break-word,解决了连续无空格字符(如长 URL 或测试文本)导致页面横向撑开的问题。
修复 WebView 闪烁: 在 JS 更新逻辑中引入了 minHeight 锁定机制。在替换 HTML 内容前锁定容器高度,防止因 DOM 瞬间清空导致的滚动条跳动。
样式优化
图片响应式: 新增 img { max-width: 100%; ... } 样式,确保大尺寸图片自动缩放以适应编辑器宽度,不再撑破布局。
深色/浅色主题适配: LoadSkeletonAsync 方法现根据 ElementTheme 动态注入背景色 (bgColor) 和文字颜色 (bodyColor),消除深色模式下加载时的“白屏”闪烁。
代码块与表格优化: 优化了 pre 和 table 的样式,增加了圆角和独立的横向滚动条,防止代码或表格内容影响整体页面布局。
GitHub 风格提示框 (Alerts): 在 JS 后处理中增加了对 [!NOTE] 和 [!WARNING] 语法的解析,将其渲染为带颜色的警告框。
技术细节
Base64 解码增强: 采用了 UTF-8 兼容的 Base64 解码方案 (decodeURIComponent(escape(window.atob(...)))),解决了中文乱码问题。
IE11 兼容性: 在 HTML 头中显式声明了 ,确保 Windows 8.1 WebView 使用最新的渲染模式。
-
使用MarkDig的 .UseSoftlineBreakAsHardlineBreak() 方法将单个enter视为换行.
-
双轨制渲染, 现在预览看到的是实时的预览了.
-
删去了appbar里的Remove键, 因为功能和标签页旁边的X重复了
5, Richeditbox下方新增安全区用于呼出appbar
-
新增了wp app
-
修复按下tab无法缩进的bug(windows phone下无效)
-
新增撤销(appbar与ctrl z)
-
webview和richedit 不在一起的时候打字很卡 --- 使用split view同步滚动功能来修复(并没有彻底修复)(推测是双轨制渲染的实时部分导致整个页面实时刷新而非一行)
-
使用了ie11兼容的hightlight.js v9.18.5, 修改代码高亮样式为atom-one-light/dark(ie11不支持tokyo night的css写法)
-
加入自动保存机制, 可在charmbar的设置里选择是否开启以及自定义频率
-
添加了保存时的progress bar(没弄好,不显示)
-
修复了wp app的返回键功能
-
wp app的autosave设置放到首页
-
调整rich editbox 字体大小设置逻辑, 更为健壮 升级 ApplyEditorFormatting 方法:加入了“强制覆盖全文格式”的逻辑。这是解决 SetText 后字体回退的根本方案。它不仅设置默认输入格式,还会抓取当前全文范围(Range),强行把字体刷成 Consolas,但保留高亮颜色。
完善调用链:在 OpenFileAsync 中补上了 ApplyEditorFormatting() 的调用(之前漏了,导致打开文件时字体可能不对)。
异常保护:给格式设置加上了 try-catch,防止 COM 组件底层偶发异常导致崩溃。
- 修改 wp app的导出格式为...菜单里的平铺
计划添加
- 主题功能, 支持用户自由上传首页主题图片,支持对接bing每日 自动缩放, 深色/浅色加上 半透明黑色/白色遮罩
- 重绘图标
- 改名为MarkBlocks