ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

novelWriter 版本演进深度解析:从 2.0 到 2026.2 的核心技术脉络与生态变迁

novelWriter 版本演进深度解析:从 2.0 到 2026.2 的核心技术脉络与生态变迁 桌面应用【免费下载链接】novelWriternovelWriter is an open source plain text editor designed for writing novels项目地址https://gitcode.com/gh_mirrors/no/novelWriter点击查看免费下载导读本文以仓库根目录的 CHANGELOG.md共 7000 余行为骨架系统梳理 novelWriter 从 2.0 时代到 2026.2.1 的完整版本演进史聚焦编辑器内核变迁、项目存储格式升级、Manuscript 构建管线扩展、Qt 框架迁移、主题与国际化体系重构等核心技术主线。读完本文你将掌握该纯文本小说写作软件每个大版本的关键能力变化、对应的 Issue/PR 编号与源码落点从而准确判断某个功能特性在哪个版本引入、在当前仓库的哪个模块中实现。一、版本号体系变革从语义化版本到年份版本novelWriter 在 2026.1 Beta 1 中做出了一项影响深远的决策版本号从传统的 2.x 语义化版本切换为年份制版本Discussion #2667PR #2669。此后发布的新版本不再延续 2.9 的编号而是直接命名为 26.1 / 2026.1应用内展示为 2026.1。这一变更让用户可以从版本号直接判断软件发布的年份与迭代序号。从 CHANGELOG.md 可以归纳出该项目的固定发布节奏正式版如 2026.22026-09-05、2026.12026-04-26补丁版patch如 2026.2.12026-09-26、2026.1.22026-07-25、2026.1.12026-06-28通常只修复少量缺陷并更新翻译候选版RC与测试版Beta如 2026.2 RC 1、2026.2 Beta 1/2CHANGELOG 中反复提示适用于测试目的请在真实写作项目上谨慎使用并经常备份。仓库当前最新记录为2026.2.1 [2026-09-26]该补丁版修复了编辑器与查看器中标签悬停卡片图标不随主题切换刷新的问题并在崩溃报告中加入构建元数据、对已弃用的 Launchpad PPA 安装用户给出警告。二、项目文件与存储格式的演进2.1 文档正文改为.md 标准 TOML 头2026.2 Beta 2 实施了一项存储格式的根本性变更项目文档改为带.md扩展名的文本文件头部使用标准 TOML 格式取代了旧的专有格式与扩展名Issue #1964PR #2945。这一变更可以从仓库的示例项目中直接验证——sample/content/ 目录下的所有文档均为.md文件而项目索引文件仍为 sample/nwProject.nwx。项目文件格式的解析与读写实现位于 novelwriter/core/projectxml.py。2.2 项目文件格式版本持续抬升2026.2PR #2984项目文件格式版本提升至1.6目的是直接阻止旧版本 novelWriter 打开它本就无法正确读取的项目2.3.1PR #1748随 Templates 根文件夹类型的加入版本升至 1.5 Revision 32.3 正式版应为 Revision 2此处属于补记仓库 tests/_files/ 中保存了nwProject-1.0.nwx到nwProject-1.6.nwx各历史版本的项目文件配合 tests/core/test_projectxml.py 可验证各格式版本的向后兼容解析。2.3 缓存写入策略与文档变更检测2026.2 Beta 2 对索引缓存与项目级 GUI 状态 JSON 文件的写入策略做了优化不再在每次自动保存时写盘只在手动保存或项目关闭时写入并在打开项目时用修订号验证缓存是否过期Issue #2931PR #2944过期的缓存会被自动重建。更早的 2.1 RC 1 则给文档文件增加了文本哈希SHA1与创建/更新时间戳元数据PR #1509用于检测文档在 novelWriter 之外被改动的情况。2.1 Beta 1 还统一了项目元数据文件word list 转为 JSON 文件、session log 转为 JSON Lines 文件旧文件在打开项目时自动转换PR #1464。2.4 配置文件与主题全面 TOML 化2026.2 Beta 1 将应用配置文件与全部主题文件从 Linux 风格配置格式转换为 TOMLPRs #2883、#2885。当前仓库 novelwriter/assets/themes/ 下 90 余个.toml主题文件default_dark、default_light、catppuccin_mocha、nord、lcars 等即为该变更的直接产物。三、编辑器内核的两次转身纯文本与富文本编辑器底层实现是 novelWriter 技术演进中最值得关注的一条主线2.2 Beta 1——转向纯文本编辑器PRs #1521、#1525编辑器改为真正的纯文本控件响应更快、可承载更大的文档因此移除了大文档限制同时代价是滚动从逐像素变为逐行。2026.2 Beta 1——切回完整富文本编辑器Issue #2815PRs #2816、#2860、#2878为支撑行高、文本缩放、富文本粘贴等新功能底层文本控件换回完整富文本编辑器从编辑器复制文本仍输出纯文本。同批改动收窄了编辑器重新初始化的触发条件修复了部分 Preferences 设置无法即时刷新 GUI 的问题。与之配套的是拼写检查架构的重构PR #2812拼写检查从语法高亮器中移出改为分块、定时的后台进程与搜索高亮共用同一套基于文本块的缓存机制。2026.2 Beta 1 还通过缓存高亮结果与字典查询大幅提升拼写检查性能并对超过 20000 字符的超长段落跳过语法高亮与拼写检查以保持大文档的响应性PRs #2808、#2861、#2862、#2863。相关实现位于 novelwriter/editor/highlighter.py、novelwriter/core/spellcheck.py。四、写作与编辑功能的持续扩展4.1 短代码Shortcode格式体系2.2 Beta 1 引入了 HTML 风格的方括号短代码[b]text[/b]表示加粗支持粗体、斜体、删除线、下划线、上标、下标PRs #1540、#1583。与 Markdown 语法相比短代码不受单词边界限制可以作用于单词中间、支持重叠格式。2.4 又新增[m]高亮标记Mark 语义PR #1715。2026.2 Beta 1 还允许----四个连字符作为标题插入一条跨页水平线Issue #2755PRs #2771、#2772。格式化解析与短代码替换的实现见 novelwriter/text/ 与 novelwriter/formats/tokenizer.py。4.2 标签、引用与注释体系大小写不敏感2.2 Beta 1Issue #1313标签引用不再区分大小写界面显示仍保留定义时的大小写自动补全菜单2.2 Beta 1PR #1581以开头的行触发关键词与引用建议随输入过滤从未定义标签一键创建笔记2.2 Beta 1PR #1582story与mentions关键字2.6 Beta 1PRs #2064、#2072分别引用小说文档中的标签与提及标签标签悬停卡片2026.2 Beta 1PR #2859编辑器与查看器中悬停标签即可弹出卡片并快捷打开关联文档注释补全器2.7 RC 1PR #2290新行以%开头时弹出 Synopsis、Short、Story、Note 选项后两者加句点后还可联想历史键值故事结构注释2.7 Beta 1PRs #2255 等用于写作技法分析的文本内注释可编入手稿并从 Outline View 导出 CSV详见 docs/source/features/story_comments.rst%Note.term:手稿笔记2.7 RC 1PR #2346带自由格式术语的注释导出时随文展示并作为 Outline View 导出列%~永不导出注释2.3 Beta 1PR #1690与普通%注释不同%~无论如何都不会进入手稿。4.3 对话高亮的多语言适配对话高亮在 2.5 Beta 1 被彻底重设计PR #1864从引用文本高亮变为真正的对话高亮规则2.6 Beta 1 增加了葡萄牙语与波兰语对话风格PRs #2068 等2.6 Beta 2 改进了中文等无空格分词语言的对话检测Issue #21312.6 RC 1 优化了含撇号的单引号对话识别。对话高亮还从 2.5 RC 1 起仅应用于小说文档而非笔记并可作用到 HTML/ODT 手稿与预览。相关规则文件见 novelwriter/text/patterns.py功能说明见 docs/source/features/dialogue.rst。4.4 输入方式与快捷键Vim 模式2.8 RC 1由 idealemu 贡献可在 Preferences 中启用CtrlUp/CtrlDown2026.1 Beta 1PR #2679在段间移动光标CtrlT/CtrlE/CtrlShiftT2.2 Beta 1PR #1590焦点在项目树/小说树、编辑器、大纲视图间切换ShiftEnter2026.1 Beta 1在项目搜索中于查看器打开文档CtrlShiftV纯文本粘贴2026.2PR #2980富文本粘贴引入后恢复了纯文本粘贴快捷键富文本HTML粘贴2026.2 Beta 1PRs #2876、#2878不再剥离行首行尾空白文本缩放2026.2 Beta 1PR #2822使用标准 Qt 缩放快捷键当前行高亮2.8 Beta 1PR #2405可在 Preferences 启用。4.5 目标追踪与统计项目写作目标与每日进度2026.2 Beta 1PRs #2870 等以进度条展示跨天正确重置可选择排除特定根文件夹对话统计2026.2 Beta 1PR #2841统计对话用字符数与对话/散文比例统计面板移至左侧面板新标签页字符数统计开关2026.2 Beta 2PR #2919写作目标可切换字符计数主显示统计切换为字符数2.7 RC 1PR #2323Appearance 设置项。五、Manuscript 构建工具与导出格式5.1 构建工具的三阶段演进2.1 Beta 1全新 Manuscript Build 工具上线PRs #1389、#1466支持多套构建定义preset、细粒度文档筛选与带语法高亮的标题格式编辑器2.2 Beta 1 支持构建定义排序2.4 系列构建工具大面积扩展——分区/章/场景标题的居中与分页控制、隐藏任意标题、元数据分类过滤、首行缩进、HTML 输出标签页处理独立设置、Markdown 构建可排除硬换行、每文档级包含/排除覆盖PRs #1723、#1759、#1761 等2026 系列2026.2 Beta 1 增加标题格式区段加粗、彩色、大写、各级标题字号独立调整、空行替代页边距选项、手动换行段落的两端对齐扩展选项PRs #2647、#2650、#2649、#2769 等2026.2 让构建设置对话框基于设置副本工作未保存即关闭全部丢弃PR #2351。5.2 导出格式的扩张格式引入版本说明OpenDocument (ODT)早期即有2.0.5 起符合 ODF 1.3 extended 并支持 LibreOffice 元数据2.5 起页边距随字号缩放HTML早期即有2.8.2 起小说标题与分区标题以大字段落而非 HTML 标题导出2.5 RC 1 修复段落内未闭合 HTML 标签Markdown早期即有2.4 Beta 1 起可排除硬换行PDF2.6 Beta 1PR #20482.8.2 修复约 600–700 页后停止生成的 A4 分页问题上限提升至约 11000 页DocX (MS Word)2.6 Beta 1PR #20562026.1 起默认不再展开硬换行2026.2 Beta 1 起支持手动换行段落的扩展对齐EPUB 32026.2 Beta 1PR #2283最新加入的电子书格式2026.2 同时统一了各格式的标题层级章节为 level 1、场景为 level 2、小节为 level 3此前仅 HTML 如此以适配下游处理工具。上述格式的生成器全部位于 novelwriter/formats/todocx.py、toepub.py、tohtml.py、toodt.py、tomarkdown.py、topdf 相关构建流程见 novelwriter/manuscript/docbuild.py对应的参考输出文件在 tests/_reference/如fmtToDocX_SaveDocument_document.xml、fmtToEPub_Save_package.opf。六、界面、主题与无障碍体系6.1 主题系统重构2.8 Beta 1 完成了一次大的主题合并GUI 主题与语法主题合并为单一主题Issue #2335PR #2373并提供浅色/深色双 GUI 主题设置侧边栏新增切换按钮还可设为跟随操作系统PRs #2373、#2545。2026.2 Beta 1 又增加了更细粒度的主题变量toggle、searchMatch 等以改善组件对比度Issue #2910PRs #2911、#2915并补充了 Dark Arts、Ruby Night 等主题缺失的颜色PR #3003。6.2 主题与图标生态扩张2.8 Beta 1 一次新增十余套社区主题Aura、B2T、B4T、Everforest、New Moon、Full Moon、Nord、Nordlicht、Castle、Chernozem、Chalky Soil、Floral、Ruby、Primer、Horizon、Otium、Paragon、Selenium、Sepia、Sultana、Vivid、Warpgate、Waterlily 等全部由 HeyMyian 等贡献2.7 Beta 1 移除 TypIcons 图标集改为三套后为九种变体由官方源生成、运行时按主题色着色的图标主题PRs #2171 等2.7.4 起默认仅打包 Material Symbols含新增 Sharp 变体2026.1 Beta 1 增加Lucide 图标主题PR #2632。图标主题数据见 utils/icon_themes/主题文件见 novelwriter/assets/themes/。6.3 无障碍与默认外观色盲友好主题2026.1 Beta 1Today Deuteranopia红绿色盲与 Today Tritanopia蓝色盲两套浅色主题PR #2694屏幕阅读器支持2026.1 Beta 1、2.7 RC 1为按钮、树/列表、开关与标签建立可读名称与关联PRs #2698、#2337默认外观调整2026.2PR #2998默认行高 1.0→1.15Windows 默认字体改为 Segoe UI默认应用字号从 10pt 降至 9pt。七、平台支持、打包与安装7.1 Qt 与 Python 版本基线2.5 Beta 1最低要求升至 Python 3.9 Qt 5.15PRs #1826、#1833Ubuntu 20.04 及更老的 Debian 包不再支持2.7 Beta 1Qt6 迁移完成最低 Qt 6.4PRs #2184 等Python 3.9 支持移除最老支持 Ubuntu 24.042026.2 Beta 1默认测试与构建嵌入的 Python 版本升级到3.14PR #27862.6 Beta 1 起已加入 Python 3.13 覆盖PR #20442.8 Beta 1 与 2026.2 Beta 1 分别处理了 Qt/PyQt 6.10 的 inputMethodQuery 崩溃与 PyQt6 时间截断问题相关依赖声明见 pyproject.toml。7.2 各平台安装渠道Flatpak2026.2 Beta 2基于 Ryex 的工作PRs #2906、#2908清单见 setup/flatpak/io.novelwriter.novelwriter.ymlDebian/Ubuntu2026.2PRs #2986、#2990改为经软件包仓库发布构建版本可选新增 Linux Mint 目标2.8 起增加qt6-svg-plugins直接依赖PR #2607RPM2.7 Beta 1Fedora 41/42 包由 Benson Muite 维护PRs #2305、#2307AppImage2.7.1打包入libxcb-cursor0修复缺失问题PR #2392Windows2.7 Beta 1PRs #2197–#2199改用自定义 novelWriter.exe 启动器可直接从安装目录启动并创建桌面快捷方式macOS2026.1 RC 1 起不再产出 Mac 版本见 Issue #2618但仓库仍保留 setup/macos/ 打包模板与签名配置。7.3 崩溃报告与诊断2026.2.1 在软件包中加入构建元数据既用于崩溃报告辅助排障也用于向通过已弃用的 Launchpad PPA 安装的用户发出警告。2.2 还曾加入--meminfo命令行参数输出内存诊断数据以排查 Python/Qt 对象回收问题PR #1629。八、国际化与社区翻译CHANGELOG 的每个版本几乎都包含 Internationalisation 段落反映出该项目高度活跃的翻译协作主要经 Crowdin 进行新语言里程碑捷克语2.6.2Tomáš Zmek、俄语2.5.3k1kimosha、意大利语2.0.5Riccardo Mangili、日语2.0.7hebekeg、加泰罗尼亚语2026.1.1jaumeplanas、波兰语2.5Nauthizz2026.2 宣布挪威语、美式英语、德语、意大利语、日语、波兰语、葡萄牙语翻译完整并持续更新法语、俄语等项目语言文件tag等关键字在构建中的本地化位于 novelwriter/assets/i18n/project_*.json应用界面翻译位于 i18n/如 nw_zh_CN.ts文档翻译见 docs/source/locales/2.1.1 起默认 UI 语言在系统 locale 不可用时回退到英式英语而非列表首项PR #1565。九、代码质量与工程实践测试体系2026.2 Beta 1 启用分支覆盖率并为此前未覆盖分支补测PR #28072.7 RC 1 使用 Qt model tester 框架校验自定义数据模型PR #23312026.2 Beta 1 增加内存泄漏回归测试PRs #2829、#2830并加固易崩溃的 flaky 测试PR #2864。完整测试套件位于 tests/按模块镜像源码目录core、editor、formats、manuscript、gui 等静态检查2.7 Beta 1 起 CI 使用Pyright做类型检查、Ruff做代码风格检查PRs #2279、#2281 等代码库同时按新规则清理同版还让日志输出遵循NO_COLOR/FORCE_COLOR环境变量PR #2228依赖管理工具2.8 Beta 1 起主用UVPR #25402026.1 Beta 1 又切换到PDMPR #2678当前仓库保留 uv.lock打包工具链pkgutils CLIpkgutils.py持续迭代2026.2.1 增加了 i18n 文件校验与终端彩色输出PR #30312.4 RC 1 起打包元数据完全迁移到pyproject.tomlPR #1791。十、结语与查阅建议从 2.0 到 2026.2novelWriter 走过了纯文本编辑器→富文本编辑器的内核回转、从 Qt5 到 Qt6 的框架迁移、从专有存储到.md TOML的格式开放、从单一 ODT/HTML 输出到 PDF/DocX/EPUB 3 全格式构建以及主题、图标、翻译三大生态体系的持续扩张。所有结论均可追溯到 CHANGELOG.md 中的 Issue/PR 编号并在以下位置找到对应实现项目存储与解析novelwriter/core/projectxml.py、project.py、storage.py编辑器与查看器novelwriter/editor/editor.py、highlighter.py手稿构建与导出novelwriter/manuscript/ 与 novelwriter/formats/主题与图标novelwriter/assets/themes/、novelwriter/assets/icons/、utils/icon_themes/用户文档docs/source/对话、故事注释、Vim 模式等专题见 docs/source/features/。若需定位某特性引入的具体版本可在 CHANGELOG.md 中按关键词检索对应版本的 Feature 段落再顺着 Issue/PR 编号进入对应源码与测试文件交叉验证。赞分享桌面应用【免费下载链接】novelWriternovelWriter is an open source plain text editor designed for writing novels项目地址https://gitcode.com/gh_mirrors/no/novelWriter点击查看免费下载相关推荐COLMAP 版本演进与核心技术脉络从 4.0 到 4.2 的 Changelog 深度解读COLMAP 版本演进与核心技术脉络从 4.0 到 4.2 的 Changelog 深度解读 本文以仓库根目录 CHANGELOG.rst https://l计算机视觉图形学图像处理CyberStrikeAI3条命令跑起一个安全测试平台CyberStrikeAI3条命令跑起一个安全测试平台 新服务上线前需要做一轮安全体检时你还要手动装十几款工具再一个个跑吗CyberStrikeAI 是一网络安全渗透测试人工智能大模型AI AgentRAG后端前端MCP 服务漏洞扫描efinance 版本演进与核心功能深度解析从 v0.3.0 到 v0.5.9 的完整技术脉络efinance 版本演进与核心功能深度解析从 v0.3.0 到 v0.5.9 的完整技术脉络 本篇技术指南以 changelog.md https://li金融科技数据分析网页爬虫上一篇iOS开发终极指南CocoaPods与Carthage深度对比与实战选择下一篇Ready Player Me Animation Library专业游戏动画解决方案的技术实现与应用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表