一个由社区驱动的开源故事

Xournal++ 不是某家公司的产品,而是一群热爱手写与开源的人,用业余时间共同打磨的工具。下面是这个项目从诞生到今天的完整脉络。

项目起源

从 Xournal 到 Xournal++

Xournal++ 的故事要从一个更早的项目说起。Xournal 是 Denis Auroux 于 2002 年发起的 Linux 桌面笔记应用,曾是当时 GNU/Linux 平台上少数能稳定支持手写输入的开源软件之一。然而随着时间推移,原项目的维护逐渐放缓,UI 也停留在较早的 GTK 2 时代,许多现代化需求(如多图层、压感精细化、跨平台支持)无法得到满足。

2017 年,一群长期使用 Xournal 的开发者在 GitHub 上 fork 了原项目,命名为 Xournal++——两个加号既代表"在原项目基础上的进化",也象征"plus plus"的更高级版本。fork 之后,团队完成了从 GTK 2 到 GTK 3 的迁移,重写了渲染引擎,加入了多图层、LaTeX 渲染、音频同步、Lua 插件系统等大量新功能,并陆续将支持平台扩展到 Windows 与 macOS。

经过数年迭代,Xournal++ 已经成为 GitHub 上最受欢迎的开源笔记应用之一,累计获得超过 12000 个 Star,全球下载量突破 1000 万次。原 Xournal 项目仍在维护,但功能更新较为缓慢,Xournal++ 已事实上成为该生态中最活跃的分支。

开源理念

Xournal++ 基于 GPL-2.0 协议发布,这意味着任何人都可以自由使用、修改和分发本软件,包括用于商业场景,无需支付任何费用。但 GPL 协议也要求:任何基于 Xournal++ 修改后的衍生作品,必须同样以 GPL 协议开源,不能闭源商业化。

这一条款是项目的根基。它确保了 Xournal++ 永远不会沦为某家公司的私有资产——即使某天核心维护团队停止工作,社区也有完整的法律权利继续推进项目。这正是开源软件相比商业软件最重要的优势之一:软件的存续不依赖于任何单一实体

项目所有源代码、设计文档、问题追踪、路线规划均公开在 GitHub 仓库,欢迎任何人查阅、审计与参与。开发团队坚决反对任何形式的"开源核心 + 闭源付费"双协议模式,所有功能对全部用户无差别开放。

项目里程碑

Xournal++ 的发展历程

从 fork 到今天,每一个版本都凝聚着社区贡献者的心血。下面是几个关键节点。

2017

项目诞生

几位 Xournal 长期用户在 GitHub 上 fork 原项目,正式命名 Xournal++,并启动 GTK 3 迁移工作。最初的目标仅仅是让 Xournal 在现代 Linux 桌面上"能正常用"。

2018

跨平台支持

完成 Windows 与 macOS 端口移植,Xournal++ 从一个 Linux 专属工具成长为真正的跨平台应用。同年新增多图层管理功能,大幅提升复杂笔记场景的可控性。

2019

1.0 稳定版发布

经过两年的迭代,Xournal++ 1.0.0 稳定版正式发布。引入 LaTeX 公式渲染、形状工具、音频同步笔记等关键能力,标志着项目从"能用"进入"好用"阶段。

2020

Lua 插件系统

引入基于 Lua 5.4 的插件架构,社区开始贡献大量实用插件。Xournal++ 从"功能完整的笔记工具"进化为"可扩展的笔记平台",Star 数突破 5000。

2022

1.1 系列

大幅优化压感书写体验,全面支持 Apple Pencil 与 Surface Pen。新增导出 SVG 矢量格式,PDF 批注导出质量达到印刷级。这一年项目 GitHub Star 数突破 8000。

2023

1.2 与社区扩张

1.2 系列发布,引入可自定义工具栏、改进的插件管理器与全新的快捷键体系。Weblate 翻译平台上线,社区翻译覆盖超过 30 种语言,包括简体与繁体中文。

2024

持续演进

