首页 > 其他分享 >vitepress搭建博客

vitepress搭建博客

时间:2024-04-19 11:37:16浏览次数:26  
标签:notes ts 博客 nav vitepress sidebar tools 搭建

vitepress搭建博客

之前使用的Hugo搭建了一个博客,感兴趣的可以看看Hugo搭建个人博客,使用了一段时间,配置完成后使用还是相对简单的,不过总感觉不够顺手,后来看到vitepress,就尝试了一下,感觉使用更顺手一些,所以打算换成vitepress,下面记录一下搭建的过程。

搭建博客流程

  • 关于使用vitepress搭建博客的基本流程,官方文档已经写的很详细了,简单看一遍照着做就可以搭起来,这里不多赘述。
    官方文档链接:https://vitepress.dev/zh/guide/getting-started

  • 下面记录几个特殊配置,方便使用。

关于顶部导航栏和侧边栏的配置

  • 关于顶部导航栏和侧边栏的配置,官方文档只是给了一个简单示例,而且是统一都写在了一个config.mts配置文件中,如果后期博客多了,每次添加新博客,都要修改这个配置文件,而且都在一个文件,很多嵌套关系,很容易改错了,针对这个问题,我们可以把顶部导航栏和侧边栏的配置单独提出来分开进行管理,这样就不用每次都去修改config.mts文件了。

顶部导航栏单独提出

  • .vitepress/目录下新建文件夹themeConfig,然后在themeConfig文件夹下新建文件nav.ts,下面代码中,我们定义了一个NavItem[]类型的nav,在其中配置我们自定义的导航栏,我们只需要在config.mts文件中引用这个nav就可以了。

nav.ts文件

import { DefaultTheme } from 'vitepress'

export const nav: DefaultTheme.NavItem[] = [
    { 
        text: '编程技术', 
        items: [
            { text: 'Git', link: '/tec/git/git使用.md' },
        ]
    },
    { 
        text: '工具', 
        items: [
            { text: '编程环境', link: '/tools/env/python安装及pip源切换.md' },
            { text: '记录', link: '/tools/notes/博客创建.md' }
        ]
    },
    { 
        text: '关于', link: '/about'
    }
]
  • config.mts文件中引用这个nav
import { defineConfig } from 'vitepress'
import { nav } from './themeConfig/nav' // [!code ++]

export default defineConfig({
  ...
  themeConfig: {
    nav: nav, // [!code ++]
    ...
  }
})

侧边栏单独提出

  • 侧边栏提出和导航栏方式类似,新建文件sidebar.ts,,下面代码中,我们定义了一个Sidebar类型的sidebar,在其中配置我们自定义的导航栏,这样,我们只需要在config.mts文件中引用这个sidebar就可以了。

  • sidebar.ts文件

import { DefaultTheme } from 'vitepress'

export const sidebar: DefaultTheme.Sidebar = [
  {
    text: '笔记',
    items: [
      { text: '使用Github+PicGo搭建图床', link: '/tools/notes/使用Github+PicGo搭建图床' },
      { text: 'vitepress搭建博客', link: '/tools/notes/vitepress搭建博客' },
    ]
  }
]
  • 但是随着博客和侧边栏配置变多,sidebar.ts文件会变得很大,也不容易管理,所以我们可以对sidebar.ts文件进行拆分,将每个分类的侧边栏单独拆分出来。

  • themeConfig下新建文件夹sidebar\tools,新建文件notes.ts,下面的代码我们定义了一个SidebarItem[]类型的tools_notes,然后在notes.ts中配置我们笔记分类对应的侧边栏,并在sidebar.ts中引用这个tools_notes

  • 这样笔记分类下新添加博客时就可以只修改notes.ts文件就可以,里面的结构比不拆分清晰很多,容易修改,不易出错。

  • notes.ts文件

import { DefaultTheme } from 'vitepress'

export const tools_notes: DefaultTheme.SidebarItem[] = [
    {
      text: '笔记',
      items: [
        { text: '使用Github+PicGo搭建图床', link: '/tools/notes/使用Github+PicGo搭建图床' },
        { text: 'vitepress搭建博客', link: '/tools/notes/vitepress搭建博客' },
      ]
    }
  ]

  • sidebar.ts文件中引用这个tools_notes
import { DefaultTheme } from 'vitepress'
import { tools_notes } from './sidebar/tools/notes' // [!code ++]
import { self_talk } from './sidebar/self-talk'

export const sidebar: DefaultTheme.Sidebar = {
    ...
    // 工具->记录
    '/tools/notes/': tools_notes, // [!code ++]

    // 碎碎念
    '/self-talk/': self_talk

  }
import { defineConfig } from 'vitepress'
import { sidebar } from './themeConfig/sidebar' // [!code ++]

export default defineConfig({
  ...
  themeConfig: {
    sidebar: sidebar, // [!code ++]
    ...
  }
})

目录结构

  • 最终目录结构大致如下:
├── .vitepress
│   ├── config.mts
│   ├── themeConfig
│   │   ├── nav.ts
│   │   ├── sidebar.ts
│   │   └── sidebar
│   │       └── tools
│   │           └── notes.ts

主题配置

默认主题

