使用vuepress+github pages構建我的博客,使用官方文檔過程當中遇到不少問題,遂單獨整理css
VuePress是一個靜態網站生成器。html
使用Markdown書寫頁面,markdown-it將其解析成HTML。Vue、Vue-Router和webpack合做構建一個單頁應用,生成靜態網站。vue
GitHub Pages是一個靜態站點託管服務,能夠從GitHub上獲取html、css和js文件,發佈一個網站。webpack
# 建立項目目錄blog-demo mkdir blog-demo && cd blog-demo # 初始化項目 npm init -y # 本地安裝VuePress npm install -D vuepress # 新建一個docs文件夾 mkdir docs # 新建一個markdown文件 echo '# test' > docs/README.md
在package.json中添加git
{ "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs" } }
運行以下命令,啓動一個服務器github
npm run docs:dev
默認狀況下,靜態文件生成在 .vuepress/dist,目錄相似以下所示 web
訪問http://localhost:8080/查看運行結果 npm
#!/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/<REPO> # git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages # git push origin 本地分支:遠端但願建立的分支 git push -f git@github.com:<username>/vuepress-blog.git master:gh-pages cd -
總體流程和最主要的功能已經完成,在此基礎上添加頁面和其餘功能。json
這裏遇到的坑最多。爲了實現VuePress官網相似的側邊欄,而且在選擇不一樣的導航欄以後能夠顯示不一樣的側邊欄。服務器
最好的例子是VuePress官方文檔自己的config.js源碼。
每一個頁面必須有且僅有一個一級標題
# 一級標題
因爲各類理由,我的不多使用一級標題,markdown文件都沒有一級標題,因而側邊欄花費了很長時間,這一點官方文檔也沒有明確說明。
導航欄中路徑不能寫徹底的路徑
nav: [{ text: '指南', link: '/zh/guide/' <!-- link:'/zh/guide/README.md'寫法不行 --> }]
VuePress官方文檔示例
vuepress默認使用.vuepress/public存放靜態資源(能夠修改),在config.js中base值會影響靜態資源引用路徑。 例如,config.js中設置了base
module.exports = { base:'/vuepress-blog/', // …… }
靜態資源位置以下所示
引用資源路徑以下所示
<!-- .md文件 --> <img src="/vuepress-blog/images/path.png" >
當前能看獲得圖片,就說明成功
一個 base 路徑一旦被設置,它將會自動地做爲前綴插入到 .vuepress/config.js 中全部以 / 開始的資源路徑中。
這個例子中使用gh-pages分支來維護靜態資源。
若是想在已有項目中增長一個說明文檔/使用文檔,使用VuePress(靜態網站生成器,hexo等生成器原理相同)生成靜態文件(.vuepress/dist文件夾中的內容),上傳至一個新的分支gh-pages。
github pages基於該分支構建網站,與主分支master互不影響,而且須要維護的資源也少。
查看github-vuepress-blog,master分支負責維護博客源碼,gh-pages分支提供給github pages構建網站。
每次修改完以後,運行deploy.sh文件。該文件生成新的靜態文件,並更新至gh-pages分支,刷新網頁便可查看更新後的效果
能夠查看push.sh文件,運行該腳本更新源碼到master分支。
#!/usr/bin/env sh # 確保腳本拋出遇到的錯誤 set -e # 上傳 git init git add -A git commit -m 'update' # 上傳源碼部分到master分支 git push -f git@github.com:<USERNAME>/vuepress-blog.git master
根據實際須要增長分支