iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
8

  寫這系列的起因:想藉由做一個Blog來學習ASP .NET Core,自動爬IT鐵人賽文章同步更新到Blog,並且以W3C格式整理文章方便閱讀。
  找尋幾個Blog引擎,最後挑選 Miniblog.Core 開源引擎做為基底修改、研究。因為使用開源資源,我也把修改內容開源在Github:W3CMiniblog.Core.W3C
  假如想看網頁效果的讀者,可以點此連結:【IT暐翰 Blog】,想要測試功能點此連結:【Miniblog.Core.W3C Live demo】,帳號、密碼都是demo。


以下是整理的特色功能:

Miniblog.Core功能:

  • 使用輕量、高效的asp .net core為基底。
  • 將文章資料保存到記憶體cache,避免重複IO、CPU處理浪費效能。
  • 將可重複使用的Action網頁以OutputCache保存,避免重複網頁渲染。
  • 使用PWA漸進式網頁APP,保存緩存資料,一步一步將網頁功能安裝在使用者端,達到效能優化。(重複造訪資源像是css、js緩存保存由PWA管理)

W3CMiniblog.Core.W3C 新增功能:

  • 使用W3C格式整理文章,方便閱讀:
    2018-10-29.10.56.07-image.png
  • 支持XML、SQL Server、SQLite保存資料方式,只需要更改appsettings.json屬性就能替換資料存取方式
  1. 使用SQLite功能,將 blog-SQLiteConnString 值填上連接字串:
{
  "blog": {
    "SQLiteConnString":"DataSource=app.db",
  }
}
  1. 使用SQL Server功能,將 blog-MSSQLConnString 值填上連接字串:
{
  "blog": {
    "MSSQLConnString": "Data Source=(localdb)\\MSSQLLocalDB;Integrated Security=SSPI;Initial Catalog=ITHelpTestDB;",
  }
}
  1. 使用XML功能,blog-MSSQLConnString、SQLiteConnString不要填上值就可以。
  • IT鐵人賽文章同步功能,當IT鐵人賽有文章更新、新增,會自動更新到BLOG。
    2018-10-29.11.09.44-image.png
    開啟方式,將鐵人賽系列連結複製貼上到appsettings.json > ITIronManArticleURI值 :
{
  "blog": {
    "ITIronManArticleURI": [
      "https://ithelp.ithome.com.tw/users/20105988/ironman/1622",
      "https://ithelp.ithome.com.tw/users/20105988/ironman/1699"
    ]
  }
}

假如想要做成API方式,給外部排程器呼叫,需要填寫ITIronManKeyCode的值做驗證

{
  "blog": {
	"ITIronManKeyCode": "自訂驗證token"
  }
}

接著請求 /api/ITIromManPostSync?Code=ITIronManKeyCode的值就可以執行同步功能。

或是不想使用API方式,也可以開啟排程器功能,將UseITIronManLocalLoader值設為true,設定時間區間(ITIronManLocalLoaderInterval),單位以小時為單位。

{
  "blog": {
    "UseITIronManLocalLoader": true,
    "ITIronManLocalLoaderInterval" :  24
  }
}
  • 不使用IT鐵人賽功能,單純當BLOG使用,提供MarkDown跟富文本編輯器兩種選項。

修改appsettings.json > MarkDown值做替換,True使用MarkDown編輯器、False使用富文本編輯器。

{
  "blog": {
	"MarkDown": true
  }
}
  • 支持Imgur圖床

結語

假如讀者想研究原理,可以參考本系列的文章,假如發現錯誤、問題,都可以留言給我,我會盡快修改。
那本系列鐵人賽文章到此一段落,終於可以專心寫另一系列三十天.NET❤️Azure漸進式開發專案文章,假如讀者有興趣,可以點擊連結觀看、訂閱 : 連結

最後感謝IT邦提供平台,讓IT人可以在上面交流、學習,還有各位IT大師願意無私付出努力、心血傳遞知識。
/images/emoticon/emoticon41.gif


上一篇
29. 使用 IHostedService + Timer 建立.NET Core排程器
系列文
輕量高效.NET Core開源Blog引擎:Miniblog.Core30
1
黑修斯
iT邦新手 5 級 ‧ 2018-10-30 01:54:40

超棒的!!

一開始以為作者一個人挑戰兩場鐵人賽,太猛了!! 恭喜作者完賽

暐翰 iT邦大師 1 級‧ 2018-10-30 07:57:55 檢舉

感謝大大 /images/emoticon/emoticon41.gif

0
Homura
iT邦高手 1 級 ‧ 2018-10-30 09:02:04

恭喜完賽
灑花/images/emoticon/emoticon42.gif

暐翰 iT邦大師 1 級‧ 2018-10-30 09:06:19 檢舉

感謝,大大也快了

0
darwin0616
iT邦新手 2 級 ‧ 2018-10-30 09:02:22

/images/emoticon/emoticon64.gif
恭喜完賽!

暐翰 iT邦大師 1 級‧ 2018-10-30 09:06:47 檢舉

感謝大大 /images/emoticon/emoticon58.gif

1
米歐
iT邦新手 5 級 ‧ 2018-10-30 10:13:53

恭喜大大完賽!
等自己的結束才有辦法好好把這系列看完XD

暐翰 iT邦大師 1 級‧ 2018-10-30 10:42:57 檢舉

謝謝 /images/emoticon/emoticon12.gif

1
SunAllen
iT邦高手 1 級 ‧ 2018-10-30 18:52:06

恭喜大大完賽/images/emoticon/emoticon42.gif

暐翰 iT邦大師 1 級‧ 2018-10-30 20:25:46 檢舉

謝謝大大 /images/emoticon/emoticon37.gif

我要留言

立即登入留言