• Stars
    star
    2,865
  • Rank 15,842 (Top 0.4 %)
  • 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

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

DocHub文库重构版本来了!!!新文库系统叫moredoc,即魔豆文库

开源地址


LOGO


目录:

重要:所有forkDocHub项目的朋友,麻烦同时点一下watch,以便关注项目更新动态和跟进一些重要的Bug的修复。

提示:DocHub移动端模板已经放出来,链接地址

说明(于2018-06-08):DocHub项目是我学完Go语言之后的第二个独立开发的Go语言项目,项目是在2016年12月份开始开发的。当时对Go语言和Beego框架都还不怎么熟。DocHub项目开源出来之后,看到star飙升的有点快(相对个人之前的开源项目),非常感谢大家的认可和厚爱,然后自己诚惶诚恐地认真review了一遍代码... 路由在模板页面写死了... 数据表一些数据字段也出现了冗余... 有些函数和方法封装,难以使用的一塌糊涂... 请大家给我点时间,我会把整套程序都优化好,当然,现在的版本是可用的,以后的升级版本也会是兼容升级。

说明(2018-06-12): DocHub演示站点:http://dochub.bookstack.cn 后台地址是:http://dochub.bookstack.cn/admin ;管理员账号密码均是admin您心目中的验证码芝麻开门。 安装和部署教程以及Docker镜像,稍后跟上。

文库简介

还在读大学的时候,当时就想着要搭建一个类似百度文库的文库站点,实现文档在线浏览。

然而,时间一晃,好几年过去了,自己终于亲自动手开发实现了一套开源文库程序。

尽管离百度文库还有着巨大的差距,尽管可(一)能(定)会存在Bug,但是,整套程序从前端到后端到数据库再到丑陋的LOGO设计,都是自己独立完成的,满满的成就感...

程序命名

