Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器
本次发布主要是更新了 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 的诞生离不开以下开源项目:
- 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 一份满满的爱 :heart:
Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器的更多相关文章
- Docker 方式部署 Solo 博客系统总结
此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结> 最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...
- Tomcat 方式部署 Solo 博客系统总结
此篇为Tomcat部署方式,另有Docker部署方式,请参考文章<Docker 方式部署 Solo 博客系统总结> 一.环境和文件准备 服务器:购买的阿里云服务器,系统为Linux(C ...
- 博客测试:博客系统i94web beta1.0 请求测试
最近博客没怎么更新了,因为一直在撸代码,自己写了一个小小的博客系统:i94web,匆忙发布beta1.0,请求各位测试各种漏洞. 先看几张截图. 首页: 边栏: 文章页: 后台发布: 测试地址:htt ...
- 博客测试:博客系统i94web beta1.0 申请测试
如何做了最近的博客更新,因为已经在线路和代码,我写了一个小博客系统:i94web,草草宣布beta1.0,请求您测试各种漏洞. 先看几张截图. 首页: watermark/2/text/aHR0cDo ...
- python 全栈开发,Day83(博客系统子评论,后台管理,富文本编辑器kindeditor,bs4模块)
一.子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式.点击回复之后,定位到输入框, ...
- Django实现的博客系统中使用富文本编辑器ckeditor
操作系统为OS X 10.9.2,Django为1.6.5. 1.下载和安装 1.1 安装 ckeditor 下载地址 https://github.com/shaunsephton/django-c ...
- Essay3.0发布,基于JavaScript的前后端同构博客系统
前言 转眼间距离我开源这个项目已经两年了,最初是奔着学习的目的开发了这个项目,后来一直记录自己的学习笔记.随着时间的增长,发现之前写的代码简直不忍直视,于是就有了重构的想法.这个过程有些漫长,竟然用了 ...
- 从零开始搭建solo个人博客系统
目录 1.博客系统的搭建流程 2.服务器选购 2.1阿里云学生主机 2.2普通云主机 3.域名购买与备案(可选) 3.1域名购买 3.2域名服务器备案 3.3域名服务器解析 4.solo安装 4.1 ...
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)下,前后台布局实现、发布博客以及展示。
一.博客系统进度回顾 目前已经完成了,前台展示,以及后台发布的功能,最近都在做这个,其实我在国庆的时候就可以弄完的,但是每天自己弄,突然最后国庆2天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...
随机推荐
- 模仿 AppStore 顶部动画
App Store 顶部动画 App Store 中 Games.Apps.Updates 的顶部动画的特点: 自然状态下是大标题,右边有一个 button 顶上去时,变成小标题,右边按钮消失 导航栏 ...
- 在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 ...
- 2019年北航OO第一次博客总结
一.基于度量对程序结构的分析 1. 第一次作业 1.1 基于类的分析的度量 首先,基于类的属性个数,方法个数,每个方法的规模,每个方法的控制分支数目,类总代码规模等特征对本次作业的结构进行分析. 1. ...
- crop和resize操作区别
crop:对图像进行剪切 resize:对图像进行伸缩 实践代码 import cv2 bb2d = [30, 30, 72 ,42] image = cv2.imread('car.png') pt ...
- UML入门 之 交互图 -- 时序图 协作图详解
作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131 动态图概念 : 从静态图中抽取瞬间值的变化描 ...
- 分析org.rpgpoet.Music.wizards.length
例子如下: package bazola; public class Gabriel { static int n = org.rpgpoet.Music.wizards.length; } pack ...
- 解决MySQL联表时出现字符集不一样
mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci.有些 utf8mb4 的表默认排序规则 ...
- springboot-23-aspectj日志记录及threadlocal内存泄漏
对于请求参数的处理和响应, 如果在代码中体现日志会显得很繁琐, 普遍的解决方案是使用spring的切面方案去解决. 这儿使用的是springboot的切面: http://www.cnblogs.co ...
- 从n个字符中,找出m个排列组合
#include <string.h> #include <stdio.h> #include <stdlib.h> void combine(char *valu ...
- lucene源码分析(5)lucence-group
1. 普通查询的用法 org.apache.lucene.search.IndexSearcher public void search(Query query, Collector results) ...