最近看到一个类似百度文库的开源文库系统。可以用来搭建运营自己的文库网站。
虽说现在综合类的文库站点,如百度文库等已经做起来了,如果你打算做综合类的文库站点,还是不现实,因为空间太小了.
但是,如果你专注于某一个方向的文库站点,比如课后习题答案文库站点、IT行业文库站点、教育类文库站点等,专注于一个行业领域方向,还是有很大成长空间的。就好比图片站点,现在很多搜索引擎都能搜索图片,但是Pinterest、花瓣网等还不是做起来了吗?
主要技术栈
后端 :Go语言框架Beego
前端: 基于Bootstrap的前端框架Flat-UI
数据库:MySQL,数据存储
依赖环境:Libreoffice(或Openoffice),用于将office文档转PDF
pdf2svg,用于将PDF转成svg矢量图片,以供阅读。
calibre,用于将mobi、chm、epub等文档转成PDF,然后再将pdf转成svg
阿里云OSS,存储office文档、PDF文档以及svg等文件
功能特点
文档在线阅读
DocHub文库通过svg矢量图来实现文档阅读体验的,我知道的文库站点中,新浪爱问是通过png等图片提供文档阅读体验的。
SVG相比png、jpeg等图片格式有很大的优势,至少放大不会失真,而且与JPEG 和 GIF 图像比起来,svg尺寸更小,可压缩性更强,DocHub通过gzip,将svg文件压缩,一般情况下,能减少70%的文件大小,比如200kb的svg,gzip压缩后,只有60kb左右的大小。
使用svg,大大提升了加载速度,优化了内容的阅读体验。
office文档在线阅读
这个需要经过两层转化:
office --> pdf --> svg
PDF文档在线阅读
将PDF文档通过pdf2svg转化,提供在线阅读
mobi、epub、chm文档在线阅读
使用calibre将文档转成PDF,然后pdf再转svg。
全文搜索
全文搜索功能,之前是使用coreseek开发实现了这个功能的,但是现在coreseek的官网都已经挂了...打算用elasticsearch重新实现这个功能。
文档采集功能【TODO】
建站初期,站点内容的填充,是一个大难点。
然而,GitBook、ReadTheDoc等站点上,就有一大堆的开源技术文档,提供mobi、pdf、epub离线文档下载。
初略统计了一下,GitBook有10多万文档,按可用文档为5万估算,每份文档,提供3种格式的下载,光从gitbook采集文档,做成文库,就有15万多的文档了。
然后,你再借助下搜索引擎,搜索filetype:文档格式 + 搜索关键字,如filetype:pdf 入门教程,你就会发现惊喜!
如果再爬其他文档,一年之内,单枪匹马搞个上百万文档的文库站点,应该不是个事儿。
积分功能
用户签到、上传分享文档,获得积分奖励;用户下载文档,需要消耗积分
阅读文档水印功能
在提供阅读的svg文件上添加水印
页面一览
项目开源地址:
PC端模板
- GitHub: https://github.com/truthhun/DocHubTemplate4PC
- Gitee: https://gitee.com/truthhun/DocHubTemplate4PC
移动端模板
- GitHub: https://github.com/truthhun/DocHubTemplate4Mobile
- Gitee: https://gitee.com/truthhun/DocHubTemplate4Mobile
閱讀更多 IT技術圈 的文章