Ghost 2.0
阿鬼,這麼快就出 2.0 沒問題嗎?其實 2.0 跟 1.25 左右的版本分別不大,但也確實地感到 Ghost 2.0 在進化。
進化為什麼了?在我看來:
Ghost 己經進化成 Open Source 版的 Medium 了
相信 Medium 優雅美觀的界面令 Ghost 的開發者學習了不少。然後不論 Frontend 跟 Editor 也變到跟 Medium 一樣。相信可以吸引不少喜歡用 Medium 的作者用 Ghost 來做個人 Blog。
在 1.25 時 Ghost Editor 還是半成型的樣子,現在己經是跟 Medium 一樣了。
不過在按 + 後的 embed 選項有點多,跟 Medium 做成一個 embed 鍵再自動去偵測是什麼服務不就好了? (那就真的完全一樣子了)
由 1.x 升級
由於我的 Ghost 己經 docker 化了,己經沒必要用 ghost-cli
,直接把 docker-compose.yml
的 ghost 版本編號改成最新版本,然後重啟 docker-compose 就完成升級。
Dynamic Routing
讓用家可以自訂 URL 的結構,不過還在 beta 中 (官方文件),大家可以在 Labs 中的 Routes 試用這個新功能,按 download 可以下載一份現在的設定來修改:
Routes
就是 routing,假設你更改了設定:
那麼 tag 入面有 news 的文章就會變成
- https://blog.256pages.com/post -> https://blog.256pages.com/news/post
https://blog.256pages.com/news/ 也會變成只有 news 的文章
也可以加入單獨的 routing 給指定頁面使用:
routes:
/: home
/about/careers/: about-careers
/about/team/: about-team
當你有相應名字 template 的時候,也會自動套用 template,沒有時都會用 default
- https://blog.256pages.com/ ->
home.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/about/ ->
about.hbs
ordefault.hbs
- https://blog.256pages.com/about/team/ ->
about-team.hbs
ordefault.hbs
Collections
就是不同類型的文章,預設的是 root 內所有文章,看起來有點像 Wordpress 中的 Permalink Setting
collections:
/:
permalink: /{slug}/
template:
- index
可以使用以下參數去自由組合 URL 的結構
{id}
- 文章 ID{slug}
- 在 Post Setting 中設定的 Post URL{year}
- 4位數年份{month}
- 2位數月份{day}
- 2位數日期{primary_tag}
- 第一個 tag,也就是主要 tag{primary_author}
- 第一個作者
當你設定成這樣子:
collections:
/podcast/:
permalink: /podcast/{slug}/
/vlog/:
permalink: /vlog/{slug}/
template: archives/video
/:
permalink: /{slug}/
設定 URL 也會跟 template 有關連
- https://blog.256pages.com/podcast/
- https://blog.256pages.com/podcast/page/2/
podcast.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/vlog/
- https://blog.256pages.com/vlog/page/2/
archives/video.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/
- https://blog.256pages.com/page/2
home.hbs
orindex.hbs
ordefault.hbs
Taxonomies
就是標籤的分類,基本設定有 tag 標廿一 跟 author 作者的分類
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
跟 routes 及 collections 一樣也會跟名字相關的 template 有連動
- https://blog.256pages.com/tag/technology/renders
tag-technology.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/tag/technology/page/2/renders
tag-technology.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/author/edmond-yip/renders
author-edmond-yip.hbs
orindex.hbs
ordefault.hbs
- https://blog.256pages.com/author/edmond-yip/page/2/renders
author-edmond-yip.hbs
orindex.hbs
ordefault.hbs
Data
在 Dynamic Routing 中,可以利用 data 輕易地抽取一些 data 到頁面
collections:
/games/:
permalink: /games/{slug}/
filter: 'tag:games'
data:
header: page.games
curator: author.edmond
在這例子中,在 /games/ 條目下的頁面會自動由有 games 標籤的文章取出外,還會在 games.hbs
中收集兩個變數 games 頁面的 header
及 edmond作者的 curator
,然後加入 /games/ 的文章中用作標題或作者簡介。那麼只要更改 games page 或者 edmond author 頁面的內容,其他在 games.hbs
的內容也會更改。
後記
今次 2.0 更新當中, 測試功能 Dynamic Routing 明顯才是主角。看官方的 Roadmap 將會有 Multi-Language,以及多個利用 Dynamic Routing 實現的新功能,相信實裝之後,可以成為一下代取代 Wordpress 的 CMS 神器。