首页 > 其他分享 >基于VuePress+gitee搭建个人博客

基于VuePress+gitee搭建个人博客

时间:2023-07-16 22:44:16浏览次数:49  
标签:md text 侧边 gitee VuePress vuepress 页面 children 搭建

搭建步骤

  • 步骤 1: 创建并进入一个新目录
mkdir my-blog
cd my-blog
  • 步骤 2: 初始化项目
git init
pnpm init
  • 步骤 3: 将 VuePress 安装为本地依赖
pnpm add -D vuepress@next @vuepress/client@next vue
  • 步骤 4: 在 package.json 中添加一些 scripts在新窗口打开
{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}
  • 步骤 5: 将默认的临时目录和缓存目录添加到 .gitignore 文件中
echo 'node_modules' >> .gitignore
echo '.temp' >> .gitignore
echo '.cache' >> .gitignore
  • 步骤 6: 创建你的第一篇文档
mkdir docs
echo '# Hello VuePress' > docs/README.md
  • 步骤 7: 在本地启动服务器来开发你的文档网站
pnpm docs:dev

VuePress 会在 http://localhost:8080在新窗口打开 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。

目录结构

.
├── docs
│   ├── .vuepress (可选,用于存放全局的配置、组件、静态资源等)
│   │   ├── components (可选,该目录中的 Vue 组件将会被自动注册为全局组件)
│   │   ├── theme (可选,用于存放本地主题)
│   │   │   └── Layout.vue
│   │   ├── public (存放一些公共样式,比如网站图标和头像,当然,也可以直接将图片放入图床)
|   |   ├── dist(这里存放打包好的文件,最后我们将打包好的文件上传到服务器就行)
│   │   ├── styles (这里放一些自定义样式,在这里我们可以修改主题色)
│   │   │   ├── index.styl(将会被自动应用的全局样式文件,会生成在最终的CSS文件结尾,具有比默认样式更高的优先级)
│   │   │   └── palette.styl (用于重写默认颜色常量,或者设置新的 stylus 颜色常量)
│   │   ├── templates (可选的, 谨慎配置, 存储 HTML 模板文件)
│   │   │   ├── dev.html(用于开发环境的 HTML 模板文件)
│   │   │   └── ssr.html(构建时基于 Vue SSR 的 HTML 模板文件)
│   │   ├── config.js (这里是博客的一些配置,导航栏、侧边栏、下载的插件都在这里配置)
│   │   └── enhanceApp.js (可选,客户端应用的增强)
|   ├── about(一个存放自己博客的文件夹,我们可以将不同的文章设置不同的文件夹进行分类)
|   |   ├── README.md(每个文件夹都要有一个README.md文件,否则导航栏配置不生效)
|   |   ├── 文章一.md
|   |   ├── 文章二.md
|   ├── javaScript(同上)
|   |   ├── README.md
│   └── README.md(这个md文档是首页的配置)
│ 
└── package.json(项目初始化时,根目录下自动生成的配置文件,定义了项目的基本配置信息及需要依赖的各个模块、指定运行脚本命令的npm命令行缩写等)

总结:

  • 我们的配置都在 .vuepress文件夹下进行,只有首页的README.md与 .vuepress文件夹同级

  • .vuepress文件夹下 config.js 是主要的配置

  • 我们自己的文章目录与 .vuepress文件夹同级

  • 每个文章的文件夹下都要有一份 README.md文件,否则导航栏配置不生效

首页

默认的主题提供了一个首页(Homepage)的布局 (用于 这个网站的主页)。想要使用它,需要在你的根级 README.md 的 YAML front matter 指定 home: true。首页文档参考,以下是一个如何使用的例子:

---
home: true
heroText: 一个小白分享各类资源的地方
tagline: 公众号:柳小白
actions:
  - text: 快速上手
    link: /catalog1/README1.md
    type: primary
  - text: 项目简介
    link: /catalog2/
    type: secondary
features:
  - title: 个人介绍
    details: 详情待确定中
  - title: 学习笔记
    details: 详情待确定中
  - title: 技术博客
    details: 详情待确定中
footer:  初入小白 | 还望各位大佬不吝赐教
---

你可以将相应的内容设置为 null 来禁用标题和副标题。

任何 YAML front matter 之后额外的内容将会以普通的 markdown 被渲染,并插入到 features 的后面。

导航栏Title

export default {
  title:"柳小白",
}

你可以配置默认主题模式,增加导航栏 Logo ,Logo 可以被放置在公共文件目录:

// .vuepress/config.js
import { defaultTheme } from 'vuepress'
export default {
  theme: defaultTheme({
    // Public 文件路径
    logo: '/images/hero.png',
    // URL
    logo: 'https://vuejs.org/images/logo.png',
  }),
}

导航栏配置

