Skip to content

🌐 中文 | English


🎉 Notion Files Management v1.5.0-Status

这是 Notion Files Management 的正式版更新,基于 v1.4.6-Beta,包含 4 项新功能、1 项性能优化和 4 项 Bug 修复。


新功能

📢 公告中心

  • 新增「公告」页面,左侧导航栏一键直达(位于「主页」之后)。
  • 从远端拉取公告索引与 Markdown 正文,卡片流式布局内联渲染,支持置顶、标签色块、日期排序。
  • 本地缓存 + 已读管理:成功拉取后写入本地缓存,网络不可用时自动回退;进入公告页即标记全部已读。
  • 主页顶部新增公告未读提醒横幅(液态玻璃风格),显示未读条数,点击「查看公告」一键跳转。
  • 服务端热更新:只需在服务端推送新的 idx.json + .md 文件,客户端无需发版即可展示新公告。

🖼️ 自动推送背景

  • 背景材质新增「自动推送图片」选项,设为默认材质(替代原 Mica)。
  • 启动时自动从服务端拉取预设背景配置(HTTPS→HTTP 降级),下载并缓存到本地。
  • 切换预设:卡片式布局预览面板,带缩略图(图片)或 🎬 占位符(视频),选中项高亮。
  • 不透明度调节:滑条控制遮罩层不透明度(越高壁纸越暗),默认 30%。
  • 根据文件后缀自动识别图片(.png/.jpg/.jpeg/.bmp/.gif/.webp)或视频(.mp4)。
  • 无网络时自动回退 Mica 材质。

🧹 清除一切缓存

  • 工具箱新增「清除一切缓存」工具,一键递归清除 %AppData%/NotionFilesManagement/ 下所有数据。
  • 包含配置文件、背景缓存、公告缓存、已读标记、日志等。
  • 红色危险按钮 + 二次确认,清除后建议重启应用。

🚀 预设背景三层缓存

  • 配置 JSON 磁盘缓存:优先读取本地缓存的 config.json,瞬间加载,后台静默刷新。
  • 缩略图磁盘缓存:预设图片缓存到 background_cache/thumbs/,避免每次重新下载。
  • 预设切换就地更新:选中预设时仅更新边框和文本样式,不再重建所有卡片。
  • 离线或网络差时可使用上次缓存的配置和缩略图。

🐛 Bug 修复

🔄 设置页自动更新进度条跨页面切换后消失

  • 根因:WPF 的 Page 在导航切换时被卸载并销毁,切换回设置页时创建全新实例,旧实例上的下载进度更新已不可见。
  • 修复:新增 AutoUpdateSession 单例会话(与 DownloadSession / UploadSession 同模式),持久化下载状态;页面加载时从 Session 恢复进度条,通过 200ms 轮询定时器实时同步 UI。

📐 主页提醒横幅布局异常

  • 根因:版本更新横幅与公告未读横幅各自使用硬编码 Margin 定位,当其中一个不可见时另一个悬浮在页面中间。
  • 修复:两个横幅统一包裹在 StackPanel 中自动堆叠,Collapsed 时不占空间,剩余横幅自动贴靠顶部。

🔗 公告页 Markdown 链接不可点击

  • 根因:MdXaml 渲染的 Hyperlink 路由事件未正确冒泡至页面。
  • 修复:在 NoticePage 注册 Hyperlink.RequestNavigateEvent 处理器,捕获链接点击并通过 Process.Start 打开浏览器。

🏷️ 背景不透明度标签语义统一

  • 根因:「自动推送」和「视频或图片」两处背景设置滑条均标注"透明度",但实际控制遮罩不透明度,语义混淆;且两个模式下同一滑条值效果完全相反。
  • 修复:两处标签统一改为"不透明度";视频或图片模式滑条做 1 - stored 反转;统一语义:不透明度越高 → 壁纸越暗。配置存储格式不变,向后兼容。

🔧 技术变更

新增文件

文件说明
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↔颜色映射)

修改文件

