如何利用VuePress和GithubPage搭建一个轻量级博客

摘要: 相信每个人都想拥有一个博客, 一个属于自己写作的地方,今天讲讲如何用VuePress和github Github Pages打造一个属于自己的博客,不用建站,也不用域名的轻量级博客, 关键还支持markdown写作, 大大提高了写作的好感度。本文首发于公众号: 漫步coding

博客地址如下:

大家可以打开看看效果:

image.png

VuePress

VuePress 自然不用多说,基于 Vue 的静态网站生成器,风格简约,配置也比较简单。之所以不使用 VitePress,是因为想使用现有的主题, 而 VitePress 不兼容当前 VuePress 的生态系统,至于为什么不选择 VuePress@next,考虑到还处于 Beta 阶段,等稳定后再开始迁移。

安装过程

目前我用的node版本是: v16.14.2, 大家在安装之前要检查一下自己的node版本, 太低了可能安装不了。

大家也可以看VuePress的官网教程: https://v2.vuepress.vuejs.org/guide/getting-started.html

1、创建项目

mkdir vuepress-starter
cd vuepress-starter

2、初始化项目

git init
yarn init

3、安装VuePress

yarn add -D vuepress

4、将下面的script 添加到package.json中

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

5、创建第一个文件

mkdir docs
echo '# Hello VuePress' > docs/README.md

6、运行下面的命令启动local server

yarn docs:dev

这时你访问http://localhost:8080/,如果能出现以下界面,说明到你已经搭建好了博客。

image.png

7、基础配置

在docs目录下创建一个 .vuepress 目录,所有 VuePress 相关的文件都会被放在这里。

命令

mkdir docs/.vuepress
touch docs/.vuepress/config.js

此时你的项目结构可能是这样:

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

6、在 .vuepress 文件夹下添加 config.js,配置网站的标题和描述,方便 SEO:

cat > docs/.vuepress/config.js
module.exports = {
  title: '漫步coding的博客',
  description: '公众号: 漫步coding, 欢迎大家关注, 一个聚焦于算法、数据库、架构的公众号'
}

这个时候就可以看到网站title 已经变成了: 漫步coding的博客

image.png

7、添加导航栏

我们现在在页首的右上角添加导航栏,修改 config.js:

module.exports = {
  title: '漫步coding的博客',
  description: '公众号: 漫步coding, 欢迎大家关注, 一个聚焦于算法、数据库、架构的公众号',
  themeConfig: {
    nav: [
      { text: '首页', link: '/' },
      { 
          text: '漫步coding 博客', 
          items: [
              { text: 'Github', link: 'https://github.com/easyhappy/travel-coding' },
              { text: '公众号', link: 'https://mp.weixin.qq.com/s/Npkk0oHEszZrUP2yRiTaSA' }
          ]
      }
    ]
  }
}

运行效果如下:

image.png

8、添加左侧边栏

现在我们添加一些 md 文档,目前文档的目录如下:

运行以下命令

命令1:

mkdir docs/about
cat > docs/about/brief.md
Hello 大家好,我是公众号: 漫步coding 的作者, 很高兴我们能在这里相聚。可以关注公众号, 一起交流。

命令2:

mkdir docs/mysql
cat >  docs/mysql/brief

一般来讲在面试当中, 关于数据库相关的面试题频率出现比较高的几个关键词是SQL优化、索引、存储引擎、事务、死锁、乐观锁、悲观锁、关系型数据库和非关系数据库对比等等。 把这几个点问完基本也差不多10~20分钟了(一般一轮面试1小时左右), 基本这些可以让面试官对你的数据库知识有一定的了解了。

如果你线上运维经验, 一般也会问一些比如数据库扩容, 如何给大表加索引, 如何在业务高峰是给一个大表添加字段等。

目前文档的目录如下:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
 |  └─ mysql
 |        └─ brief.md
 |  └─ about
 |        └─ brief.md
 |
└─ package.json

8、设置docs/.vuepressconfig.js sidebar模块, 添加左侧导航栏, 完成设置如下:

module.exports = {
  title: '漫步coding的博客',
  description: '公众号: 漫步coding, 欢迎大家关注, 一个聚焦于算法、数据库、架构的公众号',
  themeConfig: {
    nav: [
      { text: '首页', link: '/' },
      { 
          text: '漫步coding 博客', 
          items: [
              { text: 'Github', link: 'https://github.com/easyhappy/travel-coding' },
              { text: '公众号', link: 'https://mp.weixin.qq.com/s/Npkk0oHEszZrUP2yRiTaSA' }
          ]
      }
    ],
    sidebar: [
        {
          title: 'mysql',
          path: '/',
          collapsable: false, // 不折叠
          children: [
              { title: "前言", path: "/mysql/brief"},
          ]
        },

        {
          title: '关于我',
          path: '/',
          collapsable: false, // 不折叠
          children: [
              { title: "公众号", path: "/about/brief"},
          ]
        }
      ]
  }
}

效果图如下:

image.png

9、设置博客主题

yarn add vuepress-theme-reco

将以下代码放到config.js中

module.exports = {
  // ...
  theme: 'reco'
  // ...
}  

就可以自主设置显示模式了。

[图片上传失败...(image-69989d-1648455763607)]

9、此时基本完成了VuePress的搭建, 下面就是将博客发布到Github Page上。我们在 Github 上新建一个仓库,这里我取得仓库名为:travel-coding。

module.exports = {
    // 路径名为 "/<您建的REPO名字>/"
    base: '/travel-coding/',
    //...
}

10、将下面添加一些文件或者目录放到.gitignore文件中.

echo 'node_modules' >> .gitignore
echo '.temp' >> .gitignore
echo '.cache' >> .gitignore

11、然后我们在项目 vuepress-starter 目录下建立一个脚本文件:deploy.sh,注意修改一下对应的用户名和仓库名:

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
npm run docs:build

# 进入生成的文件夹
cd docs/.vuepress/dist

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

### imporant 注意替换 如果发布到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:easyhappy/travel-coding.git master:gh-pages

cd -

12、运行命令, 会将编译好的博客文件, push到github 项目的gh-pages

sh deploy.sh

13、在项目的Settings -> Pages 就可以看到对应的博客地址, 也可以自己设置根目录和自定义域名

image.png

我最后生成的博客地址: https://easyhappy.github.io/travel-coding/
代码地址: https://github.com/easyhappy/travel-coding

到此为止, 我们就完成了 VuePress 和 Github Pages 的部署。

让我们一起漫步coding, enjoy your self.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容