DocHubBeego 開發(fā)的類百度文庫
起初開發(fā)這套程序,是想自己做一個IT行業(yè)的文庫站點,也就是現(xiàn)在的IT文庫(http://wenku.it),當初給文庫起名就叫IT文庫,但是決定開源出來之后,覺得這樣不妥,于是起了個叫DocHub的名字。
畢竟,有個Git倉庫管理的站點叫GitHub,那文檔(Doc)倉庫也就是文庫,我干嘛不叫DocHub呢?
DocHub的中文名叫多哈,程序猿,寫代碼就要開心,開心就要哈哈哈哈哈哈哈哈,多哈...(好幼稚)
主要技術棧
后端
Go語言框架Beego
前端
基于Bootstrap的前端框架Flat-UI
數(shù)據(jù)庫
MySQL,數(shù)據(jù)存儲
依賴環(huán)境
Libreoffice(或Openoffice)
用于將office文檔轉(zhuǎn)PDF
使用命令:
soffice --headless --invisible --convert-to pdf path/to/officefile --outdir path/to/outdir
pdf2svg
注意,這個要用最新版的
pdf2svg
pdf2svg,用于將PDF轉(zhuǎn)成svg矢量圖片,以供閱讀。
使用命令:
pdf2svg <in file.pdf> <out file.svg> [<page no>]
calibre
用于將mobi、chm、epub等文檔轉(zhuǎn)成PDF,然后再將pdf轉(zhuǎn)成svg
注意:目前
mobi、epub等文檔的在線閱讀功能還沒有實現(xiàn)
阿里云OSS
存儲office文檔、PDF文檔以及svg等文件
注意:目前只支持阿里云的OSS云存儲,暫時不支持其他云存儲(后期我再抽時間開發(fā)和擴展其他云存儲),不支持本地化存儲(現(xiàn)在云存儲和CDN價錢比以前便宜多了)
功能特點
文檔在線閱讀
DocHub文庫通過svg矢量圖來實現(xiàn)文檔閱讀體驗的,我知道的文庫站點中,新浪愛問是通過png等圖片提供文檔閱讀體驗的。
SVG相比png、jpeg等圖片格式有很大的優(yōu)勢,至少放大不會失真,而且與JPEG 和 GIF 圖像比起來,svg尺寸更小,可壓縮性更強,DocHub通過gzip,將svg文件壓縮,一般情況下,能減少70%的文件大小,比如200kb的svg,gzip壓縮后,只有60kb左右的大小。
使用svg,大大提升了加載速度,優(yōu)化了內(nèi)容的閱讀體驗。
office文檔在線閱讀
這個需要經(jīng)過兩層轉(zhuǎn)化:
office --> pdf --> svg
之前有考慮過office文檔不經(jīng)過轉(zhuǎn)化,然后直接在線瀏覽的,但是方案比較復雜,部署不容易,至少我沒部署成功過...
PDF文檔在線閱讀
將PDF文檔通過pdf2svg轉(zhuǎn)化,提供在線閱讀
沒有使用mozila的
pdf.js作為PDF文檔閱讀的實現(xiàn)方案,主要是我沒有解決pdf.js分片分頁加載的問題,每次都需要將整個PDF文檔下載下來才能提供閱讀。如果文檔大的話,用戶需要等待好長時間,而且也比較耗費服務器帶寬資源。
mobi、epub、chm文檔在線閱讀【TODO】
使用calibre將文檔轉(zhuǎn)成PDF,然后pdf再轉(zhuǎn)svg。
目前該功能還沒實現(xiàn),epub、mobi等文檔,現(xiàn)在還是暫時不能在線閱讀
全文搜索【TODO】
全文搜索功能,之前是使用coreseek開發(fā)實現(xiàn)了這個功能的,但是現(xiàn)在coreseek的官網(wǎng)都已經(jīng)掛了...打算用elasticsearch重新實現(xiàn)這個功能。
文檔采集功能【TODO】
建站初期,站點內(nèi)容的填充,是一個大難點。
然而,GitBook、ReadTheDoc等站點上,就有一大堆的開源技術文檔,提供mobi、pdf、epub離線文檔下載。
初略統(tǒng)計了一下,GitBook有10多萬文檔,按可用文檔為5萬估算,每份文檔,提供3種格式的下載,光從gitbook采集文檔,做成文庫,就有15萬多的文檔了。
然后,你再借助下搜索引擎,搜索filetype:文檔格式 + 搜索關鍵字,如filetype:pdf 入門教程,你就會發(fā)現(xiàn)驚喜!不信,你試著賦值下面兩個鏈接地址在瀏覽器打開:
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
如果再爬其他文檔,一年之內(nèi),單槍匹馬搞個上百萬文檔的文庫站點,應該不是個事兒。
不過,現(xiàn)在綜合類的文庫站點,如百度文庫等已經(jīng)做起來了,如果你打算做綜合類的文庫站點,還是不現(xiàn)實,因為空間太小了.
但是,你可以做專注于某一個方向的文庫站點,比如課后習題答案文庫站點、IT行業(yè)文庫站點、教育類文庫站點等,專注于一個行業(yè)領域方向,還是有很大成長空間的。就好比圖片站點,現(xiàn)在很多搜索引擎都能搜索圖片,但是Pinterest、花瓣網(wǎng)等還不是做起來了嗎?
給你提供了程序,還給你提供了思路,給個
star鼓勵一下?
積分功能
用戶簽到、上傳分享文檔,獲得積分獎勵;用戶下載文檔,需要消耗積分
閱讀文檔水印功能
在提供閱讀的svg文件上添加水印
頁面一覽
沒有哪一個時代不是看臉的...
首頁
文檔閱讀頁
用戶中心
管理后臺
搜索結果
使用教程
當運行程序的時候,程序會自動初始化數(shù)據(jù),默認的初始管理員賬號密碼均是admin
但是由于環(huán)境依賴安裝問題,所以有必要整理一個使用教程處理,使用教程放在書棧網(wǎng)(BookStack)上,教程地址:https://www.bookstack.cn/books/dochub
注意:目前暫時還沒時間撰寫,會盡快把部署教程寫出來的
演示站點
目前還沒有搭建演示站點,爭取在這周內(nèi)搭建出來。
不過,在這之前,你可以訪問IT文庫(http://wenku.it)看網(wǎng)站效果,但是由于這個站點,在進行遷移的時候,部分依賴沒配置好,所以上傳的office、PDF等文檔,暫時不支持預覽,搜索功能也用不了。
所以,請耐心等待,屆時搭建好了演示站點,會把演示站點的管理員賬號密碼放出來,以便體驗使用。
文庫模板
DocHub文庫的前端模板,包括PC模板和移動端模板,也會放出來。但是,模板可能跟套在程序上的有差距,畢竟在開發(fā)的時候有對頁面做了一些調(diào)整。






