使用VuePress創(chuàng)建Github Pages

本文介紹從零開始使用VuePress搭建個人博客并且發(fā)布到GithubPages的過程贼涩。

快速上手

初始化項目

新建目錄

mkdir vuepress-starter && cd vuepress-starter

生成package.json文件

yarn init -y

安裝依賴

yarn add -D vuepress 

創(chuàng)建第一篇文檔

mkdir docs && echo '# Hello VuePress' > docs/README.md
運行項目

添加scripts

package.json

"scripts": {
  "docs:dev": "vuepress dev docs",
  "docs:build": "vuepress build docs"
},

本地啟動服務

yarn docs:dev 

目錄結構

推薦目錄結構如下

.
├── docs
│   ├── .vuepress (可選的)
│   │   ├── components (可選的)
│   │   ├── theme (可選的)
│   │   │   └── Layout.vue
│   │   ├── public (可選的)
│   │   ├── styles (可選的)
│   │   │   ├── index.styl
│   │   │   └── palette.styl
│   │   ├── templates (可選的, 謹慎配置)
│   │   │   ├── dev.html
│   │   │   └── ssr.html
│   │   ├── config.js (可選的)
│   │   └── enhanceApp.js (可選的)
│   │ 
│   ├── README.md
│   ├── guide
│   │   └── README.md
│   └── config.md
│ 
└── package.json

詳細的目錄說明參看官方文檔,這里列出主要修改的幾個目和文件

  • docs/.vuepress: 存放全局的配置拯爽、組件、靜態(tài)資源等溜宽。

  • docs/.vuepress/public: 靜態(tài)資源目錄汛蝙。

  • docs/.vuepress/config.js: 配置文件的入口文件,也可以是 YMLtoml娃循。

  • docs/README.md: 站點首頁炕檩,默認路由是/

基本配置

網(wǎng)站banner

docs/README.md

---
home: true
heroImage: /home.jpg
actionText: 開始了解 →
actionLink: /repository/

footer: CC0 Licensed | Copyright ? 2020-alfalfaw
---

默認的靜態(tài)資源目錄為docs/.vuepress/public/home.jpg表示的是docs/.vuepress/public目錄下的home.jpg文件

網(wǎng)站標題和描述

docs/.vuepress/config.js

module.exports = {
  title: '全棧日志',
  description: '公眾號:全棧日記'
}
靜態(tài)路徑

docs/.vuepress/config.js

通過配置別名來避免用絕對路徑訪問資源

module.exports = {
  configureWebpack: {
    resolve: {
      alias: {
        '@public': './public'
      }
    }
  }
}
站點根目錄

docs/.vuepress/config.js

module.exports = {
  base: '/journals/'
}

比如捌斧,要將網(wǎng)站部署到 https://<USERNAME>.github.io/journals/笛质,那么 base 的值就應該被設置為 "/journals/"

網(wǎng)站圖標

docs/.vuepress/config.js

module.exports = {
  head: [
    [
      'link',
      {
        rel: 'icon',
        href: '/favicon.ico'
      }
    ]
  ]
}
網(wǎng)站目錄
const utils = require('./utils')
module.exports = {
  themeConfig: {
    editLinks: true,
    docsDir: 'docs',
    smoothScroll: true,
    nav: [
      {
        text: '博客',
        link: '/blog/'
      },
      {
        text: '分享',
        link: '/share/'
      },
      {
        text: '面試',
        link: '/interview/'
      }
    ],
    sidebar: utils.inferSiderbars(),
    lastUpdated: '上次更新',
    editLinkText: '在 GitHub 上編輯此頁'
  }
}
插件

@vuepress/plugin-active-header-links

頁面滾動時自動激活側邊欄鏈接

yarn add -D @vuepress/plugin-active-header-links

使用

module.exports = {
  plugins: ['@vuepress/active-header-links', {
    sidebarLinkSelector: '.sidebar-link',
    headerAnchorSelector: '.header-anchor'
  }]
}

