本次发布主要是更新了 Markdown 编辑器,加入了全屏、Emoji 自动完成、粘贴时自动转换为 MD 格式的特性。(1.7.0 版本变更记录请看这里)
目前的 Markdown 编辑器有多好用呢?请看:
另外在开发方面,这个版本我们加入了大量的单元测试用例,目前覆盖率已达 47%,后续还会不断补充 :)
简介
Solo 是一款一个命令就能搭建好的 Java 开源博客系统,并内置了 15+ 套精心制作的皮肤。除此之外,Solo 还有着非常活跃的社区,文章分享到社区后可以让很多人看到,产生丰富的交流互动。
功能
Solo 沉淀至今的每一个功能你应该都会用到。我们不会将只有“20%”用户使用的功能添加进来,只有这样才能保持博客系统本该有的纯净,足够轻量才能带来简约的使用体验。
- Markdown / TinyMCE / KindEditor
- 自定义导航(页面、链接)
- 草稿夹
- 评论 / 回复邮件提醒
- 随机文章 / 相关文章 / 置顶 / 更新提醒
- 自定义文章永久链接
- 自定义站点 SEO 参数
- 自定义公告 / 页脚
- 多个签名档
- 代码高亮
- 多皮肤,多端适配 / 社区皮肤
- 多语言 / 国际化
- 上传七牛云
- 友情链接管理
- 多用户写作,团队博客
- SQL 文件导出
- 插件系统
- Atom / RSS 订阅
- Sitemap
- MetaWeblog API
- CDN 静态资源分离
如果有新版可用,升级过程也是非常简单的,只需要重新部署新版本就可以,不用运行额外的任何脚本。
另外,如果你想让我们将 Solo 修改为 CMS,我们只能对你说:“出门右转”。
安装
JDK 环境准备好之后下载最新的 Solo 包解压,进入解压目录执行:
- Windows:
java -cp WEB-INF/lib/*;WEB-INF/classes org.b3log.solo.Starter
- Unix-like:
java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter
执行完成后顺利的话你就可以看到 Solo 的初始化界面了
详细的配置请浏览用户指南。如果你碰到问题,请提 issue 或到社区发帖,我们会尽量在第一时间帮助你解决问题。
另外,如果你想用 Solo 但又不想自己维护服务器,那可以尝试购买我们搭建好的 Solo 直接使用。
技术
- 后端框架:为了尽量降低服务器的内存占用,顺带尝试一些技术构想,我们开发了 Latke 框架,并在此基础上构建了 Solo、Sym、XiaoV 等产品。这些产品反过来也会对框架提出需求,这是一个相互促进,共同演化的良性发展过程
- 前端框架:Solo 的前端部分为了降低复杂度, 只依赖于 jQuery、编辑器、代码高亮等组件。管理后台的 SPA 框架、皮肤响应式 UI 都是我们自己实现的
没有最好的轮子,只有最适合的轮子。 BTW,如果你想研究如何制造 Web 轮子,Solo 是一个不错的入口。
另外,为了保证 Solo 的质量,我们也做了很多努力,包括:
- 统一规范的编码风格
- 完善的 javadoc 注释
- 严格的分支、缺陷追踪管理
- 不断完善的单元测试用例
文档
版本历史
Solo 的第一个版本发布于 2010 年,我们对每个版本都进行了详细的变更记录,这里可以看到 Solo 成长的全貌。
每一次开发新版本时我们都会在开发分支上进行,尽量避免给其他开发者们带来困扰。因为我们知道只有专业和尽责才能让 Solo 这个开源项目走得更远,谁让你我的征途是星辰和大海呢!
鸣谢
Solo 的诞生离不开以下开源项目:
- jQuery:使用最广泛的 JavaScript 工具库
- CodeMirror:Markdown 编辑器内核
- KindEditor:一个富文本编辑器
- TinyMCE:又一个富文本编辑器
- SyntaxHighlighter:一个代码高亮库
- Highlight.js:又一个代码高亮库
- emojify.js:前端 Emoji 处理库
- jsoup:Java HTML 解析器
- pegdown:Java Markdown 处理库
- Apache Commons:Java 工具库集
- emoji-java:Java Emoji 处理库
- FreeMarker:好用的 Java 模版引擎
- H2:Java SQL 数据库
- Jetty:轻量级的 Java Web 容器
- Latke:简洁高效的 Java Web 框架
- NetBeans:全宇宙暂时排名第三的 IDE
贡献
Solo 的主要作者是 Daniel 与 Vanessa,所有贡献者可以在这里看到。
我们非常期待你加入到这个项目中,无论是使用反馈还是代码补丁,都是对 Solo 一份满满的爱