五一之前就想寫一篇關於Vuepress的文章,結果朋友結婚就不了了之了。
記得最後一定要看注意事項!
更新:coding倉庫
Vuepress介紹
官網:https://vuepress.vuejs.org/
類似hexo一個極簡的靜態網站生成器,用來寫技術文件不能在爽。當然搭建成部落格也不成問題。
Vuepress特點
- 響應式,也可以自定義主題與hexo類似
- 內建markdown(還增加了一些擴充套件),並且可以在其使用Vue元件
- Google Analytics 整合
- PWA 自動生成Service Worker
快速上手
安裝
初始化專案
yarn init -y
# 或者 npm init -y
複製程式碼
安裝vuepress
yarn add -D vuepress
# 或者 npm install -D vuepress
複製程式碼
全域性安裝vuepress
yarn global add vuepress
# 或者 npm install -g vuepress
複製程式碼
新建一個docs資料夾
mkdir docs
複製程式碼
設定下package.json
{
"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}
}
複製程式碼
寫作
yarn docs:dev # 或者:npm run docs:dev
複製程式碼
也就是執行開發環境,直接去docs檔案下書寫文章就可以,開啟http://localhost:8080/可以預覽
構建
build生成靜態的HTML檔案,預設會在 .vuepress/dist
資料夾下
yarn docs:build # 或者:npm run docs:build
複製程式碼
基本配置
在 .vuepress
目錄下新建一個config.js
,他匯出一個物件
一些配置可以參考官方文件,這裡我配置常用及必須配置的
網站資訊
module.exports = {
title: '遊魂的文件',
description: 'Document library',
head: [
['link', { rel: 'icon', href: `/favicon.ico` }],
],
}
複製程式碼
導航欄配置
module.exports = {
themeConfig: {
nav: [
{ text: '主頁', link: '/' },
{ text: '前端規範', link: '/frontEnd/' },
{ text: '開發環境', link: '/development/' },
{ text: '學習文件', link: '/notes/' },
{ text: '遊魂部落格', link: 'https://www.iyouhun.com' },
// 下拉選單的配置
{
text: 'Languages',
items: [
{ text: 'Chinese', link: '/language/chinese' },
{ text: 'English', link: '/language/English' }
]
}
]
}
}
複製程式碼
如圖:
側邊欄配置
可以省略.md
副檔名,同時以 /
結尾的路徑將會被視為 */README.md
module.exports = {
themeConfig: {
sidebar: {
'/frontEnd/': genSidebarConfig('前端開發規範'),
}
}
}
複製程式碼
上面封裝的genSidebarConfig
函式
function genSidebarConfig(title) {
return [{
title,
collapsable: false,
children: [
'',
'html-standard',
'css-standard',
'js-standard',
'git-standard'
]
}]
}
複製程式碼
支援側邊欄分組(可以用來做部落格文章分類) collapsable是當前分組是否展開
module.exports = {
themeConfig: {
sidebar: {
'/note': [
{
title:'前端',
collapsable: true,
children:[
'/notes/frontEnd/VueJS元件編碼規範',
'/notes/frontEnd/vue-cli腳手架快速搭建專案',
'/notes/frontEnd/深入理解vue中的slot與slot-scope',
'/notes/frontEnd/webpack入門',
'/notes/frontEnd/PWA介紹及快速上手搭建一個PWA應用',
]
},
{
title:'後端',
collapsable: true,
children:[
'notes/backEnd/nginx入門',
'notes/backEnd/CentOS如何掛載磁碟',
]
},
]
}
}
}
複製程式碼
如圖:
預設主題修改
主題色修改
在.vuepress
目錄下的建立一個override.styl
檔案
$accentColor = #3eaf7c // 主題色
$textColor = #2c3e50 // 文字顏色
$borderColor = #eaecef // 邊框顏色
$codeBgColor = #282c34 // 程式碼背景顏色
複製程式碼
自定義頁面類
有時需要在不同的頁面應用不同的css,可以先在該頁面中宣告
---
pageClass: custom-page-class
---
複製程式碼
然後在override.styl
中書寫
.theme-container.custom-page-class {
/* 特定頁面的 CSS */
}
複製程式碼
PWA設定
設定serviceWorker為true,然後提供Manifest 和 icons,可以參考我之前的《PWA介紹及快速上手搭建一個PWA應用》
module.exports = {
head: [
['link', { rel: 'icon', href: `/favicon.ico` }],
//增加manifest.json
['link', { rel: 'manifest', href: '/manifest.json' }],
],
serviceWorker: true,
}
複製程式碼
部署上線
設定基礎路徑
在config.js
設定base
例如:你想要部署在https://foo.github.io 那麼設定base為/
,base預設就為/
,所以可以不用設定
想要部署在https://foo.github.io/bar/,那麼 base
應該被設定成 "/bar/"
module.exports = {
base: '/documents/',
}
複製程式碼
base
將會自動地作為字首插入到所有以 /
開始的其他選項的連結中,所以你只需要指定一次。
構建與自動部署
用gitHub的pages或者coding的pages都可以,也可以搭建在自己的伺服器上。
將dist
資料夾中的內容提交到git上或者上傳到伺服器就好
yarn docs:build # 或者:npm run docs:build
複製程式碼
另外可以弄一個指令碼,設定持續整合,在每次 push 程式碼時自動執行指令碼
deploy.sh
#!/usr/bin/env sh
# 確保指令碼丟擲遇到的錯誤
set -e
# 生成靜態檔案
npm run docs:build
# 進入生成的資料夾
cd docs/.vuepress/dist
# 如果是釋出到自定義域名
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# 如果釋出到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# 如果釋出到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
cd -
複製程式碼
注意事項(坑)
- 把你想引用的資源都放在
.vuepress
目錄下的public
資料夾 - 給git倉庫繫結了獨立域名後,記得修改
base
路徑 - 設定側邊欄分組後預設會自動生成 上/下一篇連結
- 設定了自動生成側邊欄會把側邊欄分組覆蓋掉
- 設定PWA記得開啟SSL