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






