最近看到一個類似百度文庫的開源文庫系統。可以用來搭建運營自己的文庫網站。
雖說現在綜合類的文庫站點,如百度文庫等已經做起來了,如果你打算做綜合類的文庫站點,還是不現實,因為空間太小了.
但是,如果你專注於某一個方向的文庫站點,比如課後習題答案文庫站點、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技術圈 的文章