• Stars
    star
    3,156
  • Rank 14,238 (Top 0.3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

BookStack,基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。

BookStack 配套手机APP BookChatApp 开源地址

BookChatApp下载体验地址

目录:

BookStack 简介

BookStack,分享知识,共享智慧!知识,因分享,传承久远!

BookStack是基于Mindoc开发的,为运营而生。

在开发的过程中,增加和移除了一些东西,目前已经不兼容MinDoc了(毕竟数据表结构、字段、索引都有了一些不同),同时只支持markdown编辑器。

开源

两年前还在做PHP开发的时候,无意间遇到了Gitbook,以及看云,还有readthedoc。

当时想着自己也开发一套,但是后来没时间,当时也没那个技术积累。

后来学了Go语言,又在无意间遇到了Mindoc,然后我们公司(掘金量化 )也恰巧让我开发公司官网和文档系统,然后我就对Mindoc做了二次开发。

本来是不想开源的,因为自己写代码的时候,写着写着,代码改来改去,然后代码就乱七八糟了,怕开源出来丢人现眼。但是踏入IT行业三年多时间以来,自身也受益于各种开源书籍和开源组件,所以最终还是决定将BookStack开源出来。

其中肯定还是有不足的地方,大家在使用的过程中,遇到问题,欢迎反馈。

源码托管:

QQ交流群

为方便相互学习和交流,建了个QQ群,加群请备注来自BookStack

QQ交流群:457803862(猿军团)

同时要说明的是,该群是一个学习交流群,如果是程序相关问题,请直接提交issues,不接受邮件求助、微信求助和QQ私信求助

BookStack 安装使用手册:https://www.bookstack.cn/books/help

站点

演示站点

服务器资源有限,不再提供演示站点

正式站点

书栈网https://www.bookstack.cn

更新、维护和升级

  • 程序下载与升级日志,看这里--> Release

功能与亮点

书籍分类(V1.2 +)

用户就像你的老板,他不知道自己需要什么,但是他知道自己不需要什么...

用户主页(V1.2 +)

在用户主页,展示用户分享的书籍、粉丝、关注和手册,增加用户间的互动

一键导入markdown书籍

这个功能,相信是很多人的最爱了。目前这个功能仅对管理员开放。

经实测,目前已完美支持各种姿势写作的markdown书籍的文档导入,能很好地处理文档间的链接以及文档中的图片链接

一键导入书籍

一键拉取markdown书籍

看到GitHub、Gitee等有很多开源文档的书籍,但是一个一个去拷贝粘贴里面的markdown内容不现实。于是,做了这个一键拉取的功能。 目前只有管理员才有权限拉取,并没有对普通用户开放。要体验这个功能,请用管理员账号登录演示站点体验。 用法很简单,比如我们拉取beego的书籍,在创建书籍后,直接点击"拉取书籍",粘贴如" https://github.com/beego/beedoc/archive/master.zip ",然后就会自动帮你拉取上面的所有markdown文档并录入数据库,同时图片也会自动帮你更新到OSS。 拉取书籍

经实测,目前已完美支持各种姿势写作的markdown书籍的拉取,能很好地处理文档间的链接以及文档中的图片链接

目前已支持Git Clone导入书籍

生成和导出PDF、epub、mobi等离线文档

这个需要安装和配置calibre。 我将calibre的使用专门封装成了一个工具,并编译成了二进制,源码、程序和使用说地址:https://github.com/TruthHun/converter 在BookStack中,已经引入这个包了。使用的时候,点击"生成下载文档"即可

文档排序和批量创建文档

很多时候,我们在写作书籍的时候,会习惯地先把书籍的章节目录结构创建出来,然后再慢慢写内容。 但是,书籍中的文档少的时候,一个个去创建倒没什么,但是文档数量多了之后,简直就是虐待自己,排序的时候还要一个一个去拖拽进行排序,很麻烦。现在,这个问题已经解决了。如下:

  • 在书籍中,创建一个文档标识为summary.md的文档(大小写不敏感)
  • 在文档中,填充无序列表的markdown内容,如:
<bookstack-summary></bookstack-summary>
* [第0章. 前言]($ch0.md)
* [第1章. 修订记录]($ch1.md)
* [第2章. 如何贡献]($ch2.md)
* [第3章. Docker 简介]($ch3.md)
    * [什么是 Docker]($ch3.1.md)
    * [为什么要用 Docker]($ch3.2.md)
* [第4章. 基本概念]($ch4.md)
    * [镜像]($ch4.1.md)
    * [容器]($ch4.2.md)
    * [仓库]($ch4.3.md)
  • 然后保存。保存成功之后,程序会帮你创建如"第0章. 前言",并把文档标识设置为"ch0.md",同时目录结构还按照你的这个来调整和排序。

注意:

必须要有<bookstack-summary></bookstack-summary>,这样是为了告诉程序,我这个summary.md的文档,是用来创建文档和对文档进行排序的。当然,排序完成之后,当前页面会刷新一遍,并且把<bookstack-summary></bookstack-summary>移除了。有时候,第一次排序并没有排序成功,再添加一次这个标签,程序会自动帮你再排序一次。 我自己也常用这种方式批量创建文档以及批量修改文档的标题

文档间的跳转

你在一个书籍中会有很多文档,其中一个文档的文档标识叫readme.md,另外一个文档的文档标识叫quickstart.md,两个文档间如何跳转呢? 如果你知道站点的路由规则,倒是可以轻松链过去,但是,每次都要这样写,真的很麻烦。自己也经常写文档,简直受够了,然后想到了一个办法。如下: 我从readme.md跳转到quickstart.md,在readme.md中的内容这样写:

[快速开始]($quickstart.md)

如果跳转到quickstart.md的某个锚点呢?那就像下面这样写:

[快速开始-步骤三]($quickstart.md#step3)

好了,在发布文档的时候,文档就会根据路由规则以及你的文档标识去生成链接了(由于是后端去处理,所以在编辑文档的时候,前端展示的预览内容,暂时是无法跳转的)。 那么,问题就来了,我书籍里面的文档越来越多,我怎么知道我要链接的那个文档的文档标识呢?不用担心,在markdown编辑器的左侧,括号里面的红色文字显示的就是你的文档标识。

文档标识

采集功能

看到一篇很好的文章,但是文章里面有代码段、有图片,手工复制过来,格式全乱了,所以,相信采集功能,会是你需要的。采集功能,在markdown编辑器的功能栏上面,对,就是那个瓢虫图标,就是那个Bug,因为我找不到蜘蛛的图标...

功能见下图,具体体验,请到演示站点体验。

采集

SEO

后台管理,个性化定制你的SEO关键字;并且在SEO管理这里,可以更新站点sitemap(暂时没做程序定时自动更新sitemap)

版本控制

MinDoc之前本身就有版本控制的,但是版本控制的文档内容全都存在数据库中,如果修改频繁而导致修改历史过多的话,数据库可能会被撑爆。当时没有好的解决办法,所以将该功能移除了。

目前加上该功能,是因为这个功能呼声很高,所以加回来了。但是版本控制的内容不再存储到数据库中,而是以文件的形式存储到本地或者是云存储上。

功能在管理后台->配置管理中进行开启

更美观、简洁的页面布局和更为完善的移动端兼容

这是个看脸的时代...

首页

首页

介绍页

介绍页

内容阅读页

内容阅读页

个人书籍页

个人书籍页

手机端首页

个人书籍页

TODO

  • 文档阅读书签
  • 微信第三方登录
  • 微博第三方登录
  • 收费下载和收费阅读(放在最后开发)
  • 签到功能
  • 增加广告位和广告管理
  • 积分功能
  • 除了数据库配置项外,其余配置项尽可能在管理后台可配置
  • 增强搜索功能,上elasticsearch
  • 简化程序部署,上docker
  • 微信小程序(放到2.x版本开发)
  • 版本管理 ?(待找到更优解决方案了再实现)
  • 使用weex开发手机端APP ? (vue.js熟练了再抽时间实现)
  • 使用electron开发桌面端,实现类似网易有道云笔记的功能 ? (vue.js熟练了再抽时间实现)

Tips:

更多功能,期待您的想象力,然后通过issue向我提出来,或者到HC-CMS(http://www.hc-cms.com) 发帖提出

安装与使用

为了方便,安装和使用教程,请移步到这里:http://www.bookstack.cn/read/help/Ubuntu.md

目前只写了Ubuntu下的安装教程,Windows下的安装和使用教程,暂时没时间

有两个模板文件,需要手动修改下: /views/widgets/pdf_footer.html 导出PDF文档时,pdf的footer显示内容 /views/document/tpl_statement.html 修改成你想要的文案内容或者删除该文件。如果保留该文件,必须要有h1标签,因为程序要提取你的h1标签用于导出文档的目录生成

默认的管理员账号密码均是admin

v1.0升级到v1.1,直接下载对应系统的发行版本,然后根据配置文件的配置提示修改配置文件,然后覆盖升级即可。本次升级,没有改动数据库。

关于二次开发,请看这个issue README.md中能否添源码编译说明

关于本人

2014年7月本科"毕业"踏入IT行业;Web全栈工程师;什么都懂一点,什么都不精通。

赞助我

如果我的努力值得你的肯定,请赞助我,让我在开源的路上,做更好,走更远。 赞助我的方式包括:支付宝打赏微信打赏给BookStack一个star向我反馈意见和建议

支付宝打赏赞助

支付宝打赏赞助

微信打赏赞助

微信打赏赞助

More Repositories

1

DocHub

参考百度文库,使用Beego(Golang)开发的开源文库系统
Go
2,865
star
2

BookChatApp

通用书籍阅读APP,BookChat 的 uni-app 实现版本,支持多端分发,编译生成Android和iOS 手机APP以及各平台的小程序
Vue
653
star
3

converter

通过calibre将html转成epub、mobi、PDF等
Go
501
star
4

BookChat

基于 Apache 2.0 开源协议进行开源的通用书籍阅读微信小程序.
JavaScript
346
star
5

CloudStore

国内各大云存储服务接口集成,让云存储使用更方便简单
Go
110
star
6

BookStack-EBook

书栈网电子书
90
star
7

grid-trading

网格交易(期货) ,基于网格交易方法的交易策略
Python
63
star
8

DocHubTemplate4Mobile

仿百度文库移动端模板,DocHub文库移动端模板
HTML
57
star
9

html2md

html2markdown,converts html to markdown
Go
55
star
10

multi-factor-stock-selection

多因子选股(股票) ,基于Fama三因子构成的多因子策略
Python
52
star
11

intertemporal-arbitrage

跨期套利(期货),期货的跨期套利策略
Python
40
star
12

DocHubTemplate4PC

DocHub文库PC端模板,文库系统PC端模板
JavaScript
36
star
13

Machine-learning

机器学习(股票),基于机器学习算法支持向量机SVM的交易策略
Python
28
star
14

Turtle-Trading

海龟交易法(期货),基于海龟交易法则的交易策略
Python
22
star
15

alpha-hedge

量化交易经典策略:alpha对冲(股票+期货) ,利用股指期货进行对冲的股票策略
Python
19
star
16

gomage

An image server in Go (Golang)
Go
18
star
17

auction-stock

集合竞价选股(股票),基于收盘价与前收盘价的选股策略
Python
18
star
18

cross-speciesc-arbitrage

跨品种套利(期货) ,期货的跨品种套利策略
Python
15
star
19

Market-Maker-Trading

做市商交易(期货),基于Tick价差的交易策略
Python
14
star
20

gotil

my golang util
Go
13
star
21

Parameter-optimization

参数优化(股票+期货),基于循环遍历回测的参数优化方法
Python
10
star
22

industry-rotation

行业轮动(股票),基于沪深300的行业指数的行业轮动策略
Python
10
star
23

html2json

Go语言开发的HTML和Markdown转JSON工具,将HTML和Markdown内容转换为符合各种小程序`rich-text`组件内容渲染所需格式的`JSON`
HTML
8
star
24

day-wing-transaction

日内回转交易(股票),基于股票日内偏离度回归的日内回转策略
Python
8
star
25

golang-fullstack-in-action

Golang 全栈开发实战,书栈网( https://www.bookstack.cn )重构实践!技术架构:Golang(fiber + xorm)+ Vue(Nuxt + ElementUI + uniapp)+ MySQL,前后端分离。
7
star
26

index-increased

指数增强(股票) ,追踪指数的基础上,以增加超额兽医,跑赢对标指数为目的的策略
Python
5
star
27

PlanAndSupport

开源项目开发计划与赞助名单
3
star
28

http-transfer

Go
3
star
29

bookhub

书栈网( https://www.bookstack.cn )全新重构版本,《Golang 全栈开发实战》源码。
3
star
30

The-Linux-Command-Line

简体中文版
3
star