Skip to content

VitePress 主题 Nex 是一个 VitePress 用户设计的现代化博客主题。它不仅提供了简洁美观的视觉风格,还具有多种实用的功能,帮助您快速构建高质量的博客页面。

特性

  • 自动分页:系统会根据您的文章文件夹自动生成索引页面,让您的博客内容展示更有条理。
  • 风格一致性:Nex 主题采用与 Vue Point 相似的视觉风格,确保与 VitePress 平台的原生设计完美融合,保持一致的品牌形象。
  • 多用途自定义目录:支持创建无限数量的自定义目录,不仅适用于博客页面,还可用于发布更新日志、动态消息、招聘信息等多种用途。
  • 暗色模式适配:提供优质的暗色模式适配,提升阅读体验。

安装

使用前请确保已完成 VitePress 安装

https://vitepress.dev/zh/guide/getting-started#setup-wizard

然后进行下面操作

sh
npm add -D vitepress-theme-nex
sh
pnpm add -D vitepress-theme-nex
sh
yarn add -D vitepress-theme-nex
sh
bun add -D vitepress-theme-nex

配置

js
// .vitepress/theme/index.js
import { NexTheme } from "vitepress-theme-nex"; 

export default {
    extends: NexTheme 
    // ...
}
js
// .vitepress/config.js
export default defineConfig({
    // ...
    vite: { 
        ssr: { noExternal: ['vitepress-theme-nex'] } 
    } 
})

新建文件

├── docs
│   ├── .vitepress
│   │   ├── theme
│   │   └── config.js
│   ├── blog
│   │   ├── posts
│   │   ├── [page].md
│   │   ├── [page].paths.js
│   │   └── posts.data.ts
│   ├── api-examples.md
│   ├── index.md
│   └── markdown-examples.md
├── package.json

posts.data.ts

js
import { createContentLoader } from 'vitepress'
import { NTransform, type Post } from 'vitepress-theme-nex/composables'

declare const data: Post[]
export { data }

export default createContentLoader('jobs/posts/*.md', {
  render: true,
  excerpt: true,
  transform(rawData) {
    return NTransform(rawData, 'asc')
  }
})

[page].md

markdown
---
title: 博客
aside: false
layout: home
---  

<script setup>
import { data as posts } from './posts.data.ts'
</script>

<NIndex v-bind="{ posts, showDate: true }">
    <template #description>
        这里写介绍
    </template>
</NIndex>

[page].paths.js

js
import { NPathGen } from "vitepress-theme-nex/composables";

export default {
  paths() {
    return NPathGen('docs/blog/posts')
  }
}