VitePressBlog

vitepress-blog-pure — VitePress Blog Template

By airene

A minimalist blog theme based on VitePress, used by copying files into the project root. It supports post lists, tags, archives, local search, and Giscus comments.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

Based on VitePress, does not modify the official default theme, small codebase

02

Provides a post list, tag page, archive page, and about page

03

Automatically excludes trash, private-notes, and draft directories when publishing

04

Uses VitePress's built-in local search

05

Comment module has been switched to Giscus

06

MIT licensed, free to use, modify, commercialize, and distribute

Template Details

vitepress-blog-pure is a blog theme written by airene for VitePress. After comparing Hexo, Hugo, VuePress, and Docsify, the author chose VitePress, aiming for a lightweight blog solution that generates clean HTML and keeps features restrained. The theme does not modify VitePress's official default theme; instead, it is used by copying files such as .vitepress, pages, and posts into the project root. As a result, the codebase is small and can later be published as an npm theme package.

Functionally, it provides a post list, tag page, archive page, and about page. When publishing, Markdown documents in the trash, private-notes, and draft directories are excluded. Search uses VitePress's built-in local search, and the comment module has been switched from utterances to Giscus. The author explicitly does not plan to maintain features such as ads or previous/next post links.

Regarding usage constraints, posts must be placed in the posts directory. In frontmatter, title is required, while date and tags are recommended. For comments, you need to replace the configuration information in .vitepress/theme/components/CommentGiscus.vue according to the Giscus official guide. The author describes the current functionality as closer to displaying online notes rather than a full blog program.

VitePressBlog

Is it right for your project?

Use Cases

  • Building a personal blog centered on a post list with VitePress
  • Organizing Markdown notes in the posts directory into a browsable online site
  • Personal sites that need tag and archive pages to organize posts
  • Blogs that want to integrate GitHub Discussions comments via Giscus

Suitable For

  • Those who accept copying files into the project root rather than installing an npm theme package
  • Those who prefer a lightweight, restrained blog solution without ads or previous/next post links
  • Those who write posts in Markdown and are willing to fill in title, date, and tags in frontmatter
  • Those who can configure the comment repository information themselves according to the Giscus official guide

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Copy files such as .vitepress, pages, posts, and public into the project root

  2. 2

    Create a package.json and install dependencies such as vitepress, globby, gray-matter, fs-extra, and vitepress-plugin-comment-with-giscus

  3. 3

    Modify the site name and comment repository information in .vitepress/config.ts

  4. 4

    Replace the configuration in .vitepress/theme/components/CommentGiscus.vue according to the Giscus official guide

  5. 5

    Run npm run dev to see the result; pnpm, yarn, bun, and other tools can also be used

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free to use, modify, commercialize, and distribute the code of this version.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • The comment feature depends on the external Giscus service. You must configure it yourself according to the Giscus official guide and replace the repository and other information in CommentGiscus.vue; without configuration, comments are unavailable.
  • In post frontmatter, title is required; missing it will result in incomplete post metadata. date and tags are recommended; if date is missing, the current time is used by default.
  • Posts must be placed in the posts directory. When publishing, only Markdown documents in the trash, private-notes, and draft directories are excluded; posts in other locations will not be properly included.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

请按照giscus官网的指导操作更换`.vitepress/theme/components/CommentGiscus.vue`中的信息

Original README

其中 title 为必须有的内容,其他随意

Original README

推荐放到 posts 目录中

Original README
https://github.com/airene/vitepress-blog-pure/blob/main/LICENSEhttps://github.com/airene/vitepress-blog-pure/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 91 / 100
Technologies
VitePress
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-21
Screenshot last checked
2026-10-01

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies VitePress as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: ab0ea390a0fd942fb0341b0790bd954d0fa067d619358aae5081900efc5d4232

2026-10-01T03:52:30.425Z

Source file / repository
# vitepress theme blog pure

