本次发布主要是更新了 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 的初始化界面了 :tada:

详细的配置请浏览用户指南。如果你碰到问题,请提 issue 或到社区发帖,我们会尽量在第一时间帮助你解决问题。

另外,如果你想用 Solo 但又不想自己维护服务器,那可以尝试购买我们搭建好的 Solo 直接使用

技术

  • 后端框架:为了尽量降低服务器的内存占用,顺带尝试一些技术构想,我们开发了 Latke 框架,并在此基础上构建了 Solo、Sym、XiaoV 等产品。这些产品反过来也会对框架提出需求,这是一个相互促进,共同演化的良性发展过程
  • 前端框架:Solo 的前端部分为了降低复杂度, 只依赖于 jQuery、编辑器、代码高亮等组件。管理后台的 SPA 框架、皮肤响应式 UI 都是我们自己实现的

没有最好的轮子,只有最适合的轮子。 BTW,如果你想研究如何制造 Web 轮子,Solo 是一个不错的入口。

另外,为了保证 Solo 的质量,我们也做了很多努力,包括:

  • 统一规范的编码风格
  • 完善的 javadoc 注释
  • 严格的分支、缺陷追踪管理
  • 不断完善的单元测试用例

文档

版本历史

Solo 的第一个版本发布于 2010 年,我们对每个版本都进行了详细的变更记录,这里可以看到 Solo 成长的全貌。

每一次开发新版本时我们都会在开发分支上进行,尽量避免给其他开发者们带来困扰。因为我们知道只有专业和尽责才能让 Solo 这个开源项目走得更远,谁让你我的征途是星辰和大海呢!

鸣谢

Solo 的诞生离不开以下开源项目:

贡献

Solo 的主要作者是 DanielVanessa,所有贡献者可以在这里看到。

我们非常期待你加入到这个项目中,无论是使用反馈还是代码补丁,都是对 Solo 一份满满的爱 :heart:

Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器的更多相关文章

  1. Docker 方式部署 Solo 博客系统总结

      此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结>   最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...

  2. Tomcat 方式部署 Solo 博客系统总结

      此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...

  3. 博客测试:博客系统i94web beta1.0 请求测试

    最近博客没怎么更新了,因为一直在撸代码,自己写了一个小小的博客系统:i94web,匆忙发布beta1.0,请求各位测试各种漏洞. 先看几张截图. 首页: 边栏: 文章页: 后台发布: 测试地址:htt ...

  4. 博客测试:博客系统i94web beta1.0 申请测试

    如何做了最近的博客更新,因为已经在线路和代码,我写了一个小博客系统:i94web,草草宣布beta1.0,请求您测试各种漏洞. 先看几张截图. 首页: watermark/2/text/aHR0cDo ...

  5. python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)

    一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...

  6. Django实现的博客系统中使用富文本编辑器ckeditor

    操作系统为OS X 10.9.2,Django为1.6.5. 1.下载和安装 1.1 安装 ckeditor 下载地址 https://github.com/shaunsephton/django-c ...

  7. Essay3.0发布,基于JavaScript的前后端同构博客系统

    前言 转眼间距离我开源这个项目已经两年了,最初是奔着学习的目的开发了这个项目,后来一直记录自己的学习笔记.随着时间的增长,发现之前写的代码简直不忍直视,于是就有了重构的想法.这个过程有些漫长,竟然用了 ...

  8. 从零开始搭建solo个人博客系统

    目录 1.博客系统的搭建流程 2.服务器选购 2.1阿里云学生主机 2.2普通云主机 3.域名购买与备案(可选) 3.1域名购买 3.2域名服务器备案 3.3域名服务器解析 4.solo安装 4.1 ...

  9. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)下,前后台布局实现、发布博客以及展示。

    一.博客系统进度回顾 目前已经完成了,前台展示,以及后台发布的功能,最近都在做这个,其实我在国庆的时候就可以弄完的,但是每天自己弄,突然最后国庆2天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...

随机推荐

  1. 模仿 AppStore 顶部动画

    App Store 顶部动画 App Store 中 Games.Apps.Updates 的顶部动画的特点: 自然状态下是大标题,右边有一个 button 顶上去时,变成小标题,右边按钮消失 导航栏 ...

  2. 在vue项目中使用swiper2.7.6

    $ npm install swiper@2.7.6 --save-dev npm WARN rollback Rolling back node-pre-gyp@0.10.0 failed (thi ...

  3. 2019年北航OO第一次博客总结

    一.基于度量对程序结构的分析 1. 第一次作业 1.1 基于类的分析的度量 首先,基于类的属性个数,方法个数,每个方法的规模,每个方法的控制分支数目,类总代码规模等特征对本次作业的结构进行分析. 1. ...

  4. crop和resize操作区别

    crop:对图像进行剪切 resize:对图像进行伸缩 实践代码 import cv2 bb2d = [30, 30, 72 ,42] image = cv2.imread('car.png') pt ...

  5. UML入门 之 交互图 -- 时序图 协作图详解

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 动态图概念 : 从静态图中抽取瞬间值的变化描 ...

  6. 分析org.rpgpoet.Music.wizards.length

    例子如下: package bazola; public class Gabriel { static int n = org.rpgpoet.Music.wizards.length; } pack ...

  7. 解决MySQL联表时出现字符集不一样

    mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci.有些 utf8mb4 的表默认排序规则 ...

  8. springboot-23-aspectj日志记录及threadlocal内存泄漏

    对于请求参数的处理和响应, 如果在代码中体现日志会显得很繁琐, 普遍的解决方案是使用spring的切面方案去解决. 这儿使用的是springboot的切面: http://www.cnblogs.co ...

  9. 从n个字符中,找出m个排列组合

    #include <string.h> #include <stdio.h> #include <stdlib.h> void combine(char *valu ...

  10. lucene源码分析(5)lucence-group

    1. 普通查询的用法 org.apache.lucene.search.IndexSearcher public void search(Query query, Collector results) ...