项目持续保持每月数次发布节奏,Star 数突破 12000,全球下载量超过 1000 万次。中文社区开始筹建本地化推广站(即本站 www.xournal.cn),帮助更多中文用户发现并使用这款优秀的开源工具。

社区贡献

由全球志愿者共同维护

Xournal++ 没有专职团队,所有开发、设计、翻译、文档、测试工作都由全球志愿者在业余时间完成。截至目前,已有超过 300 位贡献者参与过项目代码贡献。

核心维护者

由来自德国、美国、中国、俄罗斯等国的十余位长期贡献者组成,负责代码审查、版本发布与项目方向决策。所有决策在 GitHub 公开讨论。

代码贡献者

超过 300 位开发者贡献过代码,从修复 typo 到实现新功能不一而足。所有 PR 都会经过严格的代码审查与 CI 测试,保证主干质量稳定。

翻译团队

通过 Weblate 平台协作,已有超过 30 种语言的本地化翻译,每种语言都由母语志愿者维护。简体中文翻译团队持续招募新成员。

文档与教程

用户文档、Wiki、教程视频均由社区贡献。本中文推广站的内容也欢迎中文社区通过 PR 协作完善,让更多中文用户轻松上手。

问题反馈与测试

用户在 GitHub Issues 中报告 Bug、提出功能建议,是项目最重要的反馈来源。每位认真填写 Issue 的用户都在为项目质量做贡献。

赞助支持

项目接受个人与组织的财务赞助,所有资金用于服务器、CI/CD、翻译平台等基础设施开销。账目完全公开,可在项目主页查看。

参与贡献

你也可以成为项目的一份子

开源项目的生命力来自社区。无论你是开发者、设计师、翻译,还是普通用户,都有适合你的参与方式。

适合普通用户的参与方式

  • Star 项目仓库:在 GitHub 上为 xournalpp/xournalpp 点 Star,提升项目在 GitHub 搜索中的曝光度。
  • 分享给朋友:把 Xournal++ 推荐给可能需要的人,让更多人受益于开源工具。
  • 报告 Bug 与建议:在使用中遇到任何问题或想到新功能,到 GitHub Issues 反馈,附上系统信息和复现步骤。
  • 撰写评测与教程:在知乎、B 站、个人博客分享你的使用经验,帮助后来者少走弯路。

适合开发者的参与方式

  • 认领 Good First Issue:仓库中标记为 good first issue 的标签是适合新贡献者入门的任务。
  • 提交 Pull Request:修复 Bug 或实现新功能,遵循仓库根目录的 CONTRIBUTING.md 规范。
  • 开发插件:基于 Lua API 开发实用插件,发布到社区插件仓库。
  • 代码审查:帮助审查其他贡献者的 PR,加速合并流程。

适合翻译的参与方式

  • 加入 Weblate 翻译团队:访问 Weblate 项目页面,选择你熟悉的语言开始翻译。
  • 校对现有翻译:审阅已完成的翻译,提出更地道的措辞建议。
  • 翻译文档与教程:将英文 Wiki 翻译为中文,或反之,让两边社区互通有无。
联系我们

找到我们

Xournal++ 是一个完全分布式的开源项目,没有公司实体。通过以下渠道可以与社区取得联系。

项目官网

由英文社区维护的官方介绍站,包含最新发布信息与项目动态。

xournalpp.github.io →

致谢

感谢每一位让 Xournal++ 成为可能的人

感谢 Denis Auroux 与所有 Xournal 原项目的贡献者,你们的奠基工作让 Xournal++ 成为可能。

感谢 GTK、Poppler、Cairo、Lua 等开源项目,没有这些基础设施,就没有 Xournal++。

感谢每一位提交过代码、报告过 Bug、撰写过文档、做过翻译、录制过教程、分享过使用经验的用户—— 你们的每一份贡献,都在让这款工具变得更好。

开源不止是代码,更是一种协作的精神。

加入我们,一起书写未来

无论你是用户、开发者还是翻译,Xournal++ 社区都欢迎你。