本篇來講解下更多關於 VuePress 的基本用法
配置首頁
現在的頁面太簡單了,我們可以對專案首頁進行配置,修改 docs/README.md (這些配置是什麼後面會說):
---
home: true
heroImage: https://s3.bmp.ovh/imgs/2022/12/02/bc7428e3916c3a4c.jpg
heroText: Hero標題
tagline: Hero副標題
actionText: 快速上手→
actionLink: /README.md
features:
- title: 簡潔至上
details: 以Markdown為中心的專案結構,以最少的配置幫助你專注於寫作。
- title: Vue驅動
details: 享受Vue+ webpack 的開發體驗,在Markdown中使用Vue元件,同時可以使用Vue來開發自定義主題。
- title: 高效能
details: VuePress為每個頁面預渲染生成靜態的 HTML,同時在頁面被載入的時候,將作為 SPA 執行。
footer: 粵ICP備2022067627號-1 粵公網安備 44011302003646號
---
以上內容使用 yaml 語法,讀者修改的時候注意不要違反了 yaml 語法規則。
重新執行本專案,開啟部落格可以看到如下頁面(已標註各個配置對應的內容):
熱更新
什麼是熱更新:如果我們已經執行了本專案,在我們修改文件時候,VuePress 能自動更新部落格,不用重新執行也能看到修改後的部落格的內容(相當於會自動編譯執行,不用我們手工編譯執行了)。
VuePress 本身是支援熱更新的,但是有 bug……有時候會熱更新失敗
因此,想要做到熱更新,得修改下命令,新增一個臨時目錄:
"docs:dev": "vuepress dev docs --temp .temp"
由於該臨時目錄只用於解決熱更新失敗的問題,我們在 .gitignore
也新增一條忽略的規則:
.temp
注意,我們修改了 package.json 檔案,得重新執行本專案。
在後續的使用過程中,一般文件內容等會自動更新,但如果有修改什麼配置檔案,可能得重啟;
如果還是遇到熱更新失效的話,嘗試重啟看看。
如果你嘗試新增多個文件,建議先停止執行後再重新編譯。
導航欄配置
接下來我們來配置下導航欄。
新建 docs/.vuepress/config.js 配置檔案,檔案內容如下:
module.exports = {
title: '網站標題',
description: 'VuePress演示用'
head: [
['link', { rel: 'icon', href: 'https://s3.bmp.ovh/imgs/2023/02/15/16aa54f3ee84602e.webp' }]
],
themeConfig: {
logo: 'https://s3.bmp.ovh/imgs/2022/12/02/bc7428e3916c3a4c.jpg',
nav: [
{ text: '首頁', link: '/' },
{ text: '計算機基礎', link: '/CouputerBasic' },
{
text: 'Java', items: [
{ text: 'JavaSE', link: '/JavaSE' },
{ text: 'JavaEE', link: 'https://www.peterjxl.com/JavaEE' }
]
},
]
}
}
效果如下:
我們依次介紹下各個配置:
title
:網站的標題,這會決定在瀏覽器標籤頁裡顯示的內容,並且在導航欄也會展示description
:網站的描述,方便 SEOhead
:可配置瀏覽器標籤頁的圖示(icon)themeConfig
:主題的配置,關於主題的內容我們後續會講themeConfig.logo
:導航欄的 logo。一般來說,部落格的標籤頁的圖示和導航欄的圖示是一樣的themeConfig.nav
:導航欄的配置,其中 text 就是連結的文字,link 就是連結的地址,並且支援下拉框(當滑鼠懸浮在文字上時出現)。關於連結地址,支援相對路徑(當前域名 + 連結地址)和絕對路徑,並且支援跳轉到第三方網站等。
增加幾篇部落格
當前網站的內容還比較少,不能很好的展示 VuePress 的功能,因此我們來新增幾篇部落格吧!部落格的內容可以簡單寫寫。
我們的部落格都是寫在 docs 資料夾下的,我們新增兩個目錄:Basic 目錄用於存放計算機基礎的部落格,Java 目錄由於存放 Java 相關的部落格,這樣便於分類
我這裡直接建立好,此時專案目錄結構如下:
vuepress-learn
├── docs
│ ├── .vuepress
│ │ └── config.js
│ ├── Basic
│ │ ├── Basic1.md
│ │ └── Basic2.md
│ ├── Java
│ │ ├── JavaEE.md
│ │ └── JavaSE.md
│ └── README.md
├── package-lock.json
└── package.json
此時,對應文章的訪問路徑是這樣的:網址 + 資料夾名字 + 檔名,例如:
- http://localhost:8080/Basic/Basic1.html
- http://localhost:8080/Basic/Basic2.html
- http://localhost:8080/Java/JavaSE.html
- http://localhost:8080/Java/JavaEE.html
如果直接訪問網址 + 資料夾名字(例如 http://localhost:8080/Java),則預設訪問資料夾下的 README.md
關於文章的內容:預設情況下,如果文件裡有一級標題,則會用一級標題當作標籤頁的 Title:
# Basic1
這裡是計算機基礎第一課!
也可用 yaml 語法來配置標題:
---
title: JavaEE
---
配置側邊欄
什麼是側邊欄?簡單來說就是讀文章的時候,左側的導航欄:
我們還是在 config.js 裡配置themeConfig.sidebar
:
module.exports = {
title: '網站標題',
head: [
['link', { rel: 'icon', href: 'https://s3.bmp.ovh/imgs/2023/02/16/8d42caf2b4ba3334.png' }]
],
themeConfig: {
logo: 'https://s3.bmp.ovh/imgs/2022/12/02/bc7428e3916c3a4c.jpg',
nav: [
{ text: '首頁', link: '/' },
{ text: '計算機基礎', link: '/CouputerBasic' },
{
text: 'Java', items: [
{ text: 'JavaSE', link: '/JavaSE' },
{ text: 'JavaEE', link: 'https://www.peterjxl.com/JavaEE' }
]
},
],
sidebar: [
{
title: 'Basic',
path: '/Basic/',
collapsable: false, //不折疊
sidebarDepth: 2,
children: [
'/Basic/Basic1',
'/Basic/Basic2'
]
},
{
title: 'Java',
path: '/Java/',
collapsable: false,
sidebarDepth: 2,
children: [
'/Java/JavaSE',
'/Java/JavaEE'
]
}
]
}
}
配置後的效果:
注意:側邊欄預設會讀取 Markdown 文件裡配置的標題,如果沒有則會展示文件的訪問路徑(如上圖,不美觀)。
靜態資源
有時候,一些圖片是經常被用到的,我們可以將其放到一個公共資料夾裡,這樣就可以在不同的部落格裡都引用到了。
我們在 .vuepress 目錄下新建 public 目錄,然後放一個圖片,例如 amiliya.jpg。此時資料夾目錄結構如下:
vuepress-learn
├── .temp
├── docs
│ ├── .vuepress
│ │ ├── public
│ │ │ └── amiliya.jpg
│ │ └── config.js
│ ├── Basic
│ │ ├── Basic1.md
│ │ └── Basic2.md
│ ├── Java
│ │ ├── JavaEE.md
│ │ └── JavaSE.md
│ └── README.md
├── package-lock.json
└── package.json
然後我們就可以在部落格或配置檔案裡引用了。例如在 Basic1.md 裡引用:
# Basic1
![](/amiliya.jpg)
這裡是計算機基礎第一課!
效果:
又或者在配置檔案裡訪問圖片:
module.exports = {
themeConfig: {
logo: '/re0.jpg',
}
}
更多關於靜態資源的說明,可參考官方文件:靜態資源 | VuePress
如果遇到了困難
如果有遇到什麼問題,除了在命令列裡觀察報錯資訊外,也可以在瀏覽器控制檯裡看有無報錯資訊
遇見了問題首先嚐試自己解決他,利用你的翻譯軟體和搜尋軟體,找到問題的關鍵,處理它。實在不行就找人解決,例如在部落格平臺上提問或者諮詢朋友等等。
獲取原始碼
為了寫本系列的部落格,博主特地新建了一個專案用於演示,相關程式碼已放到 Gitee 和 GitHub 上。
並且,不同功能建立了不同分支,想要獲取本篇文章演示的原始碼只需切換分支即可!
例如,你想執行本篇文章所建立的部落格,可以這樣做:
- 開啟命令列
- 拉取程式碼:
git clone git@gitee.com:peterjxl/vuepress-learn.git
(也可拉取 GitHub 的) - 跳轉目錄:
cd vuepress-learn
- 切換分支:
git switch -c VuePressDemo2Basic origin/VuePressDemo2Basic
- 安裝依賴:
npm i
- 執行部落格:
npm run docs:dev
參考
- 官網文件:快速上手 | VuePress,目錄結構 | VuePress,靜態資源 | VuePress
- GET 新技能!自己的網站突然就不香了