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天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...
随机推荐
- 【bzoj4712】洪水 动态dp
不难发现此题是一道动态$dp$题 考虑此题没有修改怎么做,令$f[i]$表示让以$i$为根的子树被覆盖的最小花费,不难推出$f[i]=min(\sum_{j∈son[i]} f[j],val[i])$ ...
- POJ 2245
//此题一看便是简单的回溯题用DFS+回溯便可以做出来了. #include <iostream> #define MAXN 20 using namespace std; int _m[ ...
- (转)AWK函数
http://wiki.jikexueyuan.com/project/awk/built-in-functions.html-------内置函数 http://wiki.jikexueyuan.c ...
- JavaMail学习之一-邮件传输协议
协议:规定好的格式就是协议.就像http协议有请求协议和响应协议,邮件传输也分为发.收邮件的协议. 邮件协议分3种: 发邮件的:SMTP (Simple Mail Transport Protoca ...
- spring boot和mybatis集成分页插件
MyBatis提供了拦截器接口,我们可以实现自己的拦截器,将其作为一个plugin装入到SqlSessionFactory中. 首先要说的是,Spring在依赖注入bean的时候,会把所有实现MyBa ...
- rabbit服务器挂掉以后,保证队列消息还存在(tp框架)(第三篇)
上接 第二篇 : http://www.cnblogs.com/spicy/p/7921870.html 第二篇解决了 如果其中一个worker挂掉了啦,如何保证消息不丢掉,并重新分发给其他worke ...
- 【jQuery源码】事件存储结构
a. jQuery事件原型——Dean Edwards的跨浏览器AddEvent()设计 源码解读 重新梳理一下数据结构,使用一个例子 <input type="text" ...
- 【数组】Remove Duplicates from Sorted Array II
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...
- excel将内容粘贴到筛选后的可见单元格
默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到 ...
- linux安装tmux
由于tmux依赖于libevent和ncurses-devel,所以应首先有这两个库,和相关的头文件. 1.对于ncurses-devel,可用yum安装. yum install ncurses-d ...