[Live Demo](https://ti.bi)

## 动机

一直想找一个架构足够干净的 ssg 程序,hexo,hugo,vuepress,docsify 等各种网上能找的都试了,总有不满意的地方,包括这些程序的主题也没有直接满意的(编程语言不会,功能太多,生成的 html 的文件还有不少插件的残留等)。

vitepress 足够轻量,系统干净,博客主题这块又是空白,所以做一个自己满意的博客主题吧,诉求就是功能可以少,但要足够的轻量。

认真来说对比博客程序的话,其实当前的功能更像是线上笔记展示。

**计划中的功能**
-   [ ] 等 vitepress 本身稳定了,就做成 npm package 方式的 theme **keep going**
-   [x] 修改原有的评论模块为Giscus,因为原有的有不少问题,新的安装地址:https://giscus.app/ 请按照giscus官网的指导操作更换`.vitepress/theme/components/CommentGiscus.vue`中的信息
-   [x] 发布时排除 `trash` `private-notes` `draft` 这三个目录的md文档
-   [x] 搜索 - vitepress后来的版本天生本地搜索,对普通人来说比algolia好用,很省心
-   [x] ~~留言 基于~~ [utteranc](https://utteranc.es/) ,⚠️2025-04-24 已经换成giscus
-   [x] 分页?!

**不打算维护的功能**
-   广告 - 一般人用不上
-   上一篇|下一篇 - 博客文章本来没什么关联性,价值不大
## changelog
[changelog](./changelog.md)

## 使用方法

1.复制以下文件到你的项目根目录

```
├── .vitepress
├── pages
│   ├── about.md
│   ├── archives.md
│   └── tags.md
├── posts            //存放博客文章
├── public           //[可选]
    └── favicon.ico
```

2.新建一个 package.json 文件,执行 npm i,包信息自己看着调整

```json
{
    "name": "vitepress-blog-pure",
    "version": "1.0.0",
    "description": "",
    "main": "index.ts",
    "scripts": {
        "dev": "vitepress dev --host 0.0.0.0",
        "build": "vitepress build",
        "preview": "vitepress preview"
    },
    "keywords": [],
    "author": "",
    "type": "module",
    "license": "ISC",
    "devDependencies": {
        "vitepress": "^1.6.4",
        "globby": "^15.0.0",
        "gray-matter": "^4.0.3",
        "fs-extra": "^11.3.2",
        "vitepress-plugin-comment-with-giscus": "^1.1.15"
    }
}
```
3.修改 `.vitepress/config.ts` 中的基本配置信息(站点名称,评论仓库信息)  
4.执行 `npm run dev` 即可查看效果, 其他工具随意 pnpm,yarn,bun 等

**ps. 写文章的格式和位置**  
推荐放到 posts 目录中,格式:

```markdown
---
date: 2021-06-30
title: .zsh_history历史记录优化
description: 历史重复的命令太多了,不用grep都不太好找
tags:
    - macOS
---

# .zsh_history历史记录优化  -- 用{{ $frontmatter.title }}会影响本地查询,可惜
正文
```

**其中 title 为必须有的内容,其他随意,推荐含有 date,不然会默认一个当前时间,推荐含有 tags,这样也可以在标签页面显示**

## 感谢

其实没怎么写过 nodejs,从掘金看到的一篇文章带来的灵感 - [VitePress 极简博客搭建](https://juejin.cn/post/6896382276389732359)

[Moking1997](https://github.com/Moking1997) 开发的比较早,vitepress 的版本还是 0.7.x,现在已经 0.15.x 了,变化还是挺大的,已经不太能通过提 pr 的方式维护了。  
主要的变化是适配 vitepress 的新版本,主题这块采用的实现思路不一样,并不改动官方默认主题,这样可以实现极少的代码量和为将来能发布成 npm 主题包的做准备。

比如:  
sidebar 使用 hackcss 的方式实现想要的效果

[Albert26193](https://github.com/Albert26193) 第一个给本project 提pull request的人,虽然没直接合进来,还是感谢。  
[InsHomePgup](https://github.com/InsHomePgup)  
[FisherMS](https://github.com/FisherMS)  

## License

[MIT](https://opensource.org/licenses/MIT)  
Copyright (c) 2021-present, Airene
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.