手把手教你使用 VuePress 搭建個人博客


手把手教你使用 VuePress 搭建個人博客

有閱讀障礙的同學,可以跳過第一至四節,下載我寫好的 工具包
git clone https://github.com/zhangyunchencc/vuepress-devkit.git 然后從第五節開始看。

一、為什么你需要一個博客?

優秀的程序員都在寫博客,寫博客有很多好處:

  • 幫助自己梳理、總結、理解知識點(個人提升)
  • 幫助別人理解知識點(好人一生平安)
  • 簡歷更好看,更多面試機會(升職加薪)

二、什么是 VuePress,為什么要使用 VuePress ?

VuePress 是尤雨溪(vue.js 框架作者)4月12日發布的一個全新的基於 vue 的靜態網站生成器,實際上就是一個 vue 的 spa 應用,內置 webpack,可以用來寫文檔。詳見 VuePress中文網

其實類似的建站工具有很多,比如 WordPress、Jekyll、Hexo 等,其中 WordPress 需要自己購買虛擬主機,不考慮;Jekyll 是 Github-Page 默認支持的,聽說操作比較復雜,沒有用過不做過多評價了;Hexo 之前一直在用,但一直覺得主題不好看,風格不夠簡潔優雅。自從遇見 VuePress,嗯,就是它了~

VuePress 有很多優點:

  • 界面簡潔優雅(個人感覺比 HEXO 好看)
  • 容易上手(半小時能搭好整個項目)
  • 更好的兼容、擴展 Markdown 語法
  • 響應式布局,PC端、手機端
  • Google Analytics 集成
  • 支持 PWA

三、開始搭建

創建項目文件夾

可以右鍵手動新建,也可以使用 mkdir 命令新建:

mkdir vuepressBlogDemo 

全局安裝 VuePress

npm install -g vuepress 

進入 vuepressBlogDemo 文件夾,初始化項目

使用 npm init 或 npm init -y(默認yes)

npm init -y 

創建文件夾和文件

在 vuepressBlogDemo 文件夾中創建 docs 文件夾,在 docs 中創建 .vuepress 文件夾,在.vuepress中創建 public 文件夾和 config.js 文件,最終項目結構如下所示:

vuepressBlogDemo ├─── docs │ ├── README.md │ └── .vuepress │ ├── public │ └── config.js └── package.json 

在 config.js 文件中配置網站標題、描述、主題等信息

