采集内容,图片不正确
- a 标签中的英文括号统一转成中文括号
- 导出markdown
- 直接访问编辑页面,登录的cookie过去无法编辑文档问题
- 书籍发布队列
- 电子书下载页面,扩展站点页面
- 电子书检验,不存在的电子书,重新生成
- 增加博客(文章)系统功能
- 增加实体书功能(广告)
- 增加网络课程推广功能(广告)
- 增加 wiki 功能
- ElasticSearch支持搜索博客、wiki和实体书
- 增加程序员工具箱功能(长期工作)
- 手机APP开发升级
- iPad平板用户注册/登录没有顺利跳转的问题处理
- 生成手机APP分享海报(类似微信小程序上的分享)
- 支持电子书检测是否存在以及电子书重新生成
- 增加电子书功能(支持外链电子书)
- 电子书扫描功能
- 增加视频课程功能
- 书籍图片缺失处理功能
- 找出注明来源和赞助的书籍
- 电子书重新生成的功能
- 增加文章(博客)功能,博主不需要再书栈网写博客,只需要提交自己博客网站,书栈网根据网址去采集。 (内容采集的话,需要博客遵循CC-BY-NC的知识共享协议,书栈网在文章底部和APP等,显示打赏或者赞助二维码)。如需提醒有新的收录的话,再重复提交一下自己的博客就好了
- 友链交换入口
- 程序员网址导航
- 支持音频和视频上传
- 如果开启了OSS云存储,则将音视频上传上去的同时将音视频设置为私有
- 支持音频和视频播放管理
- 管理后台,恢复和优化附件管理功能
- 如果管理员或者用户是书籍项目所有人,则音视频链接支持直链播放,否则对音视频链接进行一定的防盗链处理
- 优化程序内的
cmd
执行 - 内容阅读页面音频视频播放功能
- 音频和视频播放倍速控制
- 视频画中画播放
- 禁止音频和视频直接下载
- 增加和升级API,使小程序和APP支持音频和视频播放,以及图片放大预览
- 小程序/APP返回的音视频内容进行加密
- 优化
html2json
仓库,解析HTML
内容,使小程序支持音频和视频播放功能,以及图片放大预览功能 - BookStack 依赖检测,以便程序可以正常使用完整功能进行工作,检测项:chrome、puppeteer、git、calibre
- 对无权限创建书籍书籍的用户,隐藏创建书籍入口
- 优化首页分类索引高亮显示,并增加
回到顶部
功能 - 修复分类下书籍统计不正确的问题
- 修复书籍太多时删除用户超时的问题
- 书籍管理页面增加书籍搜索功能
- 调整文案,
项目
改为书籍
- 修改个人资料昵称可更改
- 上传分类图标和上传书籍优化
-
榜单
功能优化,加入禁榜
功能,禁止恶意刷榜用户排入榜单,并优化榜单样式 - 生产ElasticSearch索引出现panic的问题
- 针对无权限创建书籍项目的用户隐藏创建项目入口
- 上传图标等优化
- 内容页面带图片链接访问优化
- 移除分词功能
- 优化内容阅读体验:调整文字行高、章内目录以及优化内容图片预览
- 优化
html2md
模块 - 修复上一版本数据库时间字段没有默认值导致的错误#103
- 优化阅读时长统计,减少统计误差
- 升级MySQL、阿里云OSS等相关依赖库
- 修正工信部备案链接地址(工信部更换域名了)
- 修复
runtime: goroutine stack exceeds 1000000000-byte limit
问题,提升程序稳定性。(由 getSelectedNode造成) - 优化大markdown文件拆分
- 固定首页
分类索引
- 404 优化:如果是书籍的文档不存在,则提示回到书籍页而不是首页
- 修复API横幅链接不正确的问题
- 增加阅读历史的api,以便APP端显示最近阅读的书籍,哪怕用户未收藏
- 书籍收藏优化,显示收藏的书籍分类,以便更快找到收藏的书籍
-
发现
页面的分类下方显示分类介绍,以达到简单小科普的效果 - 内容阅读页面优化:支持图片放大,优化章内目录显示
- 最新推荐的书籍,按照最后更新时间倒序排序
- 调整小程序码显示
- HTML转markdown
- Word文档导入(进支持
.docx
格式的Word文档,其他格式的Word文档先转换一下) -
发现
页面SEO优化 - 解决匿名访问时无法渲染文档的问题
- 章节目录收起与展开
- 本月累计签到榜单和上月累计签到榜单
- 内容阅读页面样式代码块优化
- 书架和收藏,显示收藏的书籍的分类
- 适配手机APP
BookChatApp
相关API接口调整 -
$auto-title
自动提取内容标题 - 增加是否开放注册的功能
- 增加是否允许游客访问的功能(禁止游客访问的话,只能登录)
- 增加首页是否显示分类索引功能,以便分类太多
- 内容采集转发
- markdown书籍导入的时候,
//
开头的链接或者非.md
和.markdown
结尾的链接,不转成$
开头的相对链接 - 删除用户的时候,提示并确认删除,避免误删
- Github oauth登录调整(Please use the Authorization HTTP header instead as using the
access_token
query parameter is deprecated.)
- 个人主页调整
- 用户每日签到记录与统计及其缓存
- 用户每日阅读时长记录与统计及其缓存
- 书籍每日收藏量记录与统计及其缓存
- 书籍每日浏览量记录与统计及其缓存
- 排行榜单
- APP 的 API 接口
- 签到接口
- 签到状态查询
- 榜单接口
- 个人各项数据信息接口
- 不启用
elasticsearch
,也能启用相关书籍
的功能 - 管理后台支持标签管理(搜索、删除、新增)
- 支持自动创建数据库,默认创建uft8mb4的数据库,避免用户创建了非utf8的数据库导致程序部署失败
- 增加显示
我的收藏
入口 - 增加广告投放功能
- 移除
我的二维码
(这个功能意义不大) - 修复本地存储时,重新生成新电子书,旧电子书没有删除的问题
- 生成电子书封面
- 优化HTML转markdown功能
- 电子书生成相关模板存放在
views/ebook
目录下-
statement.html
为生成致谢
内容的电子书模板,可移除和修改 -
cover.html
为自定义的电子书封面模板
-
- 使用
go mod
方式管理程序的包依赖(建议二次开发的朋友把go开发环境升级到支持go mod
的go版本) - APP下载单页配置管理
- 书籍信息设置页,支持增加文字广告功能,并增加 APP 跳转页
- 电子书是否登录才能下载
- 移动端横幅尺寸控制(由于移动端横幅展示,为了不使横幅变形,以及能够灵活控制移动端横幅宽高比例显示)
- 支持
书籍设置
给书籍内容增加全局文字小广告功能,比如添加原作者赞助二维码链接或者是原作者实体书购买地址等,以便支持开源作者 - 私有书籍,增加访问密码(书籍成员可以免密码访问)
- 小分辨率电脑,内容阅读时,不悬浮显示内容菜单,避免影响阅读体验
- 配置管理,增加图片链接由
http://
自动替换为https://
开关,因为 --> Chrome 将不再允许 https:// 页面加载 HTTP 资源 - 如果只有作者才能写作,则如果书籍创建者不是作者,已创建了书籍的,不允许私有转公有、不允许私密分享
- 书籍成员PC端无法访问和编辑书籍的问题处理
- 管理员和创始人可以设置书籍信息以及生成电子书
- 编辑者以上权限可以克隆、上传等对书籍进行编辑操作
- 解决 2.0 版本,初始化管理员失败(密码长度修改导致)的问题
- html转json实现,以兼容各种小程序和uni-app的富文本组件
rich-text
对内容的渲染 - markdown导入功能获取标题优化
- 内容采集持续优化,URL链接替换优化
- 支持隐藏收录入口
- 支持隐藏书籍开源入口
- API接口用户注册接口,支持控制每小时和每天的用户注册数量,以避免恶意攻击
- 文档内容,SEO 标题支持获取文档的上一个文档的标题
-
puppeteer
采集优化 - 首页分类,增大块点击范围以优化体验
- 编译的时候版本变量注入
- 管理后台用户列表用户注册时间格式化
- 增加虚拟根目录
- 微信小程序API接口开发
- 书籍在发布的时候,把非站内图片自动采集下来
-
BookStack
配套微信小程序BookChat
API接口实现,累计20+个API接口 - 修复删除书籍时误删默认封面的bug
- HTML内容处理,以兼容微信小程序
rich-text
组件实现微信小程序文档内容渲染 - 开源书籍和文档收录提交入口以及收录管理
- 增加网站小程序码功能,打通PC端与移动端一体化阅读浏览
- 内容采集增强和优化
- 评论审核与管理功能开发
- 微信小程序配置(在
app.conf
文件中) - 横幅管理
- 支持
epub
导入 - 隐藏附件管理入口(因为不依赖于此管理附件)
- 管理后台可根据用户名、昵称、邮箱和角色对用户进行检索和管理
- 增加
作者
角色,用于控制普通用户创建书籍权限
- 增加书籍和文档搜索精度控制(在管理后台可设置)
- 增加
钉子
功能,把想要置顶的书籍置顶在发现
列表页首位 - 文档阅读,移动端展开菜单优化(右下角增加展开菜单按钮)
- 跳转编辑指定文档
- 流程图、时序图、数学公式的支持和优化
- 移除外部引入的js、css公共资源库,实现本地化和内网部署的优化
- 文章
内容目录
显示优化 - 管理员删除书籍,需要输入管理员密码
- 增加书籍语种分类(中文、英文、其他)
- 增加首页最新推荐书籍内容
- 增加关联书籍推荐功能(需要启用elasticsearch)
- SEO 优化,如果文档内容图片缺少
alt
,自动使用文档标题填充 - 采集HTML的时候,block 里面的内容不转markdown
- 书籍分类统计不正确的问题
- 采集功能增强,自带截图功能。
- 更新MySQL驱动,支持MySQL 8.x
- 使用
puppeteer
采集的支持(需要安装node以及在当前程序目录下安装node的puppeteer模块) - 根据邮箱找回密码
-
<bookstack-split></bookstack-split>
,文档拆分功能 - 文章二维码,扫一扫,手机阅读
- 文档采集功能优化
- 增加HTML标签排除功能:
<exclude></exclude>
,如要排除标签h5
以及class为hello
、id为"book"的HTML内容,写法是<exclude>h5,.hello,#book</exclude>
- 文档图片采集优化,支持svg等缩图图片格式和base64的图片采集
- 增加HTML标签排除功能:
- 增加全书指定字符替换功能
- 使用 elasticsearch 实现全文搜索(在
管理后台
->配置管理
进行设置)- 搜索功能,支持搜索书籍和全站文档
- elasticsearch 只返回搜索结果的id,不返回大量的数据
- 文章、搜索结果页关键字高亮
- elasticsearch分词
- 实时索引
- 删除文档,同时删除文档对应的索引
- 书籍公有和私有之间转换,同步更新索引中书籍的公有和私有状态
- 发布文档,实时更新对应的书籍对应文档的全量索引
- 更新书籍信息,同步更新书籍的索引
- 删除书籍,同步删除概述及的所有相关文档
- 管理后台控制默认搜索的是文档还是书籍
- 文档内的搜索,使用elasticsearch
- 在书籍编辑页面可以克隆或者是上传markdown
- 文章内容页顶部显示 作者、发布时间、更新时间、浏览量、分享人
- 新建和编辑书籍,支持添加原作者和原作者链接
- 文档文章内容,顶部标题下显示信息
- 管理后台控制第三方登录的显示与隐藏
- HTML table 渲染问题优化(把
editormd.js
中的breaks
设置为false)
sudo docker run -it -p 9300:9300 -p 9200:9200 --restart always -v /Users/TruthHun/elasticsearch/data:/usr/share/elasticsearch/data -v /Users/TruthHun/elasticsearch/config:/usr/share/elasticsearch/config --name bookstack-search truthhun/elasticsearch:6.2.4.ik
sudo docker run -it -p 9300:9300 -p 9200:9200 -v /Users/TruthHun/elasticsearch/data:/usr/share/elasticsearch/data --name bookstack-search truthhun/elasticsearch:6.2.4.ik
- 修复:书籍删除时间过长进而导致删除失败的Bug(启用了MySQL的事务,但事务中SQL语句有select字句查询造成的问题)
- 修复:书籍成员列表显示不全的Bug(分页问题导致) #25
- 修复:书籍标识正则匹配规则不正确的问题
- 优化:分类在筛选书籍的时候,SEO优化,以文档分类作为
title
等,不再以首页的文案作为title
- 优化:一键采集书籍,自动检测并下载图片
- 优化:恢复文档模板功能
- 优化:文档中,图片不再使用带http的URL绝对路径,以解决更换域名后写死的URL找不到图片
- 新增:书籍推荐,在封面加上"推荐"图标标志。
- 新增:
Git Clone
的方式导入书籍- 编辑文档图片需要处理
- 阅读页面图片需要处理
- 导出文档图片需要处理
- 书籍导入的图片需要处理
- 优化:文档阅读体验优化
- 文档阅读页面左侧章节菜单,可展开和收起
- 键盘左右方向键按键切换文档上下章节
- 文档目录全部展开,所有章节一目了然
- 移除
jstree
插件(因为使用该插件,在用户网速比较慢的情况下左侧章节目录排版会出现错乱,影响体验) - 已阅读章节,
打勾
标识出来,以便知道哪些章节已读哪些章节未读 - 章节目录跟随阅读进度定位位置
- 新增:版本控制(在)
- 文档编辑历史,使用文件存储的方式进行记录,不存入数据库.
- 版本控制,在
<bookstack-git></bookstack-git>
标签内添加文案用以提交版本说明。如<bookstack-git>first commit</bookstack-git>
等同于git commit -m "first commit"
- 删除版本记录的时候要同时删除版本文件
- 删除书籍时同时删除书籍所有的相关文档章节版本记录
- 删除单个文档章节以及删除上一级文档章节,则被删除的文档章节的历史版本记录同样要删除
-
SUMMARY.md
功能扩展,输入<bookstack-auto></bookstack-auto>
,获取所有文档章节标识
- 修复:由于js使用严格模式(
use strict
),导致文档目录收起之后无法展开 - 修复:采集内容,URL链接和图片链接补全不正确
- 优化:书籍离线文档生成加锁优化,移除
app.conf
中的GenerateInterval
配置项 - 优化:PDF、epub和mobi等电子书生成工具 Converter,在生成电子书时,自动生成封面。
- 优化:
<bookstack-summary>
标签的一键排序和批量创建文档的功能。 - 移除:生成PDF的时候,移除HTML中的Markdown TOC。
- 新增:提供
Dockerfile
,让部署程序更快更简单。在下载BookStack
程序的时候,请下载Docker版,压缩包内含有Dockerfile
文件。 - 新增:爬虫一键采集功能,采集整理书籍,一步到位!
本次更新,新增了数据表初始数据,旧版本用户,直接执行./BookStack install
操作,对数据库表进行升级(不会影响原有表数据和结构)。
- 新增:用户阅读记录和阅读进度
- 新增:阅读书签功能,以便读者标记阅读位置
- 新增:书籍详情页和文档内容页增加分享功能(由于百度分享等现有分享代码不支持
https
,所以使用本地化百度分享源码解决方案 https://github.com/hrwhisper/baiduShare ) - 新增:使用KaTeX( https://github.com/Khan/KaTeX ),扩展对数学公式的支持
- 优化:更新HTML转markdown工具html2md,强化转化效果
- 修复:文档内URL链接大小写问题优化 issue#20
- 修复:友链唯一索引问题(默认的字段varchar类型长度(255)过长,导致部分MySQL数据库无法生成唯一索引)
- 修复:文档内容更新了,执行发布文档操作的时候,文档更新部分的内容仍然不显示的问题
- 修复图片存储路径不正确的问题
- 正确输入书籍标识和登录密码才能删除书籍,以避免误删操作
- 增加移动端搜索入口
- 扩展采集功能,增加
DIY模式
,以采集提取页面的指定内容 - 增加文档分类功能(工作量最大的一项,还新增了分类数据表。用户都不知道自己需要什么,但是却知道自己不需要什么,所以必须要有个分类来引导用户查找自己需要的资料;前端隐藏暂时没有书籍的分类)
- sitemap的
changefreq
,调整为weekly
- 书籍名称,SEO时,默认加上书名号
- 用户个人主页、收藏、关注、粉丝等
- 友链管理
当前版本,已经适合用于正式产品。数据表结构没有变更,可以直接从v1.0升级。
FIX:
- 增加备案链接链到工信部。
- 文档阅读页面缺少了统计代码,已加上。
- 解决给文档打分时分值错误的问题。
- 一键导入和一键拉取markdown书籍时,如果出现相同identity的文档,则执行更新,否则为新录入
- 一键拉取书籍,支持任何来源的zip压缩的markdown书籍的拉取
- 无刷新加载上下篇阅读文档,优化阅读体验
- 移除SEO等Go文件中硬编码的"bookstack.cn"的域名(因为BookStack,一开始是打算自用的,所以当时写死了)
- 登录和注册验证码优化(使用Beego自带的验证码体系:https://github.com/astaxie/beego/tree/master/utils/captcha)
- 支持本地化存储(改动了很多地方,具体改动,请
git log
查看)。在app.conf中增加了store_type
配置项,以扩展存储类型,目前扩展的存储类型有本地存储(local
)和阿里云OSS存储(oss
),更多存储类型(七牛云存储(qiniu)、腾讯云存储(cos)、百度云存储(bos)、又拍云存储(upyun)
)持续开发中. - 分页优化
- 解决角色名称有时不显示的问题
- 解决
导入书籍
和拉取书籍
,书籍中的图片、文档间的链接不正确的问题,目前兼容绝大多数各种姿势的markdown书籍导入和拉取