如何使用 VuePress 搭建博客网站并 Vercel 部署

news2024/11/20 11:50:37

先来看一下网站截图:

vuepress-1

快速上手

1.创建并进入一个新目录

mkdir vuepress-starter && cd vuepress-starter

2.使用你喜欢的包管理器进行初始化

yarn init # npm init

3.将 VuePress 安装为本地依赖

yarn add -D vuepress # npm install -D vuepress

4.创建你的第一篇文档

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

5.在 package.json 中添加一些 scripts

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

6.在本地启动服务器

yarn docs:dev # npm run docs:dev

VuePress 会在 http://localhost:8080 (opens new window)启动一个热重载的开发服务器。

目录结构

以下是我个人博客目前的目录结构,主题为默认主题,类似 Vue 以及 VuePress 官网。

.
├── docs
│   ├── .vuepress
|   |   ├── public (静态资源目录)
│   │   └── config.js (配置文件)
│   │
│   ├── README.md (首页)
|   └── blog
|       ├── css (介绍css相关)
|       ├── micro (介绍微前端相关)
|       ├── server (介绍服务器相关)
|       └── vxmp (介绍微信小程序相关)
│
└── package.json

vuepress-2

config.js (配置文件)

下面我们来详细看一下 config.js 配置文件。

module.exports = {
  title: "Luminosity Blog",
  description: "An awesome documentation website built with VuePress.",
  base: process.env.BASE_URL || "/vuepress/",
  plugins: [
    ["@vuepress/back-to-top"],
    ["@vuepress/medium-zoom"],
    [
      "@vuepress/last-updated",
      {
        transformer: (timestamp, lang) => {
          const moment = require("moment");
          moment.locale(lang);
          return moment(timestamp).fromNow();
        },
      },
    ],
  ],
  head: [["link", { rel: "icon", href: "/favicon.ico" }]],
  themeConfig: {
    logo: "/ming.png",
    smoothScroll: true,
    lastUpdated: "上次更新",
    nav: [
      { text: "Home", link: "/" },
      {
        text: "Blog",
        items: [
          { text: "CSS", link: "/blog/css/" },
          { text: "VUE", link: "/blog/vue/" },
          { text: "微前端", link: "/blog/micro/" },
          { text: "服务器", link: "/blog/server/" },
          { text: "小程序", link: "/blog/vxmp/" },
        ],
      },
      { text: "GitHub", link: "https://github.com/fadeache" },
    ],
    sidebar: {
      "/blog/css/": [
        {
          title: "CSS",
          collapsable: false,
          sidebarDepth: 2,
          children: [
            "",
            "animation"
            ...
          ],
        },
      ],
      ...
    },
  },
};

  • base 部署时的基本地址。比如我们部署到一个服务器上,这个服务器的域名是 zhang.beer,并通过 nginx 转发到指定路径 vuepress,这时就需要同时将此处的 base 也设置为 vuepress,就可以通过访问 zhang.beer/vuepress 来访问博客了。

    • process.env.BASE_URL 用于动态修改基本地址的环境变量。例如当部署时传入环境变量 BASE_URL = /another 时,便可以通过访问 zhang.beer/another 来访问博客。
  • plugins 插件。有些插件属于官方自带,有些插件需要自行下载,详情见官网。这里选用了三个插件。

    • @vuepress/back-to-top 该插件会给你的站点添加一个 返回顶部 按钮。当页面向下滚动时,该按钮会显示在页面的右下角,点击它就会滚动到页面顶部。该插件已经集成到默认主题中。
    • @vuepress/medium-zoom 为图片提供可缩放的功能。该插件已经集成到默认主题中。
    • @vuepress/last-updated 上次更新时间。默认情况下,该插件为每个页面生成一个 13 位的时间戳,你可以传入一个 transformer 将其转换为你想要的任何格式。该插件已经集成到默认主题中。同时,使用 themeConfig.lastUpdated 选项可以设置提示文本,例如我个人博客设置的为“上次更新”,会根据远程存储库的更新时间,显示在每篇博客的最下面。
  • smoothScroll 平滑滚动。设置为 true 时,当点击侧边栏二级标题,将会平滑滚动到该标题下,否则直接跳转。

  • nav 顶部导航栏设置。这里我们设置了三个标题,分别为 Home、Blog、GitHub。其中点击 Home 和 GitHub 是直接跳转的,而点击 Blog 将会出现 5 个下拉选项:CSS、VUE、微前端、服务器、小程序。

  • sidebar 侧边栏设置。根据导航栏设置的地址,配置侧边栏。

    • title 侧边栏顶部大标题。
    • collapsable 顶部大标题是否显示折叠箭头。
    • sidebarDepth 侧边栏深度。设置 2 即表示显示博客的二级标题至侧边栏。
    • children 该大标题下的博客。其中“”代表 README 文件。其余跟博客文件的名称对应。