文件变更说明
AppConfig.cs新增 AutoPushBackgroundNameAutoPushBackgroundSrcAutoPushTransparency 字段;默认材质改为 AutoPush
Notion-Files-Management.csproj版本从 1.4.6-Beta 升级至 1.5.0-Status
MainWindow.xaml导航栏新增「公告」菜单项(Megaphone24 图标)
MainWindow.xaml.cs新增 ApplyAutoPushBackgroundAsync()ApplyAutoPushFile()GetBgCacheDir() 及相关数据模型
App.xaml.cs启动时 fire-and-forget 预加载公告索引
Views/DashboardPage.xaml新增公告未读横幅 + 横幅布局改为 StackPanel 自动堆叠
Views/DashboardPage.xaml.cs新增未读数检测 + 横幅动画 + 导航跳转
Views/SettingsPage.xaml新增 AutoPush 设置面板;两处"透明度"标签改为"不透明度";说明文字更新
Views/SettingsPage.xaml.cs集成 AutoUpdateSession;三层缓存机制(FetchBgConfigAsync() 重构、RefreshBgConfigFromNetworkAsync()SaveBgConfigCache()LoadThumbnailAsync() 重构、GenerateThumbCacheFileName()UpdatePresetCardSelectionStyles());Image 模式滑条反转
Views/ToolsPage.xaml新增"清除一切缓存"卡片(含确认 InfoBar)
Views/ToolsPage.xaml.cs新增 ClearAllCache_Click()ConfirmClearAllCache_Click()CancelClearAllCache_Click()

NuGet 依赖变更

包名操作版本用途
MdXaml新增1.27.0Markdown → FlowDocument 渲染(公告正文)

版本号

  • Version: 1.4.6-Beta → 1.5.0-Status
  • InformationalVersion: 1.4.6-Beta → 1.5.0-Status

📦 下载

Notion-Files-Management.exe

内嵌 Python 3.11,无需单独安装 Python


💻 系统要求

  • Windows 10 (1809+) · x64
  • 最低 2 GB RAM

🚀 快速开始

  1. 在 Notion 的 Notion Integrations 创建 Integration,复制 Token(ntn_ 开头)。
  2. 在 Notion 页面 → Add connections → 选择你的 Integration。
  3. 打开应用 → 设置 → 粘贴 Token → 保存 → 开始使用。

⚠️ 已知问题

  • 仅支持 Windows x64。
  • 程序重启后任务不会持久化(仅内存保存)。
  • 暂不支持断点续传。
  • 数据源迁移基于标题匹配,同名页面可能导致映射不精确。

🐛 反馈

提交问题 · 参与讨论(GitHub)

如果觉得有用,欢迎给项目点个 ⭐ Star! · 赞助支持 ❤️


发布于 2026年2月22日 · 版本:1.5.0-Status


🎉 Notion Files Management v1.5.0-Status

This is a stable release of Notion Files Management, building on v1.4.6-Beta with 4 new features and 4 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 + .md files on the server — no client release required to display new notices.

🖼️ Auto-Push Backgrounds

  • New "Auto-Push Image" background material option, now the default material (replacing Mica).
  • Automatically fetches preset background configurations from the server on startup (HTTPS→HTTP fallback), downloads and caches locally.
  • Switch Presets: Card-layout preview panel with thumbnails (images) or 🎬 placeholders (videos), selected item highlighted.
  • Opacity Control: Slider controls overlay opacity (higher = darker wallpaper), default 30%.
  • Automatically detects image (.png/.jpg/.jpeg/.bmp/.gif/.webp) or video (.mp4) by file extension.
  • Falls back to Mica material when offline.

🧹 Clear All Cache

  • New "Clear All Cache" tool in the Toolbox, recursively clears all data under %AppData%/NotionFilesManagement/.
  • Includes config files, background cache, notice cache, read markers, logs, etc.
  • Red danger button with confirmation prompt; recommends restarting after clearing.

🚀 Three-Layer Preset Background Cache

  • Config JSON disk cache: Prioritizes local cached config.json for instant loading, silently refreshes in background.
  • Thumbnail disk cache: Preset images cached to background_cache/thumbs/, avoiding redundant downloads.
  • In-place preset switching: Selecting a preset updates border and text styles only, no card rebuilding.
  • Cached config and thumbnails available when offline or on poor network.

