DocHub Beego 开发的类百度文库 DocHub

xuanbao • 4362 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
起初开发这套程序,是想自己做一个IT行业的文库站点,也就是现在的[IT文库(http://wenku.it)](http://wenku.it/),当初给文库起名就叫`IT文库`,但是决定开源出来之后,觉得这样不妥,于是起了个叫`DocHub`的名字。 毕竟,有个Git仓库管理的站点叫`GitHub`,那文档(Doc)仓库也就是文库,我干嘛不叫`DocHub`呢? `DocHub`的中文名叫`多哈`,程序猿,写代码就要开心,开心就要`哈哈哈哈哈哈哈哈`,多`哈`...(好幼稚) Go语言框架[Beego](https://beego.me/) 基于Bootstrap的前端框架[Flat-UI](https://github.com/designmodo/Flat-UI) MySQL,数据存储 用于将office文档转PDF 使用命令: 注意,这个要用最新版的`pdf2svg` pdf2svg,用于将PDF转成svg矢量图片,以供阅读。 使用命令: 用于将`mobi`、`chm`、`epub`等文档转成PDF,然后再将`pdf`转成`svg` 注意:目前`mobi`、`epub`等文档的在线阅读功能还没有实现 存储office文档、PDF文档以及svg等文件 注意:目前只支持阿里云的OSS云存储,暂时不支持其他云存储(后期我再抽时间开发和扩展其他云存储),不支持本地化存储(现在云存储和CDN价钱比以前便宜多了) `DocHub`文库通过`svg`矢量图来实现文档阅读体验的,我知道的文库站点中,[新浪爱问](http://ishare.iask.sina.com.cn/)是通过`png`等图片提供文档阅读体验的。 `SVG`相比`png`、`jpeg`等图片格式有很大的优势,至少放大不会失真,而且与JPEG 和 GIF 图像比起来,svg尺寸更小,可压缩性更强,`DocHub`通过gzip,将svg文件压缩,一般情况下,能减少70%的文件大小,比如200kb的svg,gzip压缩后,只有60kb左右的大小。 使用svg,大大提升了加载速度,优化了内容的阅读体验。 这个需要经过两层转化: [![office文档在线阅读](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/preview.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/preview.png) 之前有考虑过office文档不经过转化,然后直接在线浏览的,但是方案比较复杂,部署不容易,至少我没部署成功过... 将PDF文档通过`pdf2svg`转化,提供在线阅读 没有使用mozila的`pdf.js`作为PDF文档阅读的实现方案,主要是我没有解决`pdf.js`分片分页加载的问题,每次都需要将整个PDF文档下载下来才能提供阅读。如果文档大的话,用户需要等待好长时间,而且也比较耗费服务器带宽资源。 使用`calibre`将文档转成PDF,然后pdf再转svg。 目前该功能还没实现,epub、mobi等文档,现在还是暂时不能在线阅读 全文搜索功能,之前是使用`coreseek`开发实现了这个功能的,但是现在`coreseek`的官网都已经挂了...打算用`elasticsearch`重新实现这个功能。 建站初期,站点内容的填充,是一个大难点。 然而,`GitBook`、`ReadTheDoc`等站点上,就有一大堆的开源技术文档,提供`mobi`、`pdf`、`epub`离线文档下载。 初略统计了一下,`GitBook`有10多万文档,按可用文档为5万估算,每份文档,提供3种格式的下载,光从gitbook采集文档,做成文库,就有15万多的文档了。 然后,你再借助下搜索引擎,搜索`filetype:文档格式 + 搜索关键字`,如`filetype:pdf 入门教程`,你就会发现惊喜!不信,你试着赋值下面两个链接地址在浏览器打开: 如果再爬其他文档,一年之内,单枪匹马搞个上百万文档的文库站点,应该不是个事儿。 不过,现在综合类的文库站点,如百度文库等已经做起来了,如果你打算做综合类的文库站点,还是不现实,因为空间太小了. 但是,你可以做专注于某一个方向的文库站点,比如课后习题答案文库站点、IT行业文库站点、教育类文库站点等,专注于一个行业领域方向,还是有很大成长空间的。就好比图片站点,现在很多搜索引擎都能搜索图片,但是`Pinterest`、`花瓣网`等还不是做起来了吗? 给你提供了程序,还给你提供了思路,给个`star`鼓励一下? 用户签到、上传分享文档,获得积分奖励;用户下载文档,需要消耗积分 在提供阅读的svg文件上添加水印 没有哪一个时代不是看脸的... 首页 [![首页](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/index.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/index.png) 文档阅读页 [![文档阅读页](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/preview.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/preview.png) 用户中心   [![用户中心](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/ucenter.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/ucenter.png) 管理后台 [![管理后台](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/admin.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/admin.png) 搜索结果 [![搜索结果](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/search.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/search.png) [![搜索结果](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/search1.png)](https://gitee.com/truthhun/DocHub/raw/master/static/tutorial/search1.png) 当运行程序的时候,程序会自动初始化数据,默认的初始管理员账号密码均是`admin` 但是由于环境依赖安装问题,所以有必要整理一个使用教程处理,使用教程放在[书栈网(BookStack)](https://www.bookstack.cn/)上,教程地址:[https://www.bookstack.cn/books/dochub](https://www.bookstack.cn/books/dochub) 注意:目前暂时还没时间撰写,会尽快把部署教程写出来的 目前还没有搭建演示站点,争取在这周内搭建出来。 不过,在这之前,你可以访问[IT文库(http://wenku.it)](http://wenku.it/)看网站效果,但是由于这个站点,在进行迁移的时候,部分依赖没配置好,所以上传的office、PDF等文档,暂时不支持预览,搜索功能也用不了。 所以,请耐心等待,届时搭建好了演示站点,会把演示站点的管理员账号密码放出来,以便体验使用。 `DocHub`文库的前端模板,包括PC模板和移动端模板,也会放出来。但是,模板可能跟套在程序上的有差距,毕竟在开发的时候有对页面做了一些调整。 Gitee: [https://gitee.com/truthhun/DocHubTemplate4PC](https://gitee.com/truthhun/DocHubTemplate4PC) Gitee: [https://gitee.com/truthhun/DocHubTemplate4Mobile](https://gitee.com/truthhun/DocHubTemplate4Mobile)
授权协议:
Apache-2.0
开发语言:
Google Go 查看源码»
操作系统:
跨平台
4362 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传