Vercel 部署

Vercel 提供了一个强大的、可扩展的平台,可以让开发者在不同的平台和环境中部署和管理他们的代码,简单易用且免费。

所以我们选择 Vercel 将我们的博客网站进行部署。

1.首先将项目同步 github ,然后在 Vercel 上关联该 github 账号。

2.在 Vercel 上点击 Add New Project。

3.点击 import,导入该博客项目。

4.按照如下添加部署配置,完成后点击 Deploy。其中 Environment Variables 和上文中 process.env.BASE_URL 对应,选填。

vuepress-3

5.部署成功后点击 Add Domain,可以看到仅有 Vercel 给你预分配的一个域名,由于 DNS 污染,Vercel 的站点国内可能无法访问,不过我们可以绑定自定义域名。

去代理商官网购买自己的专属域名,例如我是在腾讯云购买的 zhang.beer 域名,但是只免费提供了一级域名的证书。所以之前我只能通过部署到 zhang.beer/vuepress 上,才能蹭到证书。

不过现在,可以解析出一个二级域名,例如 blog.zhang.beer,尽管没有证书,但是可以通过 Vercel 实现 HTTPS。

回到正题,我们将 blog.zhang.beer 填入,点 ADD 即可,这时提示我们添加 CNAME 的解析记录,一般为“cname.vercel-dns.com.”。

然后去腾讯云的域名控制台,将此条解析记录添加进去,即可将该博客部署到此域名,同时给与免费的证书且无需手动安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1124245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react 中setState 的三种写法

目录 1:使用对象形式的setState: 2:使用函数形式的setState: 3:使用回调函数: 1:使用对象形式的setState: this.setState({ count: 0 });2:使用函数形式的setState: this.setSt…

演讲回顾 | 龙智专家分享“支撑、共享与安全:芯片开发中的数字资产管理”

近日,龙智亮相D&R IP-SoC China 2023 Day,呈现集成了Perforce与Atlassian产品的芯片开发解决方案,助力企业更好、更快地进行芯片开发。 龙智资深顾问、技术支持部门负责人李培在展会现场带来了主题为《支撑、共享与安全:芯片…

C语言里的static变量其他语言是看不上还是学不去?

C语言里的static变量其他语言是看不上还是学不去? static变量在C语言中被用于具有静态存储期的局部变量或全局变量。它有以下几个特点: 1. 静态存储期:static变量在程序执行时分配内存,直到程序结束才会释放,其生命周期与程序的…

1024程序员节献礼,火山引擎ByteHouse带来三重产品福利

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 随着信息技术飞速发展,互联网、Web3、物联网、人工智能相继出现。 在这近三十年的高速发展中,“程序员”也成为构建丰富互联网世界的中坚力量…

FC-TSGAS-1624 CP451-10 MVI56E-MNETC IC697CMM742

FC-TSGAS-1624 CP451-10 MVI56E-MNETC IC697CMM742. Variscite的DART-MX8M-PLUS和VAR-SOM-MX8M-PLUS基于恩智浦i.MX 8M Plus SoC,集成人工智能能力高达每秒2.3万亿次运算(TOPS)。这些产品,结合海螺-8 AI处理器提供多达26个top,显著优于市场…

idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)

Spring Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃ ⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术…

大热电视剧《好事成双》里IT故事:科班程序员指法篇

自2023年9月19日在央视八套首播,并在腾讯视频同步播出以来,电视剧《好事成双》聚焦当代社会环境,《好事成双》用生动的群像故事触动人心,描绘了一幅当代都市男女的生活画卷,热度持续走高,成为中秋、国庆假日…

如何判断无损连接(例题)

目录 1. 定义2. 例题3. 补充 1. 定义 无损连接: 如果在关系模式的分解中,能够通过连接已分解的子关系来获得原始关系的信息,而不引入任何数据损失 候选关键字: 候选关键字是能够唯一标识每个元组的属性集。 2. 例题 设关系模式…

在Xamarin.Android项目中调用自己写的java jar包

一、开发环境 1.IntelliJ IDEA 2023.2.3 (Community Edition) 2.Visual Studio 2019 (v16.11.30) 3.Windows PowerShell 二、打开IDEA,编写Java脚本并编译为jar文件 1.打开IDEA--->File--->New--->Project... 三、打开Visual Studio 2019,…

SpringBoot_minio sdk使用自签名https证书错误处理

minio sdk使用自签名https证书错误处理 1.问题描述1.1 报错日志1.2 maven 依赖配置1.3 当前spring MinioClient配置 2.问题分析3.问题解决3.1 使用受信任的证书3.2 忽略证书验证3.2.1 minio客户端3.2.2 minio sdk 忽略证书验证3.2.2.1 拓展: 补充minioclient请求日志 4. 问题总…

如果重回大一学软件工程,你会做什么?

如果重回大一学软件工程,你会做什么? 说白了,就是想要一个过来人的学习路线呗?1、学好线性代数和离散数学,因为追本溯源,计算机行业的本质就是数学,更是算法、机器学习,视觉处理这些…

人工智能算法PPT学习

YOLO You only look once 是一种图像识别算法,速度较快。高效、灵活、泛化性能好,在工业中较为受欢迎。 图像金字塔 一幅图像的多个不同分辨率的子图构成的图像集合。是通过一个图像不断的降低采样率产生的,最小的图像可能仅仅有一个像素点…

Linux本地RStudio工具安装指南及远程访问配置安装RStudio Server

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问…

【C++项目】高并发内存池第三讲PageCache框架涉及+核心实现(上)

PageCache 1. PageCache框架设计1.1整体设计1.2CentralCache向PageCache申请内存的逻辑设计 2.PageCache的核心框架实现这里着重介绍一下CentralCache向PageCache申请内存的过程: 1. PageCache框架设计 1.1整体设计 回顾: 如图所示 内存申请的过程是逐步往下的&a…

让你随时随地访问金蝶云星空企业版v8.0,内网穿透轻松实现远程办公!

文章目录 前言1. 金蝶云星空企业版v8.0安装下载1.1 登录金蝶官网下载安装包1.2 常见的安装下载问题 2. 金蝶云星空配置SQL Sever数据库2.1 创建数据管理中心2.2 创建完成后在服务器登录管理站点 3. 下载安装注册cpolar3.1 公网访问测试 4. 固定连接公网地址 前言 金蝶云星空专注…

【C++】二叉树进阶 -- 详解

一、二叉搜索树概念 二叉搜索树 又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点…

API接口采集商品详情页面数据(H5端和PC端)item_get-获得淘宝商品详情

API接口是一种商业软件开发工具,可以帮助开发者实现业务需求。通过 API接口,开发人员可以快速搭建自己的应用,实现数据采集分析和处理,也可以通过这个接口完成与其它系统的集成与通信。电商API就是各大电商平台提供给开发者访问平…

深度学习中的不确定性综述

领域学者: http://www.gatsby.ucl.ac.uk/~balaji/ 论文标题: A Survey of Uncertainty in Deep Neural Networks 论文链接: https://arxiv.org/pdf/2107.03342.pdf 概要 在过去的十年中,神经网络几乎遍及所有科学领域&#x…

Mac电脑怎么在Dock窗口预览,Dock窗口预览工具DockView功能介绍

DockView是一款Mac电脑上的软件,它可以增强Dock的功能,让用户更方便地管理和切换应用程序。 DockView的主要功能是在 DockQ,栏上显示每个窗口的缩略图,并提供了一些相关的操作选项。当用户将鼠标悬停在Dock栏上的应用程序图标上时…

Centos磁盘问题小纪

场景说明 放个windows的图片镇楼,在给一个centos的来说明问题,咋了,好好的系统,啥也不能干了 来先上一波命令分析下问题 查看挂载 mount 重新挂载数据 mount -o remount, rw / 查看磁盘 df -h 查看分区挂载详情 rw读写权限 mount …