Github開源聲明 本網站的代碼開源,開源的目的如下 技術分享 希望業內同行貢獻代碼 希望能夠讓網站更加安全 開源地址: "CodeSnippet開源地址" 關於代碼貢獻 任何人都可以貢獻代碼,一般在 1 3個工作日內會確認合併 代碼請進行測試後提交。 現在需要如下的代碼貢獻 移動端自適應和響應式 ...
Github開源聲明
本網站的代碼開源,開源的目的如下
- 技術分享
- 希望業內同行貢獻代碼
- 希望能夠讓網站更加安全
開源地址:
CodeSnippet開源地址
關於代碼貢獻
任何人都可以貢獻代碼,一般在 1-3個工作日內會確認合併
代碼請進行測試後提交。
現在需要如下的代碼貢獻
- 移動端自適應和響應式 (前端高手)
- 檢索結果的處理 (ElsaticSearch高手)
- MarkDown的分析 (MarkDown和正則表達式高手)
- 好的意見和建議 (每一個人的力量)
(初版,所以可能會有錯誤信息,如果開發環境有任何問題,請在評論里告訴我,我會隨時修改本文)
開發環境的搭建
ElasticSearch 2.2.1
使用NEST操作ElasticSearch進行全文檢索
(使用預設的9200埠 全文檢索和標簽識別用 IK中文識別包)
如何檢驗IK安裝結果是否正確:
啟動ElasticSearch,然後在瀏覽器中訪問鏈接
http://localhost:9200/_analyze?analyzer=ik&pretty=true&text=我是中國人
返回結果如下:我是中國人 的分詞結果:{ "tokens" : [ { "token" : "我", "start_offset" : 0, "end_offset" : 1, "type" : "CN_CHAR", "position" : 0 }, { "token" : "中國人", "start_offset" : 2, "end_offset" : 5, "type" : "CN_WORD", "position" : 1 }, { "token" : "中國", "start_offset" : 2, "end_offset" : 4, "type" : "CN_WORD", "position" : 2 }, { "token" : "國人", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 3 } ] }
2.MongoDB 3.2.4
使用預設的28030埠。具體配置任意。
MongoDB應用總結(C#)
3.IDE
由於使用了C#6的語法,ASP.NET MVC5框架,VisualStudio2015是推薦的IDE。
項目結構
- BlogDataSimulator 測試數據的模擬做成工具
- BlogSystem 博客業務邏輯
- CodeSnippet WebSite代碼
- Infrastructure.* 各種功能庫
關於web.config
DEBUGMODE true 的時候,網站調試模式開啟。
Image:
- Mongo:使用MongoDB保存圖片
- FileSystem : 使用文件系統圖片
- QiNiu : 使用七牛保存圖片
Github OAuth :Github 第三方驗證用數據(敏感數據,測試時候不需要)
QQ OAuth :QQ 第三方驗證用數據(敏感數據,測試時候不需要)
QiNiu Storage :七牛用數據(敏感數據,測試時候不需要)
Search Method:全文檢索方式
- MongoTextSearch MongoDB 內置功能(不支持中文)
- ElasticSearch
源代碼中,沒有Web.config文件,而是WebConfig.dummy文件。請註意修改文件名稱。
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="URLBASE" value="http://codesnippet.info" />
<add key="DEBUGMODE" value="true" />
<!--<add key="DEBUGMODE" value="false" />-->
<!-- Image-->
<!--<add key="Image" value="Mongo" />-->
<add key="Image" value="FileSystem" />
<!--<add key="Image" value="QiNiu" />-->
<!-- Thumbnail -->
<!--<add key="Thumbnail" value="Mongo" />-->
<add key="Thumbnail" value="FileSystem" />
<!--<add key="Thumbnail" value="QiNiu" />-->
<!-- Github OAuth -->
<add key="GITHUB:ClientSecret" value="123456" />
<add key="GITHUB:ClientID" value="123456" />
<add key="GITHUB:AppName" value="codesnippet" />
<!-- QQ OAuth-->
<add key="QQ:AppID" value="123456" />
<add key="QQ:AppKey" value="123456"/>
<add key="QQ:CallBack" value="http://www.codesnippet.info/Home/QQOAuth"/>
<add key="QQ:AuthorizeURL" value="https://graph.qq.com/oauth2.0/authorize" />
<!-- QiNiu Storage -->
<add key="QINIU:AK" value="123456" />
<add key="QINIU:SK" value="123456" />
<add key="QINIU:BUCKET" value="gridfilesystem" />
<add key="QINIU:URLBASE" value="123456" />
<!-- Search Method -->
<!--<add key="SearchMethod" value="MongoTextSearch" />-->
<add key="SearchMethod" value="ElasticSearch" />
</appSettings>
</configuration>
第一次啟動 和 數據模擬器
請確保MongoDB服務和ElasticSearch服務已經啟動。
整個系統是完成空的,為了有個直觀的影響,請先做一些模擬數據。
這裡的模擬數據採集於博客園(www.cnblogs.com)
BlogDataSimulator 項目的Sample文件夾中保存著這些數據
Article.txt
the article title is :"margin塌陷現象"div盒子嵌套盒子外邊距合併現象 - goweb - 博客園
the article title is :"拍牌神器"是怎樣煉成的(二)--- 鍵鼠模擬之AutoIt - 鼻涕魚 - 博客園
the article title is :"拍牌神器"是怎樣煉成的(三)---註冊全局熱鍵 - 鼻涕魚 - 博客園
the article title is :"拍牌神器"是怎樣煉成的(一)--- 鍵鼠模擬之WinAPI - 鼻涕魚 - 博客園
the article title is :#001 博客園的 MarkDown 代碼樣式如何設置 - 那年、仲夏 - 博客園
the article title is :#001 如何組織JS代碼 - 那年、仲夏 - 博客園
the article title is :#Linux學習筆記# 自定義shell終端提示符 - lienhua34 - 博客園
the article title is :#VSTS 日誌# TFS 2015 Update 1 發佈 – Git和TFVC代碼庫可以混合使用了 - 北京的201個藍天 - 博客園
the article title is :#VSTS定製#全新的模版定製能力 - 北京的201個藍天 - 博客園
the article title is :#VSTS日誌# TFS 2015 Update 2 RC2新功能 - 北京的201個藍天 - 博客園
the article title is :( 譯、持續更新 ) JavaScript 上分小技巧(二) - 野獸' - 博客園
the article title is :( 譯、持續更新 ) JavaScript 上分小技巧(三) - 野獸' - 博客園
the article title is :( 譯、持續更新 ) JavaScript 上分小技巧(四) - 野獸' - 博客園
the article title is :( 譯、持續更新 ) JavaScript 上分小技巧(一) - 野獸' - 博客園
the article title is :(9)分散式下的爬蟲Scrapy應該如何做-關於ajax抓取的處理(一) - 愛吃貓的魚 - 博客園
the article title is :(C/C++)基於SharpUI控制項庫的插件式框架開發--第三篇框架基礎服務庫 - w.xp - 博客園
the article title is :(Frontend Newbie)JavaScript基礎之常見數據類型 - tbingooo - 博客園
the article title is :(Frontend Newbie)JavaScript基礎之函數 - tbingooo - 博客園
the article title is :(Frontend Newbie)Web簡史 - tbingooo - 博客園
the article title is :(Frontend Newbie)Web三要素(二) - tbingooo - 博客園
the article title is :(Frontend Newbie)Web三要素(三) - tbingooo - 博客園
運行模擬程式之前,請確保MongoDB和ElasticSearch處於運行狀態。
根據需要選擇模擬項目,一般是“全選”。
後面的幾個路徑,請根據個人的開發環境進行修改。
設定結束後,按下 初始化NEST 按鈕(和ElasticSearch建立連接,一定要等到出現消息對話框才表示連接建立,大約 5-10秒)。
按下模擬數據按鈕,開始模擬數據的做成(根據數據量不同,耗費時間不同,最大耗時為20分鐘)
模擬程式將自動生成的用戶
- 第一個設定為管理員
- 第二個設定為編輯
- 剩餘的隨機分配為作者,編輯,普通
(如果你使用DEBUGMODE啟動網站,網站會出現模擬管理員登錄,模擬編輯登陸,模擬普通用戶登錄,這三個按鈕就對應了第一個,第二個,第三個用戶)
每個用戶一個文集,所有文章在一個文集裡面。所有的文章,被隨機為首頁,私有,審核狀態也進行了各種隨機處理。
BUG的提交
本項目使用 https://www.bugclose.com/ 進行BUG的內部管理。
如果你發現BUG,可以在Github項目中提交Issue