起初开发这套程序,是想自己做一个IT行业的文库站点,也就是现在的IT文库(http://wenku.it),当初给文库起名就叫IT文库,但是决定开源出来之后,觉得这样不妥,于是起了个叫DocHub的名字。

毕竟,有个Git仓库管理的站点叫GitHub,那文档(Doc)仓库也就是文库,我干嘛不叫DocHub呢?

DocHub的中文名叫多哈,程序猿,写代码就要开心,开心就要哈哈哈哈哈哈哈哈,多...(好幼稚)

源码地址

程序源码,托管在GitHubGitee

QQ交流群

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

QQ交流群:457803862(猿军团)

同时要说明的是,这个是学习交流群,如果是程序相关问题,请提交issue,再把issue链接发群里。

主要技术栈

后端

Go语言框架Beego

前端

基于Bootstrap的前端框架Flat-UI

数据库

MySQL,数据存储

依赖环境

Libreoffice(或Openoffice)

用于将office文档转PDF

使用命令:

soffice --headless --invisible --convert-to pdf path/to/officefile --outdir path/to/outdir

pdf2svg

注意,这个要用最新版的pdf2svg

pdf2svg,用于将PDF转成svg矢量图片,以供阅读。

使用命令:

pdf2svg <in file.pdf> <out file.svg> [<page no>]

calibre

用于将mobichmepub等文档转成PDF,然后再将pdf转成svg

注意:目前mobiepub等文档的在线阅读功能还没有实现

阿里云OSS

存储office文档、PDF文档以及svg等文件

注意:目前只支持阿里云的OSS云存储,暂时不支持其他云存储(后期我再抽时间开发和扩展其他云存储),不支持本地化存储(现在云存储和CDN价钱比以前便宜多了)

功能特点

文档在线阅读

DocHub文库通过svg矢量图来实现文档阅读体验的,我知道的文库站点中,新浪爱问是通过png等图片提供文档阅读体验的。

SVG相比pngjpeg等图片格式有很大的优势,至少放大不会失真,而且与JPEG 和 GIF 图像比起来,svg尺寸更小,可压缩性更强,DocHub通过gzip,将svg文件压缩,一般情况下,能减少70%的文件大小,比如200kb的svg,gzip压缩后,只有60kb左右的大小。

使用svg,大大提升了加载速度,优化了内容的阅读体验。

office文档在线阅读

这个需要经过两层转化:

office --> pdf --> svg

office文档在线阅读

之前有考虑过office文档不经过转化,然后直接在线浏览的,但是方案比较复杂,部署不容易,至少我没部署成功过...

PDF文档在线阅读

将PDF文档通过pdf2svg转化,提供在线阅读

没有使用mozila的pdf.js作为PDF文档阅读的实现方案,主要是我没有解决pdf.js分片分页加载的问题,每次都需要将整个PDF文档下载下来才能提供阅读。如果文档大的话,用户需要等待好长时间,而且也比较耗费服务器带宽资源。

mobi、epub、chm文档在线阅读

使用calibre将文档转成PDF,然后pdf再转svg。

目前该功能还没实现,epub、mobi等文档,现在还是暂时不能在线阅读

全文搜索

全文搜索功能,之前是使用coreseek开发实现了这个功能的,但是现在coreseek的官网都已经挂了...打算用elasticsearch重新实现这个功能。

文档采集功能【TODO】

建站初期,站点内容的填充,是一个大难点。

然而,GitBookReadTheDoc等站点上,就有一大堆的开源技术文档,提供mobipdfepub离线文档下载。

初略统计了一下,GitBook有10多万文档,按可用文档为5万估算,每份文档,提供3种格式的下载,光从gitbook采集文档,做成文库,就有15万多的文档了。

然后,你再借助下搜索引擎,搜索filetype:文档格式 + 搜索关键字,如filetype:pdf 入门教程,你就会发现惊喜!不信,你试着赋值下面两个链接地址在浏览器打开:

https://cn.bing.com/search?q=filetype%3apdf+%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B&first=11
https://www.sogou.com/web?query=filetype%3Apdf+%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B

如果再爬其他文档,一年之内,单枪匹马搞个上百万文档的文库站点,应该不是个事儿。

不过,现在综合类的文库站点,如百度文库等已经做起来了,如果你打算做综合类的文库站点,还是不现实,因为空间太小了.

但是,你可以做专注于某一个方向的文库站点,比如课后习题答案文库站点、IT行业文库站点、教育类文库站点等,专注于一个行业领域方向,还是有很大成长空间的。就好比图片站点,现在很多搜索引擎都能搜索图片,但是Pinterest花瓣网等还不是做起来了吗?

给你提供了程序,还给你提供了思路,给个star鼓励一下?

积分功能

用户签到、上传分享文档,获得积分奖励;用户下载文档,需要消耗积分

阅读文档水印功能

在提供阅读的svg文件上添加水印

页面一览

没有哪一个时代不是看脸的...

  • 首页

首页

  • 文档阅读页

文档阅读页

  • 用户中心

用户中心

  • 管理后台

管理后台

  • 搜索结果

搜索结果

搜索结果

使用教程

当运行程序的时候,程序会自动初始化数据,默认的初始管理员账号密码均是admin

但是由于环境依赖安装问题,所以有必要整理一个使用教程处理,使用教程放在书栈网(BookStack)上,教程地址:https://www.bookstack.cn/books/dochub

演示站点

目前还没有搭建演示站点,争取在这周内搭建出来。

不过,在这之前,你可以访问IT文库(http://wenku.it)看网站效果,但是由于这个站点,在进行迁移的时候,部分依赖没配置好,所以上传的office、PDF等文档,暂时不支持预览,搜索功能也用不了。

所以,请耐心等待,届时搭建好了演示站点,会把演示站点的管理员账号密码放出来,以便体验使用。

文库模板

DocHub文库的前端模板,包括PC模板和移动端模板,也会放出来。但是,模板可能跟套在程序上的有差距,毕竟在开发的时候有对页面做了一些调整。

PC端模板

移动端模板

关于本人

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

赞助我

由于整套程序都是独立一个人开发完成,限于个人经验、知识面和技术栈体系的限制,现在的程序不会是完美的,但至少,我在努力,我会争取把开源文库程序做好,缩短与成熟文库系统的差距。

所以,给出你的意见和建议,给出你的打赏与鼓励,让我知道,我不是一个人在孤独地战斗。

赞助的时候,麻烦备注一下你的称呼,以便公开并表示感谢

支付宝打赏赞助

支付宝打赏

微信打赏赞助

微信打赏

More Repositories

1

BookStack

BookStack,基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。
Go
3,156
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