前言
Hexo Next雖然已經將許多常見的設定整合到主題當中,但大家都採用一樣的設定的話其實挺無聊的,所以今天要在Hexo Next的基礎上帶大家來美化自己的部落格,為部落格加入個人風格,如果還不知道Hexo或者NexT是什麼可以參考我之前寫的Hello Hexo!系列文章。
大綱
功能
套用背景圖片
- 準備一張圖片放到
themes/next/source/images/
路徑中。 - 到
themes/next/_config.yml
中,找到custom_file_path
,將style
的註解取消掉。
1 2 3 4 5 6 7 8 9 10 11
| custom_file_path: style: source/_data/styles.styl
|
- 在
source
內新增_data
資料夾(注意是blog的,不是next裡面的!),接著在裡面新增一個styles.styl
文件。 - 在
styles.styl
中加入:
1 2 3 4 5 6 7
| body { background:url(/images/background.jpg); background-repeat: no-repeat; background-attachment: fixed; background-size: cover; background-position: center; }
|
調整區塊透明度
套用背景圖片後,你可能會發現你的圖片大部分都被區塊擋住了!為了讓大家看到你美美的圖片,所以我們要來調整一下區跨的透明度,網路上很多調整透明度的方法都沒有用我試過了,最後在這篇文章中找到讓我滿意的效果,這邊直接講結論,在styles.styl
加入:1 2 3 4
| :root { --content-bg-color:#ffffffe6; // 白色半透明 --content-bg-color:#000000e6; // 黑色半透明,兩者擇一 }
|
補充: 上面的設定是直接將區塊換成指定顏色,如果有開啟深色模式可以用黑色半透明,如果沒有的話可以用白色半透明,但切記不要混者用,否則文字會看不清楚。
設置區塊圓角
- 到
themes/next/_config.yml
中,找到custom_file_path
,將variable
的註解也取消掉。
1 2 3 4 5 6 7 8 9 10 11
| custom_file_path: variable: source/_data/variables.styl style: source/_data/styles.styl
|
- 在
source
內新增_data
資料夾(注意是blog的,不是next裡面的!),接著在裡面新增一個variables.styl
文件。 - 在
variables.styl
中加入:
1 2
| $border-radius-inner = 30px 30px 30px 30px; $border-radius = 30px;
|
文章區塊版面寬度
我們先來看一下預設的寬度(指的是網頁版,手機或平板都是用響應式網頁):
1 2 3
| $content-desktop = 700px $content-desktop-large = 800px $content-desktop-largest = 900px
|
1 2 3
| $content-desktop = 'calc(100% - %s)' % unit($content-desktop-padding / 2, 'px') $content-desktop-large = 1160px $content-desktop-largest = 73%
|
可以看到不同主題的寬度定義方式不太一樣,如果要更改的話,我們可以到variables.styl
中把預設的寬度覆蓋掉,舉例來說我使用Gemini,下面是我採用的設定:1 2
| $content-desktop = 90% $content-desktop-large = 80%
|
程式碼區塊主題
Hexo提供了highlight.js
以及prism.js
兩種程式碼區塊主題engine,可以參考NexT Highlight Theme Preview來做挑選,以下已我自己套用highlight.js
中的night-owl
主題為例。
- 到
_config.yml
中(不是next裡的),找到highlight
,將enable
改成true。
1 2 3 4 5 6 7 8 9 10 11 12
| highlight: enable: true line_number: true auto_detect: false tab_replace: '' wrap: true hljs: false prismjs: enable: false preprocess: true line_number: true tab_replace: ''
|
- 到
themes/next/_config.yml
中,找到codeblock
,根據是否開啟深色模式來填入主題名稱。
1 2 3 4 5 6 7 8 9 10
| codeblock: theme: light: night-owl dark: stackoverflow-dark prism: light: prism dark: prism-dark copy_button: enable: false style:
|
變更文字樣式
這部分主要是分享我在網路上找到的,覺得很不錯的設定,以下修改都是加在source/_data/styles.styl
中。
- 短網址樣式
1 2 3 4 5
| code { color: #c7254e; background: #f9f2f4; margin: 2px; }
|
- 內文連結樣式
1 2 3 4 5 6 7 8 9 10
| .post-body p a{ color: #0593d3; border-bottom: none; border-bottom: 1px solid #0593d3; &:hover { color: #fc6423; border-bottom: none; border-bottom: 1px solid #fc6423; } }
|
- 修改選中文字底色
1 2 3 4 5 6 7 8 9 10
| ::selection { background: #00c4b6; color: #f7f7f7; }
::-moz-selection { background: #00c4b6; color: #f7f7f7; }
|
- 修改頁腳配色
1 2 3 4 5 6 7 8 9 10 11 12
| //頁腳統計文字顏色 .footer{ color: #F0D784 } //修改頁腳備案鏈接顏色 .footer a{ color: #F0D784 } //修改頁腳統計人數的顏色 .footer .with-love{ color: #F0D784 }
|
變更字體類型
NexT可以直接使用Google Fonts提供的字體,但如果你使用的是繁體中文的話,你會發現其實也就只有兩種可以選而已XDDD,NexT預設是使用微軟正黑體,另外一種是唐宋思源體,我們今天就來試者把字體換成唐宋思源體看看吧!
- 到
themes/next/_config.yml
中,找到font
將enable
改成true
,接著更改global
的設定(後面的不用改)。
1 2 3 4 5 6 7
| font: enable: true host: global: external: true family: Noto Serif TC size:
|
- 這邊特別說明
host
部分,在台灣基本上是不用設,但因為預設的host是Google的api,所以大陸地區的用戶在看我們的網站時可能會遇到一些穩定性上的問題?如果你部落格的target是整個大中華地區的話可以另外設個host,這邊提供cdnjs的鏡像api給有需要的人:
1
| host: https://fonts.loli.net
|
補充: 你可能會想問「如果我想要用的字體Google Fonts沒有提供怎麼辦?」,其實也是有辦法使用本地的字體喔,不過這部分稍微麻煩一丟丟,所以之後另外寫一篇文章介紹!
圖片放大檢視
NexT目前提供兩種片放大檢視的工具,分別是FancyBox以及Medium Zoom,可以看一下自己喜歡哪種。
到themes/next/_config.yml
中找到fancybox
/mediumzoom
,將其改為true
,注意不要同時開啟兩個功能!!!1 2
| fancybox: false mediumzoom: false
|
補充: FancyBox的功能比較多且可以顯示註解,不過有issue表示FancyBox對於行動裝置似乎不是很友好? 不知道改了沒,Medium Zoom就跟Medium放大圖片的功能一樣,介面比較簡潔。
參考資料
文章內容大多是網路上的資料整理而來,再加上自己的採坑經驗,如果有遺漏來源的話再麻煩告知補上!