import { defineConfig } from 'vitepress'
import { nav } from './themeConfig/nav'
import { sidebar } from './themeConfig/sidebar'

export default defineConfig({
  ...
  themeConfig: {
    nav: nav,
    sidebar: sidebar,
    logo: '/avatar.jpg',
    search: {
      provider: 'local'
    },
    socialLinks: [
      { icon: 'github', link: 'https://github.com/mazy699' }
    ],
    outline: {
      level: [2, 6],
      label: '目录'
    },
    lastUpdated: {
      text: '最后更新于',
      formatOptions: {
        dateStyle: 'full',
        timeStyle: 'medium'
      }
    },
    darkModeSwitchLabel: '主题',
    lightModeSwitchTitle: '切换到浅色模式',
    darkModeSwitchTitle: '切换到深色模式',
    sidebarMenuLabel: '菜单',
    returnToTopLabel: '返回顶部',
    docFooter: {
      prev: '上一页',
      next: '下一页'
    },
    footer: {
      copyright: 'MIT Licensed | Copyright © 2021-present Mazy'
    },
  }
})

Markdown相关

export default defineConfig({
  ...
  markdown: {
    lineNumbers: true
  },
  themeConfig: {
    ...
  }
})

标签:notes,ts,博客,nav,vitepress,sidebar,tools,搭建
From: https://www.cnblogs.com/mazy-699/p/18145429

相关文章

  • 我的个人博客上线开源啦,欢迎围观!
    博客地址:https://yanyunfeng.com其实很早就有开发一个自己个人博客的想法,但是一直没有付诸行动,如今大家能看到这篇文章,说明我的博客终于是上线啦,撒花~~在开发这个博客之前,我都是在各大平台上写些东西,但是吧,平台规则限制,总归不是那么自由,所以还是有一个自己的内容空间好啊!!!整个博......
  • 今天依然是写前端的一天--前端页面的搭建
    <!--Login.vue--><scriptsetup>import{User,Lock}from'@element-plus/icons-vue'import{ref}from'vue'//控制注册与登录表单的显示,默认显示注册constisRegister=ref(false)//定义数据模型constregisterData=ref({username:'&#......
  • Spring 源码阅读(一)环境搭建
    注意事项:使用2024-03-14发布的Spring5.3.33版本IDE工具使用了IntellijIDEA,同时为了简化不必要的内容没单独配置Gradle环境JDK版本采用EclipseTemurin1.8/11均可下载源码下载SpringFramework源码,本次选择5.3.33版本,发布日期2024-03-14,通过IntellijIDE......
  • hyperf windows使用docker搭建开发环境
    2024年4月13日23:44:16首先安装好docker注意:powershell是不支持命令换行符的dockerrun--namehyperf-vD:/code:/data-w/data-p9501:9501-it--privileged-uroothyperf/hyperf:8.1-alpine-v3.18-swoole或者使用最新版本dockerrun--namehyperf-vD:/code:/dat......
  • VuePress搭建文档网站
    VuePress官方文档:https://v2.vuepress.vuejs.org/zh/guide/getting-started.html以下是官方文档复制过来的步骤,加上了我的一些经验注释。1、依赖环境Node.jsv18.16.0+(我试了v14是运行不了的,必须这个版本及以上,建议安装nvm,方便切换node版本)包管理器,如pnpm、yarn、npm等(我安......
  • nginx + Markdown 博客指南
    最近写了点东西,在园子上发布了一下,同时在我自己的华为云服务器上也发布了(打钱!!或者,给点优惠券?)。欢迎大家有空看看。但是自己建站写博客,又懒得把Markdown转为HTML(因为有时候可以方便地改改内容),怎么办呢?Firefox的markdown插件我在本地预览Markdown时,由于不想安装额外的软件......
  • 在博客园平台为博客自动化添加目录
    一、效果预览二、操作方法在设置-页脚HTML代码中添加如下代码:<scriptlanguage="javascript"type="text/javascript">//生成目录索引列表//ref:http://www.cnblogs.com/wangqiguo/p/4355032.html//modifiedby:zzqfunctionGenerateContentList(){varmainC......
  • vscode+gdbserver远程调试ARM环境搭建
     一、编译gdbserver1.下载gdb  http://ftp.gnu.org/gnu/gdb/2.解压缩  tarxfgdb-8.0.tar.xz3.交叉编译  cdgdb/gdbserver/ ./configure--host=arm-none-linux-gnueabihf--target=arm-none-linux-gnueabihf--program-prefix=arm-none-linux-gnueabihf-......
  • 团队博客(1)
    让“幸福长伴空巢老人”计划作品设计构思:作品目的:增加亲人与空巢老人的联系,社区对于空巢老人的关注程度,集多方力量共同担当起对空巢老人的关爱工作,共同搭建起幸福的社区。作品内容:为空巢老人搭建了一个......
  • 团队博客
    项目原型展示说明“冀网社区聘”——社区招聘项目是否为日常生活问题感到困扰?是否在因不熟悉的工作愁眉苦脸?我们“冀网社区聘”平台致力于为客户提供快捷,直接的服务。在我们的“冀网社区聘”平台上,雇主可以轻松发布社区内或者跨社区招聘需求,而相应的求职者则可以浏览并选择适合......