vue | VuePress从零开始搭建专属博客

简介

欢迎使用我的指南,了解如何使用VuePress! 这个项目的产生是出于使用 VuePress 作为我的博客引擎的愿望,并且没有明确的途径.

VuePress是什么?

VuePress是以Vue驱动的静态网站生成器,是一个由Vue、Vue Router和webpack驱动的单页应用。在VuePress中,你可以使用Markdown编写文档,然后生成网页,每一个由VuePress生成的页面都带有预渲染好的HTML,也因此具有非常好的加载性能和搜索引擎优化。同时,一旦页面被加载,Vue将接管这些静态内容,并将其转换成一个完整的单页应用,其他的页面则会只在用户浏览到的时候才按需加载。

版本

该项目目前位于 version 0.11.0-beta.

目的

该项目的目标很简单:

记录我使用VuePress搭建博客的全过程,以便以后翻阅学习,同时希望可以帮到你,为你提供多样的选择,您根据自己的喜好自定义它。

功能

为什么要使用VuePress搭建博客呢,除了VuePress自带的出色功能之外,您还可以立即使用以下工具:

  • 自动生成主页上的最新帖子
  • 简单的Google Analytics(分析)配置
  • 自动RSS提要生成
  • 简单的图标配置
  • 主页上的简单分页
  • 所有帖子的存档页面按日期排序

小菜一碟吧?那就不要时间浪费了,让我们开始吧!

入门

准备

安装

全局安装VuePress

yarn global add vuepress # 或者:npm install -g vuepress

创建项目目录

mkdir project
cd project

初始化项目

yarn init -y # 或者 npm init -y

新建docs文件夹

docs文件夹作为项目文档根目录,主要放置Markdown类型的文章和.vuepress文件夹。

# 新建一个 docs 文件夹
mkdir docs

# 进入docs文件夹 创建 README.md文件
echo '# Hello VuePress!' > README.md

设置package.json

VuePress中有两个命令,vuepress dev docs命令运行本地服务,通过访问http://localhost:8080即可预览网站,vuepress build docs命令用来生成静态文件,默认情况下,放置在docs/.vuepress/dist目录中,当然你也可以在docs/.vuepress/config.js中的dest字段来修改默认存放目录。在这里将两个命令封装成脚本的方式,直接使用npm run docs:dev和npm run docs:build即可。

{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}
  • 此时运行命令
npm run  docs:dev

运行访问http://localhost:8080/,(此时页面空白并无内容)

  • 结束运行,执行命令
npm run docs:build
  • 查看文件变化 多了个node_modules
  • docs 多了个 .vuepress文件

配置config.js

# 在.vuepress 创建config.js 文件 
# 在config.js 添加配置信息
module.exports = {
  title: 'Harold\'s blog',
  description: '描述',
  head: [ // 注入到当前页面的 <head> 中的标签
    ['link', { rel: 'icon', href: '/logo.png' }],
    ['link', { rel: 'manifest', href: '/logo.png' }],
    ['link', { rel: 'apple-touch-icon', href: '/logo.png' }],
  ],
  serviceWorker: true, // 是否开启 PWA
  base: '/VuePress/', // 部署到github相关的配置
  markdown: {
    lineNumbers: true // 代码块是否显示行号
  },
  themeConfig: {
    // 导航栏配置
    nav:[
      {text: 'Home', link: '/' },
      {text: 'Learn', link: '/learn/' },
      {text: 'Profile', link: '/profile/' },
      {text: 'vue', link: '/vue/' },
      {text: 'react', link: '/react/' },
      {text: '风花雪月', link: '/风花雪月/' }
    ],
    version: '0.11.0-beta'
  }
}
  • base 站点的基础路径,它的值应当总是以斜杠开始,并以斜杠结束。这里设置为 /VuePress/,我们再次在本地运行项目,访问路径就需要变更为http://localhost:8080/VuePress/
  • title 网站的标题
  • description 网站的描述

运行项目

npm run  docs:dev

(如图)


pro.png

部署

完成上面的工作之后,当然还有最后一步,我们需要讲代码部署到服务器上,我这里介绍的是部署GitHub Pages,具体请参照文档:Vupress-部署.当然对于自己有服务器的,也可以尝试部署到自己的服务器上.

创建github仓库

  • 在github上创建一个仓库,并将你的代码提交到github上.
  • docs/.vuepress/config.js 文件中设置正确的 base。部署站点的基础路径,如果你想让你的网站部署到一个子路径下,你将需要设置它。如 GitHub pages,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 "/bar/"

自动部署

在项目根目录中,创建一个如下的 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 -

在依赖package.json文件中添加

{
  "scripts": {
    "deploy": "bash deploy.sh"
  }
}
  • 双击deploy.sh运行脚本 或者 项目根文件夹右键 gitBash here , 然后输入bash deploy.sh,会自动部署在我们的 GitHub 仓库中deploy.sh文件中配置的master:gh-pages分支

操作github

  • 最后, 打开github, 在 GitHub 项目点击 Setting 按钮,找到 GitHub Pages - Source,选择 gh-pages 分支,点击 Save 按钮后,静静地等待它部署完成即可。

踩坑

  • 踩坑
    当我完全按照合理的配置进行了操作,但是依旧没有把项目布置到GitHub Pages上


    404.png
  • 挖坑:在deploy.sh文件中,最后push的时候有个坑git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages,如果你的项目是用ssh 克隆下来的就没问题,但很不幸,我是用简单并习惯的https 克隆下来的,

  • 填坑: 配置ssh完以后重新用ssh克隆下项目,双击deploy.sh就可以自动部署了

配置ssh

一.设置git的user name和email

如果你是第一次使用,或者还没有配置过的话需要操作一下命令,自行替换相应字段。

git config --global user.name "harold1024"
git config --global user.email  "744924498@qq.com"

二.检查是否存在SSH Key

cd ~/.ssh
ls
//看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
  • ls是列出所有文件,看有没有id_rsa 和 id_rsa_pub
  • 如果有跳过生成密钥这一步

三.生成密钥

ssh-keygen -t rsa -C "744924498@qq.com"

四.获取SSH Key

cat id_rsa.pub
//拷贝秘钥 ssh-rsa开头

五.GitHub添加SSH Key

  • GitHub点击用户头像,选择setting
  • 在左侧选择 SSH and GPG keys
  • 新建一个SSH Key
  • 取个名字,把之前拷贝的秘钥复制进去,添加就好啦。

六.验证和修改

测试是否成功配置SSH Key

ssh -T git@github.com
//运行结果出现类似如下
Hi harold1024! You've successfully authenticated, but GitHub does not provide shell access.

在项目 Clone or download中即可切换Use HTTPSUse SSH.

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