为了配置导航栏元素,你可以将其设置为 导航栏数组 ,其中的每个元素是 NavbarItem 对象、 NavbarGroup 对象、或者字符串:

  • NavbarItem 对象应该有一个 text 字段和一个 link 字段,还有一个可选的 activeMatch 字段。
  • NavbarGroup 对象应该有一个 text 字段和一个 children 字段。 children 字段同样是一个 导航栏数组
  • 字符串应为目标页面文件的路径。它将会被转换为 NavbarItem 对象,将页面标题作为 text ,将页面路由路径作为 link
export default {
  theme: defaultTheme({
    navbar: [
      // NavbarItem
      {
        text: 'Foo',
        link: '/foo/',
      },
      // NavbarGroup
      {
        text: 'Group',
        children: ['/group/foo.md', '/group/bar.md'],
      },
      // 字符串 - 页面文件路径
      '/bar/README.md',
    ],
  }),
}
export default {
  theme: defaultTheme({
    navbar: [
      // 嵌套 Group - 最大深度为 2
      {
        text: 'Group',
        children: [
          {
            text: 'SubGroup',
            children: ['/group/sub/foo.md', '/group/sub/bar.md'],
          },
        ],
      },
      // 控制元素何时被激活
      {
        text: 'Group 2',
        children: [
          {
            text: 'Always active',
            link: '/',
            // 该元素将一直处于激活状态
            activeMatch: '/',
          },
          {
            text: 'Active on /foo/',
            link: '/not-foo/',
            // 该元素在当前路由路径是 /foo/ 开头时激活
            // 支持正则表达式
            activeMatch: '^/foo/',
          },
        ],
      },
    ],
  }),
}

侧边栏配置

  • 你可以通过页面的 sidebar frontmatter 来覆盖这个全局配置。

    设置为 false 可以禁用侧边栏。

    如果你设置为 'auto',侧边栏会根据页面标题自动生成。

    为了手动配置侧边栏元素,你可以将其设置为 侧边栏数组 ,其中的每个元素是一个 SidebarItem 对象或者一个字符串:

    • SidebarItem 对象应该有一个 text 字段,有一个可选的 link 字段、一个可选的 children 字段和一个可选的 collapsible 字段。 children 字段同样是一个 侧边栏数组collapsible 字段来控制它是否可折叠。
    • 字符串应为目标页面文件的路径。它将会被转换为 SidebarItem 对象,将页面标题作为 text ,将页面路由路径作为 link ,并根据页面小标题自动生成 children

    如果你想在不同子路径中使用不同的侧边栏,你可以将该配置项设置为 侧边栏对象

    • Key 为路径前缀。
    • Value 为 侧边栏数组
// .vuepress/config.js
export default {
  theme: defaultTheme({
    // 侧边栏数组
    // 所有页面会使用相同的侧边栏
    sidebar: [
      // SidebarItem
      {
        text: 'Foo',
        link: '/foo/',
        children: [
          // SidebarItem
          {
            text: 'github',
            link: 'https://github.com',
            children: [],
          },
          // 字符串 - 页面文件路径
          '/foo/bar.md',
        ],
      },
      // 字符串 - 页面文件路径
      '/bar/README.md',
    ],
  }),
}

【不同子路径下的页面会使用不同的侧边栏】这种方式最常用

// .vuepress/config.js
export default {
  theme: defaultTheme({
    // 侧边栏对象
    // 不同子路径下的页面会使用不同的侧边栏
    sidebar: {
      '/guide/': [
        {
          text: 'Guide',
          children: ['/guide/README.md', '/guide/getting-started.md'],
        },
      ],
      '/reference/': [
        {
          text: 'Reference',
          children: ['/reference/cli.md', '/reference/config.md'],
        },
      ],
    },
  }),
}
// .vuepress/config.js
export default {
  theme: defaultTheme({
    // 可折叠的侧边栏
    sidebar: {
      '/reference/': [
        {
          text: 'VuePress Reference',
          collapsible: true,
          children: ['/reference/cli.md', '/reference/config.md'],
        },
        {
          text: 'Bundlers Reference',
          collapsible: true,
          children: ['/reference/bundler/vite.md', '/reference/bundler/webpack.md'],
        },
      ],
    },
  }),
}

内容搜索

参考文档