back-to-top

增加返回頂部按鈕

yarn add -D @vuepress/plugin-back-to-top

使用

module.exports = {
  plugins: ['@vuepress/back-to-top']
}

last-updated

顯示更新時間

使用默認主題只需配置themeConfig.lastUpdated = '最后更新時間'

@vuepress/plugin-medium-zoom

安裝

yarn add -D @vuepress/plugin-medium-zoom

使用

module.exports = {
  plugins: ['@vuepress/medium-zoom']
}

yarn add -D @vuepress/plugin-search

搜索

安裝

yarn add -D @vuepress/plugin-search

使用

// .vuepress/config.js or themePath/index.js
module.exports = {
  plugins: [
    ['@vuepress/search', {
      searchMaxSuggestions: 10
    }]
  ]
}

@vuepress/plugin-google-analytics

網(wǎng)站統(tǒng)計

安裝

yarn add -D @vuepress/plugin-google-analytics

使用

plugins: [
  [
    '@vuepress/google-analytics',
    {
      ga: 'G-XXX'
    }
  ]
]

其中ga獲取方式如下,

訪問Google Analytics捞蚂,點擊左下角管理妇押,然后創(chuàng)建媒體資源,點擊剛才創(chuàng)建的媒體資源下的數(shù)據(jù)流姓迅,選擇添加數(shù)據(jù)流敲霍,數(shù)據(jù)流類型選擇網(wǎng)站

部署

以部署到Github Pages為例

deploy.sh

#!/usr/bin/env sh

# 確保腳本拋出遇到的錯誤
set -e

# 生成靜態(tài)文件
npm run docs:build

# 進入生成的文件夾
cd docs/.vuepress/dist

# 如果是發(fā)布到自定義域名
# echo 'www.example.com' > CNAME

git init
git add -A
git commit -m 'deploy'

# 如果發(fā)布到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master

# 如果發(fā)布到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:<USERNAME>/<REPO>.git main:gh-pages

cd -

賦予權限

sudo chmod u+x deploy.sh

每次部署時執(zhí)行下面命令

./deploy.sh
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市丁存,隨后出現(xiàn)的幾起案子肩杈,更是在濱河造成了極大的恐慌,老刑警劉巖解寝,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扩然,死亡現(xiàn)場離奇詭異,居然都是意外死亡聋伦,警方通過查閱死者的電腦和手機夫偶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來觉增,“玉大人兵拢,你說我怎么就攤上這事∮饨福” “怎么了说铃?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我截汪,道長疾牲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任衙解,我火速辦了婚禮阳柔,結果婚禮上,老公的妹妹穿的比我還像新娘蚓峦。我一直安慰自己舌剂,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布暑椰。 她就那樣靜靜地躺著霍转,像睡著了一般。 火紅的嫁衣襯著肌膚如雪一汽。 梳的紋絲不亂的頭發(fā)上避消,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音召夹,去河邊找鬼岩喷。 笑死,一個胖子當著我的面吹牛监憎,可吹牛的內容都是我干的纱意。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鲸阔,長吁一口氣:“原來是場噩夢啊……” “哼偷霉!你這毒婦竟也來了?” 一聲冷哼從身側響起褐筛,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤类少,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后死讹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞒滴,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡曲梗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年赞警,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虏两。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡愧旦,死狀恐怖,靈堂內的尸體忽然破棺而出定罢,到底是詐尸還是另有隱情笤虫,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站琼蚯,受9級特大地震影響酬凳,放射性物質發(fā)生泄漏。R本人自食惡果不足惜遭庶,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一宁仔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧峦睡,春花似錦翎苫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至龙屉,卻和暖如春呐粘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背转捕。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工事哭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓜富。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓鳍咱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親与柑。 傳聞我的和親對象是個殘疾皇子谤辜,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容