DocHub 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
DocHub 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
DocHub 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Google Go 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 企业应用文档管理
开源组织
地区 国产
投 递 者 皇虫
适用人群 未知
收录时间 2018-05-15

软件简介

起初开发这套程序,是想自己做一个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端模板

    移动端模板

    展开阅读全文

    代码

    的 Gitee 指数为
    超过 的项目

    评论

    点击加入讨论🔥(11) 发布并加入讨论🔥
    发表于AI & 大数据专区
    2019/09/26 08:04

    类百度文库解决方案 DocHub v2.4,发布重构规划

    DocHub 文库系统是使用Go语言的Beego框架开发实现的类百度文库解决方案,使用对商业友好的 Apache2.0 开源协议进行开源,支持office(全部类型)、PDF、TXT、EPUB、MOBI等多种文档格式的在线阅读浏览。 升级日志 修复 group by title 查询文档列表失败的问题:https://stackoverflow.com/questions/34115174/error-related-to-only-full-group-by-when-executing-a-query-in-mysql 导航栏标识大小写导致选中的时候无法高亮的问题 ...

    15
    127
    发表于开发技能专区
    2019/04/15 08:13

    DocHub v2.3 发布,构建你自己的百度文库

    DocHub 文库系统是使用Go语言的Beego框架开发实现的类百度文库解决方案,使用对商业友好的 Apache2.0 开源协议进行开源,支持office(全部类型)、PDF、TXT、EPUB、MOBI等多种文档格式的在线阅读浏览。 升级日志 图片裁剪质量优化 修复文档管理文档删除的错误 移除对时区文件zoneinfo.zip的依赖 calibre 文档转换优化 解决程序不支持utf8mb4数据库字符编码问题(ERROR 1071 (42000): Specified key was too long; max key length ...

    4
    78
    发表于开发技能专区
    2019/04/10 08:15

    Dochub v2.2 发布,构建你自己的百度文库

    介绍 DocHub 文库系统是使用Go语言的Beego框架开发实现的类百度文库解决方案,使用对商业友好的 Apache2.0 开源协议进行开源,支持 Office(全部类型)、PDF、TXT、EPUB、MOBI等多种文档格式的在线阅读浏览。 本次 v2.2 版本,主要实现对各大云存储和本地化存储(Minio)的支持。 升级日志 多样化存储方式实现,支持如下存储方式: 阿里云 - OSS 本地存储 - minio 腾讯云存储 - cos 七牛云存储 - qiniu 百度云存储 - bos 华为云存储...

    5
    73
    发表于软件架构专区
    2018/09/12 08:07

    DocHub v2.1 实现移动端支持,构建你自己的百度文库

    介绍 DocHub 文库系统是使用Go语言的Beego框架开发实现的类百度文库解决方案,使用对商业友好的 Apache2.0 开源协议进行开源,支持office、PDF、TXT、EPUB、MOBI等多种文档格式的在线阅读浏览。 本次发布 v2.1 版本,主要是使用响应式布局实现了移动端的支持,用户在手机移动端上也能轻松实现文档预览。 升级日志 文档搜索,使用 MySQL like 查询,文档在排序的时候查询不到数据的问题(SQL语句字段错误造成的Bug) 文档图标相关前...

    11
    23
    发表于开发技能专区
    2018/08/16 08:09

    DocHub 2.0 版本发布,构建你的百度文库

    介绍 DocHub文库系统是使用Go语言的Beego框架开发实现的类百度文库解决方案,使用对商业友好的 Apache2.0 开源协议进行开源,支持office、PDF、TXT、EPUB、MOBI等多种文档格式的在线阅读浏览。 上一次版本发布是 1.1 版本,本次直接发布 2.0 版本,主要是 2.0 版本,对之前代码做了很大的代码规范化改动,同时增加了ElasticSearch全文搜索的实现,以及简化了程序的安装和部署。 升级日志 修复:被禁用户还能正常登录的Bug 修复:...

    5
    78
    发表于服务端专区
    2018/07/09 08:14

    DocHub 文库系统 v1.1 发布,类百度文库开源实现方案

    DocHub文库系统是使用Go语言的Beego框架开发实现的文库解决方案,使用对商业友好的Apache2.0开源协议进行开源,支持office文档、PDF文档、TXT、EPUB、MOBI等多种格式文档的在线阅读和浏览。 升级日志 1. OSS存储代码封装优化 2. 重新设计登录页面,之前的登录页面确实丑 3. 用户头像和文档封面等默认图片优化 在加载图片的时候直接在前端使用onerror,不再在后端查询OSS中图片是否存在以及不存在时返回默认图片,以便节省OSS请求...

    4
    46
    发表于AI & 大数据专区
    2018/06/12 10:04

    DocHub v1.0 版本发布,构建你自己的百度文库

    DocHub文库系统,使用Go语言的beego框架开发的类百度文库系统,实现office、PDF等文档在线浏览。 当前发布1.0版本,属于尝鲜版,mobi、epub和txt等格式文档,暂时还没有实现在线浏览的支持,但是已有解决方案,目前还在开发和测试中。 发布日志 1. Office、PDF等文档在线浏览的支持 2. 由于coreseek的问题,文档搜索功能,暂时改由MySQL的like查询,后期改用elasticsearch实现。 3. 积分机制:用户签到和上传文档,奖励积分;下...

    33
    81
    没有更多内容
    加载失败,请刷新页面
    点击加载更多
    加载中
    下一页
    发表了博客
    {{o.pubDate | formatDate}}

    {{formatAllHtml(o.title)}}

    {{parseInt(o.replyCount) | bigNumberTransform}}
    {{parseInt(o.viewCount) | bigNumberTransform}}
    没有更多内容
    暂无内容
    发表了问答
    {{o.pubDate | formatDate}}

    {{formatAllHtml(o.title)}}

    {{parseInt(o.replyCount) | bigNumberTransform}}
    {{parseInt(o.viewCount) | bigNumberTransform}}
    没有更多内容
    暂无内容
    暂无内容
    11 评论
    293 收藏
    分享
    OSCHINA
    登录后可查看更多优质内容
    返回顶部
    顶部