🐛 Bug Fixes

🔄 Auto-Update Progress Bar Disappears After Page Switch

  • Root cause: WPF Page instances are destroyed on navigation. Switching back to Settings creates a new instance, losing the active download progress.
  • Fix: Added AutoUpdateSession singleton (same pattern as DownloadSession / 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 Margin positioning. When one was hidden, the other floated in the middle of the page.
  • Fix: Both banners are now wrapped in a StackPanel for automatic stacking. Collapsed elements take no space; remaining banners snap to the top.
  • Root cause: MdXaml-rendered Hyperlink routed events were not bubbling up to the page.
  • Fix: Registered a Hyperlink.RequestNavigateEvent handler on NoticePage to capture link clicks and open URLs via Process.Start.

🏷️ Unified Background Opacity Label Semantics

  • Root cause: Both "Auto-Push" and "Video/Image" background sliders were labeled "Transparency" but actually controlled overlay opacity, causing confusion. The same slider value produced opposite visual effects across modes.
  • Fix: Both labels changed to "Opacity"; Video/Image mode slider inverted (1 - stored). Unified semantics: higher opacity → darker wallpaper. Config storage format unchanged, fully backward compatible.

🔧 Technical Changes

New Files

FileDescription
Services/AutoUpdateSession.csAuto-update session singleton, persists download progress and state
Models/NoticeItem.csNotice data model (with Markdown content, loading state, INotifyPropertyChanged)
Models/NoticeIndex.csNotice index idx.json deserialization model
Services/NoticeService.csNotice HTTP requests + local cache + read tracking service
Views/NoticePage.xamlNotice center page UI (card-flow layout + MdXaml Markdown rendering)
Views/NoticePage.xaml.csNotice page logic (loading, refresh, sorting, read tracking, link handling)
Utils/NoticeConverters.csValue converters (Bool↔Visibility, Tag↔Color mapping)

Modified Files

FileChanges
AppConfig.csAdded AutoPushBackgroundName, AutoPushBackgroundSrc, AutoPushTransparency fields; default material changed to AutoPush
Notion-Files-Management.csprojVersion upgraded from 1.4.6-Beta to 1.5.0-Status
MainWindow.xamlAdded "Notices" nav item (Megaphone24 icon)
MainWindow.xaml.csAdded ApplyAutoPushBackgroundAsync(), ApplyAutoPushFile(), GetBgCacheDir() and related data models
App.xaml.csFire-and-forget notice index preload on startup
Views/DashboardPage.xamlAdded notice unread banner + refactored banner layout to StackPanel
Views/DashboardPage.xaml.csAdded unread count detection + banner animation + navigation
Views/SettingsPage.xamlAdded AutoPush settings panel; both "Transparency" labels changed to "Opacity"; description text updated
Views/SettingsPage.xaml.csIntegrated AutoUpdateSession; three-layer caching (FetchBgConfigAsync() refactored, RefreshBgConfigFromNetworkAsync(), SaveBgConfigCache(), LoadThumbnailAsync() refactored, GenerateThumbCacheFileName(), UpdatePresetCardSelectionStyles()); Image mode slider inversion
Views/ToolsPage.xamlAdded "Clear All Cache" card (with confirmation InfoBar)
Views/ToolsPage.xaml.csAdded ClearAllCache_Click(), ConfirmClearAllCache_Click(), CancelClearAllCache_Click()

NuGet Dependency Changes

PackageActionVersionPurpose
MdXamlAdded1.27.0Markdown → FlowDocument rendering (notice content)

Version

  • Version: 1.4.6-Beta → 1.5.0-Status
  • InformationalVersion: 1.4.6-Beta → 1.5.0-Status

📦 Download

Notion-Files-Management.exe

Built-in Python 3.11, no separate Python installation required.


💻 System Requirements

  • Windows 10 (1809+) · x64
  • Minimum 2 GB RAM

🚀 Quick Start

  1. Create an Integration in Notion via Notion Integrations and copy the Token (starts with ntn_).
  2. In your Notion page → Add connections → Select your Integration.
  3. 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 22, 2026 · Version: 1.5.0-Status

Released under the MIT License.