我的第一篇blog - Hexo架設的樣式設計 - 基於Butterfly
前言
這是我在建立過程中,設置的一些小細節,如果我的文章有幫助到你的話,希望可以在下面留言:D
給我一個“讚”~
修改 home aside 樣式
整體寬度
前往themes/butterfly/source/css/_layout/aside.styl
找到 card-widget
的樣式,然後修改成以下樣式。
1 | .card-widget |
tag
前往themes/butterfly/source/css/_layout/aside.styl
找到 card-tag-cloud
的樣式,然後修改成以下樣式。
1 | .card-tag-cloud |
post 中把 tag 移動到上方
原本文章內的 tags 是顯示在版權下方,如要好像我這樣顯示在正文上方,在 .\themes\Butterfly\layout\post.pug
這個文件中,搜尋下面這段,把它移到至 block content 的下一行插入。
1 |
|
VScode in snippet
如果想要輸入特定符號,以快速輸入常用代碼。
1 | <!-- 例如輸入:!note --> |
可以輸入ctrl[commend] + p
叫出視窗,輸入>
後搜尋功能 snippet
,然後選擇 Configure User Snippets
後編輯 markdown.json
的相關設定。
以下是我的設定:
1 | { |
latex - Katex in Butterfly Theme Hexo
因為撰寫ML的相關技術文章,但是碰了不少壁,最後終於成功可以在文章中使用Latex撰寫。
- 先下載和解除相關套件
1 | npm un hexo-renderer-marked --save # 卸载 marked 插件 |
- 設定
_config.butterfly.yml
1 | # KaTeX |
- 我是參考到github上的issues,裡面偶然看到hexo-renderer-makrdown-it,才發現需要在
_config.yml
追加以下設定:
1 | # Katex |
- 在文章中啟用katex可以設定如下,更詳細的使用可以參考katex。
1 | #【可选】显示mathjax(当设置mathjax的per_page: false时,才需要配置,默认 false) |
調整 blog 中圖片大小
- Ref: https://github.com/bobcn/hexo_resize_image.js
- Ref: https://bobcn.github.io/2018/03/24/hexo_reset_image_size/
- 先在自己的
/source/js/
底下建立一個hexo_resize_image.js
檔案。 - 貼上以下內容:
1 | function set_image_size(image, width, height) |
- 在
_config.butterfly.yml
做以下設置。
1 | inject: |
mermaid 循序圖繪製
使用mermaid標籤可以繪製Flowchart(流程圖)、Sequence diagram(時序圖 )、Class Diagram(類別圖)、State Diagram(狀態圖)、Gantt(甘特圖)和Pie Chart(圓形圖),具體可以查mermaid文檔
主題配置文件
1 | # mermaid |
1 | {% mermaid %} |
sequenceDiagram participant Alice participant Bob Alice->>John: Hello John, how are you? loop Healthcheck John->>John: Fight against hypochondria end Note right of John: Rational thoughts <br/>prevail! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good!
hidden toggle
( display 不能包含英文逗號,可用‚)
1 | {% hideToggle display,bg,color %} |
Butterfly安裝方法
在你的博客根目錄裏
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly
如果想要安裝比較新的dev分支,可以
git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly
URL網址連結 abbrlink
hexo 默認生成的文章地址路徑是 【網站名稱/年/月/日/文章名稱】
這種鏈接對搜索爬蟲是很不友好的,第一它的 url 結構超過了三層,太深了。
Step1: 安裝 abbrlink 插件:
1 | npm install hexo-abbrlink --save |
Step2: 修改 hexo 根目錄下 config.yml
中的 permalink
的值:
- 插件可以參考官方文檔。
- 作用是將文章的鏈接轉換成數字後字母,即將博客網站的網頁轉成.html 永久鏈接的格式,有利於搜索引擎的收錄。
1 | # URL |
Step3: 在 config.yml 最底下添加 abbrlink config
1 | # abbrlink config |
Check: 配置完成後,網站的鏈接應該類似這樣:
1 | https://qmike.top/posts/77940e6f.html # 有.html後綴 |
客製化css樣式設定
前提是你使用Butterfly的template
- 先於 專案的根目錄建立 /source/css/style.css (不是theme的喔,因為我希望盡量跟theme解開耦合,才方便更新)
- 建立好後,去 _config.butterfly.yml 檔案做以下設定,目的是為了引用剛剛建立的style.css
1 | # Inject |
- 然後開始設定css
1 | #footer { |
post/title
樣式設計
- 前往
_config.butterfly.yml
設置以下內容,prefix-icon
可以參考fontawesome網站,並且貼上unicode。
1 | beautify: |
- 就會有以下效果囉:滑鼠點擊過去會反白
複製連結+錨點
- 如果想要title有錨點可以供別人進行複製,可以做以下設定
1 | # anchor |
- 就會有以下效果囉:可以複製當前的錨點
留言板功能
github 建立 client app
- 前往自己github頁面
/Setting/Developer Setting
(在旁邊sidebar最下面) - 先去建立
OAuth Application
- 創建完成,取得Client ID和Client secrets,第一次創建application需要點擊Generate a new client secret來生成第一個secret
_config.butterfly.yml設定gitalk與啟用
- client_id—你的Client ID
- client_secret—你的Client secrets
- repo—你的公開靜態網頁repo名稱
- owner—你的帳號名稱
- admin—你的帳號名稱
1 | # gitalk |
以gitalk啟用留言系統
1 | comments: |
front-matter啟用留言板
在butterfly Front-matter的comments變數設定true or false(啟用/關閉)
1 |
不同樣式的Quote
1 | {% note default %} |
default 提示块标籤
success 提示块标籤
info 提示块标籤
warning 提示块标籤
danger 提示块标籤
如何改變自己css?
-
請在
source
底下建立style.css
- 建立完後檔案會放置在:
source/css/style.css
- 建立完後檔案會放置在:
-
在
_config.butterfly.yml
中複寫以下資訊:
1 | # Inject |
- 如果你想要我主體中的一些樣式可以參考…
1 | /* 背景渐变 */ |
幫你的post添加背景
-
可以去 unsplash 找一張圖片!上面有圖片的 code
-
開新的分頁,輸入
https://source.unsplash.com/圖片的code
,他會幫你引導到新的圖片網址,複製那個圖片網址。 -
貼上post上面的header
1 | --- |
主要參考了哪些網站
- 最一開始
- 用來設置butterfly的相關樣式
- 為了能方便用vscode貼上圖片
- 貼上相關圖片用
- Google Analysis
- 需要注意的是因為我使用Butterfly Theme所以設置相對簡單,只需要去
_config.butterfly.yml
尋找key:google_analytics
並且把id貼上即可 - 設定_config.butterfly.yml 的教學可以參考這篇
- 需要注意的是因為我使用Butterfly Theme所以設置相對簡單,只需要去
- sitemap配置相關參考文章