module.exports = { title: 'Chen\'s blog', description: '我的個人網站', head: [ // 注入到當前頁面的 HTML <head> 中的標簽 ['link', { rel: 'icon', href: '/logo.jpg' }], // 增加一個自定義的 favicon(網頁標簽的圖標) ], base: '/', // 這是部署到github相關的配置 markdown: { lineNumbers: false // 代碼塊顯示行號 }, themeConfig: { nav:[ // 導航欄配置 {text: '前端基礎', link: '/accumulate/' }, {text: '算法題庫', link: '/algorithm/'}, {text: '微博', link: 'https://baidu.com'} ], sidebar: 'auto', // 側邊欄配置 sidebarDepth: 2, // 側邊欄顯示2級 } };

在 package.json 文件里添加兩個啟動命令

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

一切就緒 tada 跑起來看看吧

npm run dev 

四、一些小亮點

完成了基礎搭建后,就可以在docs目錄下新建 .md 文件寫文章了(.md 是 Markdown 語法文件,你需要知道 Markdown 的一些基本寫法,很簡單,這里給大家一份 Markdown 語法整理大集合

下面給大家安利一些實用的方法。

代碼塊高亮

在 .md 文件中書寫代碼時,可在 ``` 后增加 js、html、json等格式類型,代碼塊即可按照指定類型高亮

clipboard.png

自定義容器

代碼:

::: tip 提示
this is a tip ::: ::: warning 注意 this is a tip ::: ::: danger 警告 this is a tip ::: 

效果:

clipboard.png

支持Emoji

代碼:

:tada: :100: :bamboo: :gift_heart: :fire: 

效果:
tada 100 bamboo gift_heart fire

point_right 這里有一份 Emoji 大全

支持 PWA

VuePress 默認支持 PWA,配置方法如下:

config.js 文件中增加

head: [ // 注入到當前頁面的 HTML <head> 中的標簽 ['link', { rel: 'manifest', href: '/photo.jpg' }], ['link', { rel: 'apple-touch-icon', href: '/photo.jpg' }], ], serviceWorker: true // 是否開啟 PWA

public 文件夾下新建 manifest.json 文件,添加

{
  "name": "張三", "short_name": "張三", "start_url": "index.html", "display": "standalone", "background_color": "#2196f3", "description": "張三的個人主頁", "theme_color": "blue", "icons": [ { "src": "./photo.jpg", "sizes": "144x144", "type": "image/png" } ], "related_applications": [ { "platform": "web" }, { "platform": "play", "url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb" } ] }

最后在 iPhone 的 safrai 瀏覽器中打開本網站,點擊 +添加到主屏幕 就能在桌面看到一個像原生 App 一樣的圖標(感覺自己寫了一個 App 有木有 smile

五、部署上線

說了這么多都是在本地進行的,現在我們要把本地的內容推送到某個服務器上,這樣只要有網絡,就可以隨時隨地看自己的網站了。

一般來說,有兩種方案可供選擇:

  1. 自己買一個服務器,阿里雲、騰訊雲等,這種方式的好處是速度有保證、可以被搜索引擎收錄,壞處是要花錢啊 moneybag 土豪同學可以考慮。
  2. 使用 Github Pages 。什么是 Github Pages 呢?簡單說就是 Github 提供的、用於搭建個人網站的靜態站點托管服務。很多人用它搭建個人博客。這種方式的好處是免費、方便,壞處是速度可能會有些慢、不能被國內的搜索引擎收錄。

最終我選擇了方案2,下面將給大家講解如何使用 Github Pages 服務。

登陸 Github

打開 github 網站,登陸自己的 github 賬號(沒有賬號的快去注冊並面壁思過作為一個優秀的程序員為啥連一個github賬號都沒有)

接着我們新建兩個倉庫,

新建倉庫一: USERNAME.github.io (不用克隆到本地)

注意!
USERNAME 必須是你 Github 的賬號名稱,不是你的名字拼音,也不是你的非主流網名,不要瞎起,要保證和Github賬號名一模一樣!

例如我的 Github 賬號名稱是 zhangyunchencc

clipboard.png

那么新建倉庫,Repository name 就填寫為:zhangyunchencc.github.io

clipboard.png

這個倉庫建好后,不用克隆到本地,內容更新修改都在下面的倉庫中進行。

新建倉庫二:隨便起一個名字,比如:vuepressBlog (克隆到本地)

這個項目是用來開發博客的,以后只需要改這個項目就夠了。

  • 使用工具包的,將 vuepress-devkit 中的內容拷貝到 vuepressBlog 文件夾中
  • 自己從頭搭建的,將 vuepressBlogDemo 文件夾的內容拷貝到倉庫二,並在根目錄下創建 deploy.sh 文件,內容如下:
#!/usr/bin/env sh # 確保腳本拋出遇到的錯誤 set -e # 生成靜態文件 npm run build # 進入生成的文件夾 cd docs/.vuepress/dist # 如果是發布到自定義域名 # echo 'www.yourwebsite.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> REPO=github上的項目 # git push -f git@github.com:USERNAME/<REPO>.git master:gh-pages cd -

修改倉庫二中的 deploy.sh 發布腳本

把文件中的 USERNAME 改成 Github 賬號名,例如我的賬號名是 zhangyunchencc,那么就可以改為:

# 如果你想要部署到 https://USERNAME.github.io git push -f git@github.com:zhangyunchencc/zhangyunchencc.github.io.git master

這樣倉庫二和倉庫一就建立了關聯。

簡單說二者的關系是:倉庫一負責顯示網站內容,我們不需要改動它;日常開發和新增內容,都在倉庫二中,並通過 npm run deploy 命令,將代碼發布到倉庫一。

在 package.json 文件夾中添加發布命令(使用工具包的請忽略)

"scripts": { "deploy": "bash deploy.sh" }

clap 大功告成,運行發布命令

npm run deploy 

此時打開 Github Settings 中下面的鏈接: https://zhangyunchencc.github.io/ 即可看到自己的主頁啦~

clipboard.png

PC 端頁面是這樣的:

clipboard.png

手機端頁面是這樣的:

clipboard.png

六、發布到自己的個人域名

如果你不滿足於 https://zhangyunchencc.github... 這樣的域名,想要一個自己個人的專屬域名,比如 http://www.zhangyunchen.cc/ ,畢竟一些大牛(阮一峰 http://www.ruanyifeng.com/blog/) 都是自己名字的網址哦,很方便很酷呢 😎

下面跟着步驟一步步來就好啦~

購買域名

推薦在 新網 或 萬網 購買

我是在新網購買的,下面以新網為例,萬網是類似的。

購買完成后進入管理后台,點擊 ”解析“ 按鈕,添加下面兩條內容:

clipboard.png

clipboard.png

注意這里有坑!!!在 萬網 購買域名的同學請注意,第二條記錄中的 請用 @ 代替,萬網不支持

記錄值里的 IP 可以通過 ping 自己的域名得到:

ping www.username.github.io 

添加 CNAME 文件

在倉庫一 USERNAME.github.io 中找到 Settings > Custom domain 把 www.zhangyunchen.cc 添加進去即可。

clipboard.png

clap 大功告成,打開 https://www.zhangyunchen.cc 看一下吧~~~

七、最后

  • 你需要一些 Markdown 語法的基礎知識;
  • 你需要一個 Github 賬號,並在里面創建兩個 repo
  • Github 需要添加 ssh key,遇到問題可以百度解決;
  • 個人博客不只可以用來寫技術相關的內容,也可以有自己寫的文章、隨筆,甚至上傳一些照片。

以上,

Chen | 2018.10

 

https://segmentfault.com/a/1190000017207205?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM