当前位置: 首页 > news >正文

【vitepress】如何搭建并部署自己的博客网站

文章目录

    • 新的改变
      • 旧的github.io地址,现在不用
      • 更新netlify托管之后为这个
    • 一 如何搭建[1]:
      • 安装vitepress
      • 初始化Vitepress
      • 启动项目
    • 二 如何部署[2]
    • 视频教程 [3]

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

旧的github.io地址,现在不用

https://dl-hx.github.io/myBlog/

更新netlify托管之后为这个

https://dl-hxblog.netlify.app/

一 如何搭建1:

安装vitepress

首先新建文件夹,打开cmd窗口

pnpm add -D vitepress

初始化Vitepress

pnpm vitepress init

这是我的配置,简单介绍一下

  • 第一个是在当前根目录下创建vitepress项目

  • 站点标题和描述。后续可以在配置中改

  • 主题,建议选择第二个,个人觉得比较好看

  • 是否使用ts,我们个人学习就没必要ts了,主要还是我懒

  • 是否添加脚本到package.json,这个还是需要的,启动命令,打包命令这些都得用
    在这里插入图片描述

初始化成功后,使用vscode或webstorm打开文件夹,会看到这样一个目录。接下来简单介绍一下每个文件的含义
image-20240108190215775

  • .vitepress,最核心的目录,
  • theme目录。自定义主题配置,css样式等
  • config.mjs。最核心的文件,各种配置导航栏、侧边栏、标题什么的都是在这里
  • node_modules。安装的依赖
  • api-examples.md和markdown-examples.md。官方给的两个示例
  • index.md。主页相关
  • package.json和pnpm-lock.yml。包管理工具需要用的

启动项目

pnpm run docs:dev

打开,看到这个,说明初始化成功

image-20240108190658316

二 如何部署2

  1. 需要在config.mjs里面配置base,名称为github仓库名称,注意不要忘记改之前的icon
base: "/myBlog/"

修改package.json, 添加 "packageManager": "pnpm@8.6.12", 版本号要与后面yaml中的pnpm版本号一致

{
  "devDependencies": {
    "vitepress": "^1.6.3"
  },
  "scripts": {
    "docs:dev": "vitepress dev",
    "docs:build": "vitepress build",
    "docs:preview": "vitepress preview"
  },
+ "packageManager": "pnpm@8.6.12"
}
  1. 在 github 中创建一个名称为myBlog的仓库
    在这里插入图片描述
  2. 在项目中初始化 git
$ git init
  1. 根目录添加.gitignore 文件
# Project exclude paths
.idea
.DS_Store
node_modules
/dist
  1. 上传代码
$ git push -u origin master
  1. 选择github actions
    在这里插入图片描述

  2. 设置工作流
    在这里插入图片描述

  3. 重命名并设置deploy脚本2
    脚本文件:参考的vitepress官方文档:https://vitepress.dev/guide/deploy#github-pages
    这里发现参考资料里面的node包有问题,换成我们的
    在这里插入图片描述


name: Deploy VitePress site to Pages

on:
  push:
    branches: [master]
  workflow_dispatch:
# 设置tokenn访问权限
permissions:
  contents: read
  pages: write
  id-token: write

# 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
# 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
concurrency:
  group: pages
  cancel-in-progress: false

jobs:
  # 构建工作
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0 # 如果未启用 lastUpdated,则不需要
      - name: Setup pnpm
        uses: pnpm/action-setup@v2 # 安装pnpm并添加到环境变量
        with:
          version: 8.6.12 # 指定需要的 pnpm 版本
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: pnpm # 设置缓存
      - name: Setup Pages
        uses: actions/configure-pages@v5  # 在工作流程自动配置GithubPages
      - name: Install dependencies
        run: pnpm install # 安装依赖
      - name: Build with VitePress
        run: |
          pnpm run docs:build # 启动项目
          touch .nojekyll  # 通知githubpages不要使用Jekyll处理这个站点,不知道为啥不生效,就手动搞了
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3  # 上传构建产物
        with:
          path: .vitepress/dist # 指定上传的路径,当前是根目录,如果是docs需要加docs/的前缀

  # 部署工作
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }} # 从后续的输出中获取部署后的页面URL
    needs: build    # 在build后面完成
    runs-on: ubuntu-latest  # 运行在最新版本的ubuntu系统上
    name: Deploy
    steps:
      - name: Deploy to GitHub Pages
        id: deployment  # 指定id
        uses: actions/deploy-pages@v4 # 将之前的构建产物部署到github pages中

在这里插入图片描述

  1. 点击确定,耐心等待15秒左右,就可以了,接下来查看我们的域名:
    在这里插入图片描述
    这里我自己的是这个https://dl-hx.github.io/myBlog/

在这里插入图片描述

点击之后.可以看到我们的页面


image-20240108190658316
最后,就部署完毕了

视频教程 3

相关文章:

  • sqlserver中的锁模式 | SQL SERVER如何开启MVCC(使用row-versioning)【启用行版本控制减少锁争用】
  • 基于单片机的智慧农业大棚系统(论文+源码)
  • mysql(community版)压缩包安装教程
  • 【计算机网络】确认家庭网络是千兆/百兆带宽并排查问题
  • 解决电脑问题(5)——鼠标问题
  • Android SharedPreferences 工具类封装:高效、简洁、易用
  • MySql数据库增删改查常用语句命令-MySQL步骤详解教程
  • Docker 的基本概念和优势,以及在应用程序开发中的实际应用
  • (十七) Nginx解析:架构设计、负载均衡实战与常见面试问题
  • windows环境下安装部署dify+本地知识库+线上模型
  • linux安装reids
  • 探索在直播中的面部吸引力预测新的基准和多模态方法
  • Git基础之分支
  • 观看文艺汇演问题
  • YC 孵化项目 Pinch:实时语音翻译视频会议平台;Mistral OCR:能处理多语言多模态复杂文档丨日报
  • 【Linux】详谈 基础I/O
  • linux学习(十)(磁盘和文件系统(索引节点,文件系统,添加磁盘,交换,LVM公司,挂载))
  • c语言笔记 函数参数的等价(上)
  • redis数据迁移教程(使用RedisShake实现不停机迁移十分便捷)
  • liunx学习(四)(文本处理(stdout stderr,Cut,paste,sort,tr,head,Tail,join,Split,grep,...))
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 4月证券私募产品备案量创23个月新高,股票策略占比超六成
  • 图集|俄罗斯举行纪念苏联伟大卫国战争胜利80周年阅兵式
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 全球第七个迪士尼主题公园将落户阿布扎比
  • 美联储宣布维持基准利率不变