当前位置: 首页 > 软件库 > 企业应用 > 文档管理 >

DocHub

Beego 开发的类百度文库
授权协议 Apache-2.0
开发语言 Google Go
所属分类 企业应用、 文档管理
软件类型 开源软件
地区 国产
投 递 者 宰父俊彦
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

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

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

    主要技术栈

    后端

    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文档在线阅读【TODO】

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

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

    全文搜索【TODO】

    全文搜索功能,之前是使用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端模板

    移动端模板

    • 一、DocHub编译运行 1、下载安装Go软件包:https://studygolang.com/dl?id=2 ; 2、设置环境变量,增加GOROOT(Go软件安装位置)和GOPATH(Go代码文件夹)2个系统变量,并在path系统变量后增加下面内容: %GOROOT%\bin;%GOPATH%\bin; 3、在GOPATH文件夹中新建 bin、pkg、src  3个文件夹 ; 4、下载DocH

    • 项目 开源仓库-gitee 开源仓库-github 教程文档 依赖 后端 - beego 开源仓库 入门教程 前端 - Flat-UI 开源仓库 样式文档

    • 自动跳转 go.proxy 替换为国内代理 windows – 配置在环境变量 配置 GOPROXY 环境变量 set GO111MODULE=on GOPROXY = “https://goproxy.io,direct” GOPRIVATE = “git.mycompany.com,github.com/my/private” linux – /etc/profile 配置 GOPROXY 环

    • https://www.bookstack.cn/read/dochub/install https://www.oschina.net/news/105925/dochub-2-3-released 下载地址 https://gitee.com/truthhun/DocHub/releases https://blog.csdn.net/dyxcome/article/details/93377

     相关资料
    • Web 技术发展至今,已经细分成了多个技术方向: Web 整体设计 Web 性能速度 Web 安全 Web App Web 能力增强 学习使用最新的 Web 技术,创建极速打开、信息安全、交互流畅的网页。

    • 第一步:访问百度开发者中心官网 请在浏览器中访问 https://developer.baidu.com 进入百度开发者中心官网。 第二步:使用百度帐号登录官网 如果您还没有百度帐号,请在官网首页右上角找到“注册”入口,按照百度帐号统一注册流程进行注册。 如果您已有百度帐号,请在官网首页右上角找到“登录”入口,使用百度帐号进行登录。 第三步:注册百度开发者 登录后,在官网首页底部找到“应用管理”入

    • 百度网盘是百度为用户精心打造的云存储产品,免费提供2T超大存储空间。6亿用户的选择,您值得拥有!

    • 1、自我介绍 2、拷打项目 (整整拷打我半小时 ) 服务器支持什么类型的上传下载,支持多少的qps,日志文件怎么看(这个是最伤的,因为都是照着网上做的,就粗心没看日志), 哪个系统上跑的项目,Linux的命令(如何查看进程等),如何调试自己的项目,怎么样看代码bug出错在哪里?等 3、常规八股 上来就做题 ipv4有效地址判断,奇数放在偶数之前(刚开始我以为看错了,好家伙这么简单) tcp和udp

    • 1.自我介绍 2.秒杀系统怎么实现的 3.介绍一下项目中的分布式系统如何实现的,分布式锁 4.实习中做的什么,实习中的测试考虑过性能吗 5.垃圾回收机制 6.接口和抽象类的区别 7.讲讲内存泄漏和内存溢出 8.根据百度登录页面设计测试用例,输入密码后登录没有反应可能是什么原因,如何判断是否是你说刚才说的那两种原因 9.实习中测试遇到过什么问题 10.get和post区别 11.浏览器输入url发生

    • 20分钟常规八股时间 忘记录音了,吊反正很常规八股 baidu.com流程 ioc是怎么解决了什么问题? 索引失效以及排查 垃圾回收机制 linux相关 vim可以查看10g的日志吗 cpu飙高,频繁gc怎么排查 。。。。 20分钟场景题 有 10  个文件,每个文件 1G,每个文件的每一行都存放的是用户的 query,每个文件的 query 都可能重复。要求按照 query  的频度排序. 20

    • 自我介绍 项目的难点 有哪些缺陷 怎么解决的 聊熟悉的数据机构 数组 链表 树 聊计网 随便聊 (分层 tcp udp 三次握手 http) 操作系统随便聊 (进程线程 文件管理系统) 敏捷开发场景下怎么理解测开 测试方法知道哪些 哪些方法比较常用 设计测试用例 搜索框 手撕 反转链表 快排 ➕各自的单元测试 临结束问了个八皇后了解吗 如何解决 有什么个人理解

    • 自我介绍 项目难点 解决方法 mysql 和redis的区别 redis数据结构 项目里用到的redis数据类型 sql查重复的邮件 为什么不选算法开发而选测开(简历看起来偏算法开发) 设计测试用例淘宝购物车 近期有学什么技术 linux 查进程 kill 进程 查找含有指定字符的文件 字符串返回不包含重复字符的最长子串 爬楼梯 最少可以爬1-2-3步 反问 结束 #百度测开#