部署到gitee

  1. 在gitee上面我们新建一个仓库(目前仅支持公开仓库开通Gitee Pages 服务),用于存放我们的博客系统。

    图1

    仓库创建成功后如下图

    图2

  2. 仓库建好后,就需要将我们本地的博客系统推送至仓库。

    • 进入blog目录,打开打开gitbash命令行工具,打包博客,执行命令:

      pnpm run docs:build

      图3

    • 我们可以参考gitee仓库给我们的步骤操作,将代码推送到仓库。

      # 逐行执行下列命令
      cd my-blog
      git add .
      git commit -m "初始化"
      git remote add origin https://gitee.com/bigfairy/my-blog.git
      git push -u origin "master"
      
    • 执行完上面的命令后,我们的代码就推到了仓库中去

      图4

    • 在仓库页面点击服务菜单,选择gitpage选项

      图5

    • 选择部署分支和部署目录,然后点击启动

      • 部署分支,不用改,默认master
      • 部署目录,选择docs/.vuepress/dist文件夹,刚刚我们执行打包命令生成的。

      图6

    • 部署好后就会出现一个我们的博客地址了

      图7

      如果期望地址不展示仓库名,新建仓库名保持个人空间地址一样即可。

      打开之后可能无法读取到静态资源,如下

      图8

      解决办法,配置部署站点的基础路径,如下:

      1. Gitee Pages网站地址是https://gitee.com/用户名/仓库名称.git

      2. 我的gitee仓库名是my-blog,路径:docs/.vuepress/,修改config.js配置文件在export default中添加base: '/my-blog/'。

      然后重新构建pnpm run docs:build,推送到gitee部署到gitee pages上去。

标签:md,text,侧边,gitee,VuePress,vuepress,页面,children,搭建
From: https://www.cnblogs.com/bigfairy/p/17490045.html

相关文章

  • [Linux][报错解决] 搭建有固定ip的节点
    Linux环境:CentOS8+VMware目标:令节点有固定可访问的ip地址,为以后搭建多节点环境铺垫过程:查看并确定宿主机和linux系统的ip地址,修改ens160/ens33文件中的参数,使系统ip固定使用dhclient给linux系统分配一个ip系统刚开始默认没有ip(ifconfig后ens160/33没有inet一项),这时候需要dhc......
  • day08 8.1 安卓开发环境搭建
    【一】安卓开发环境介绍做安卓开发需要会Java开发需要安卓SDK需要一款编辑器需要软件测试环境(真机,虚拟机)早期开发安卓app需要使用eclipse+安卓SDK,自己搭建目前开发安卓app只需安装AndroidStudio可以直接通过AndroidStudio下载SDK编写完的代码要运行使用A......
  • LangChain+ChatGLM2-6B搭建知识库
    ChatGLM2-6B介绍ChatGLM2-6B在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,引入了如下新特性:• 更强大的性能:基于ChatGLM初代模型的开发经验,全面升级了基座模型。ChatGLM2-6B使用了 GLM 的混合目标函数,经过了1.4T中英标识符的预训练与人类偏好对......
  • Java开发环境搭建
    一、安装Maven下载安装包(http://archive.apache.org/dist/maven/)下载完成后,解压到某一路径下。本文以D:\sniper\software\maven\apache-maven-3.9.3为例,实际配置环境变量时以自己安装的路径为准二、配置环境变量右键此电脑–>属性–>高级系统设置–>环境变量添......
  • docker registry搭建私有镜像仓库
    目录大神实践推送到私有镜像仓示例常见问题解决开启外部2375访问registry启动用户认证docker登录镜像仓regsitry的垃圾回收dockerpull镜像大神实践https://www.cnblogs.com/gcgc/p/10489385.html推送到私有镜像仓示例1、拉取并运行registry镜像:拉取:dockerpullregistry注:......
  • 搭建NFS存储服务器--基于CentOS7系统
    一、NFS简介NFS是NetworkFileSystem的缩写,顾名思义就是网络文件存储系统,它最早是由Sun公司发展出来的,也是FreeBSD支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP网络共享资源。通过NFS,我们本地NFS的客户端应用可以透明地读写位于服务端NFS服务器上的......
  • Java环境搭建
    Java环境搭建卸载JDK删除java的安装目录删除JAVA_HOME删除path下关于java的目录Win+R:输入cmd,运行java-version,查看运行结果安装JDK百度搜索JDK8,找到下载地址同意协议下载电脑对应的版本双击安装JDK记住安装的路径配置环境变量我的电脑->右键->......
  • MinIO 搭建
    官网:https://min.io中文官网http://www.minio.org.cn,http://dl.minio.org.cnGitHub:https://github.com/minio对象存储服务OSS(ObjectStorageService)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存......
  • 如何快速搭建帮助中心?只需做好这三步,助力搭建在线帮助中心
    对于当前大部分SaaS厂商而言,在提供优质的产品的同时,还需要配套的产品帮助中心,一方面为了提高用户的使用效率,另一方面则是提高用户自助服务能力,让用户能在帮助中心快速获取解决方案。搭建帮助中心要省时省力快速搭建帮助中心,需要选择一套能够支撑完成前期建设、后期更新等过程的工具......
  • 网站搭建流程分享
    购买服务器(新人都有免费的)–>去控制台到实例管理里重置实例密码–>回到概况点击远程连接,然后输入刚刚设置的密码–>去宝塔官方复制Linux面板的安装脚本(看操作系统进行选择)–>粘贴到远程连接台–>安装完成后输入bt14查看地址和账号和记住端口–>安全组添加ATP对应端口和80端口......