🎉 Notion Files Management v1.5.0-Beta
这是 Notion Files Management 的测试版更新,基于 v1.4.6-Beta,包含 1 项新功能和 3 项 Bug 修复。
✨ 新功能
📢 公告中心
- 新增「公告」页面,左侧导航栏一键直达(位于「主页」之后)。
- 从远端拉取公告索引与 Markdown 正文,卡片流式布局内联渲染,支持置顶、标签色块、日期排序。
- 本地缓存 + 已读管理:成功拉取后写入本地缓存,网络不可用时自动回退;进入公告页即标记全部已读。
- 主页顶部新增公告未读提醒横幅(液态玻璃风格),显示未读条数,点击「查看公告」一键跳转。
- 服务端热更新:只需在服务端推送新的
idx.json+.md文件,客户端无需发版即可展示新公告。
🐛 Bug 修复
🔄 设置页自动更新进度条跨页面切换后消失
- 根因:WPF 的
Page在导航切换时被卸载并销毁,切换回设置页时创建全新实例,旧实例上的下载进度更新已不可见。 - 修复:新增
AutoUpdateSession单例会话(与DownloadSession/UploadSession同模式),持久化下载状态;页面加载时从 Session 恢复进度条,通过 200ms 轮询定时器实时同步 UI。
📐 主页提醒横幅布局异常
- 根因:版本更新横幅与公告未读横幅各自使用硬编码
Margin定位,当其中一个不可见时另一个悬浮在页面中间。 - 修复:两个横幅统一包裹在
StackPanel中自动堆叠,Collapsed时不占空间,剩余横幅自动贴靠顶部。
🔗 公告页 Markdown 链接不可点击
- 根因:MdXaml 渲染的 Hyperlink 路由事件未正确冒泡至页面。
- 修复:在
NoticePage注册Hyperlink.RequestNavigateEvent处理器,捕获链接点击并通过Process.Start打开浏览器。
🔧 技术变更
新增文件
| 文件 | 说明 |
|---|---|
Services/AutoUpdateSession.cs | 自动更新会话单例,持久化下载进度与状态 |
Models/NoticeItem.cs | 公告数据模型(含 Markdown 正文、加载状态,支持 INotifyPropertyChanged) |
Models/NoticeIndex.cs | 公告索引 idx.json 反序列化模型 |
Services/NoticeService.cs | 公告网络请求 + 本地缓存 + 已读管理服务 |
Views/NoticePage.xaml | 公告中心页面 UI(卡片流式布局 + MdXaml Markdown 渲染) |
Views/NoticePage.xaml.cs | 公告页面逻辑(加载、刷新、排序、已读标记、链接处理) |
Utils/NoticeConverters.cs | 值转换器集合(Bool↔Visibility、Tag↔颜色映射) |
修改文件
| 文件 | 变更说明 |
|---|---|
MainWindow.xaml | 导航栏新增「公告」菜单项(Megaphone24 图标) |
App.xaml.cs | 启动时 fire-and-forget 预加载公告索引 |
Views/DashboardPage.xaml | 新增公告未读横幅 + 横幅布局改为 StackPanel 自动堆叠 |
Views/DashboardPage.xaml.cs | 新增未读数检测 + 横幅动画 + 导航跳转 |
Views/SettingsPage.xaml.cs | 集成 AutoUpdateSession + 轮询恢复机制 |
NuGet 依赖变更
| 包名 | 操作 | 版本 | 用途 |
|---|---|---|---|
MdXaml | 新增 | 1.27.0 | Markdown → FlowDocument 渲染(公告正文) |
版本号
Version: 1.4.6-Beta → 1.5.0-BetaInformationalVersion: 1.4.6-Beta → 1.5.0-Beta
📦 下载
内嵌 Python 3.11,无需单独安装 Python。
💻 系统要求
- Windows 10 (1809+) · x64
- 最低 2 GB RAM
🚀 快速开始
- 在 Notion 的 Notion Integrations 创建 Integration,复制 Token(
ntn_开头)。 - 在 Notion 页面 →
…→ Add connections → 选择你的 Integration。 - 打开应用 → 设置 → 粘贴 Token → 保存 → 开始使用。
⚠️ 已知问题
- 仅支持 Windows x64。
- 程序重启后任务不会持久化(仅内存保存)。
- 暂不支持断点续传。
- 数据源迁移基于标题匹配,同名页面可能导致映射不精确。
🐛 反馈
如果觉得有用,欢迎给项目点个 ⭐ Star! · 赞助支持 ❤️
发布于 2026年2月21日 · 版本:1.5.0-Beta
🎉 Notion Files Management v1.5.0-Beta
This is a beta update of Notion Files Management, building on v1.4.6-Beta with 1 new feature and 3 bug fixes.
✨ New Features
📢 Notice Center
- New "Notices" page accessible from the sidebar navigation (below "Home").
- Fetches notice index and Markdown content from the remote server, rendered inline with a card-flow layout. Supports pinning, tag color badges, and date-based sorting.
- Local cache + read tracking: Successfully fetched data is cached locally; falls back to cache when offline. Entering the notice page marks all as read.
- New unread notice banner on the Dashboard (liquid glass style), showing unread count with a one-click "View Notices" navigation button.
- Server-side hot update: Simply push new
idx.json+.mdfiles on the server — no client release required to display new notices.
🐛 Bug Fixes
🔄 Auto-Update Progress Bar Disappears After Page Switch
- Root cause: WPF
Pageinstances are destroyed on navigation. Switching back to Settings creates a new instance, losing the active download progress. - Fix: Added
AutoUpdateSessionsingleton (same pattern asDownloadSession/UploadSession) to persist download state. On page load, progress is restored from the session and synchronized via a 200ms polling timer.
📐 Dashboard Banner Layout Issue
- Root cause: Update banner and notice banner each used hardcoded
Marginpositioning. When one was hidden, the other floated in the middle of the page. - Fix: Both banners are now wrapped in a
StackPanelfor automatic stacking.Collapsedelements take no space; remaining banners snap to the top.
🔗 Notice Page Markdown Links Not Clickable
- Root cause: MdXaml-rendered Hyperlink routed events were not bubbling up to the page.
- Fix: Registered a
Hyperlink.RequestNavigateEventhandler onNoticePageto capture link clicks and open URLs viaProcess.Start.
🔧 Technical Changes
New Files
| File | Description |
|---|---|
Services/AutoUpdateSession.cs | Auto-update session singleton, persists download progress and state |
Models/NoticeItem.cs | Notice data model (with Markdown content, loading state, INotifyPropertyChanged) |
Models/NoticeIndex.cs | Notice index idx.json deserialization model |
Services/NoticeService.cs | Notice HTTP requests + local cache + read tracking service |
Views/NoticePage.xaml | Notice center page UI (card-flow layout + MdXaml Markdown rendering) |
Views/NoticePage.xaml.cs | Notice page logic (loading, refresh, sorting, read tracking, link handling) |
Utils/NoticeConverters.cs | Value converters (Bool↔Visibility, Tag↔Color mapping) |
Modified Files
| File | Changes |
|---|---|
MainWindow.xaml | Added "Notices" nav item (Megaphone24 icon) |
App.xaml.cs | Fire-and-forget notice index preload on startup |
Views/DashboardPage.xaml | Added notice unread banner + refactored banner layout to StackPanel |
Views/DashboardPage.xaml.cs | Added unread count detection + banner animation + navigation |
Views/SettingsPage.xaml.cs | Integrated AutoUpdateSession + polling restore mechanism |
NuGet Dependency Changes
| Package | Action | Version | Purpose |
|---|---|---|---|
MdXaml | Added | 1.27.0 | Markdown → FlowDocument rendering (notice content) |
Version
Version: 1.4.6-Beta → 1.5.0-BetaInformationalVersion: 1.4.6-Beta → 1.5.0-Beta
📦 Download
Built-in Python 3.11, no separate Python installation required.
💻 System Requirements
- Windows 10 (1809+) · x64
- Minimum 2 GB RAM
🚀 Quick Start
- Create an Integration in Notion via Notion Integrations and copy the Token (starts with
ntn_). - In your Notion page →
…→ Add connections → Select your Integration. - Open the application → Settings → Paste the Token → Save → Start using.
⚠️ Known Issues
- Only supports Windows x64.
- Tasks are not persistent after restarting the program (memory-only storage).
- Breakpoint resume is not supported yet.
- Data source migration uses title-based matching; pages with identical titles may cause imprecise mapping.
🐛 Feedback
Submit Issues · Join Discussions
If you find this project helpful, feel free to give it a ⭐ Star! · Sponsor ❤️
Released on February 21, 2026 · Version: 1.5.0-Beta
