Skip to content

批量生成封面

提示

这是一个适用于 vitepress 的 Vite 插件,vitepress 启动时,插件会指定的 Markdown 自动生成 frontmatter。

github 地址:点击跳转

特色 ✨

  • 🚀 自动生成 frontmatter
  • 🚀 支持新习俗 frontmatter

安装

sh
pnpm i vitepress-plugin-auto-frontmatter
sh
npm install vitepress-plugin-auto-frontmatter
sh
yarn add vitepress-plugin-auto-frontmatter

配置

vitepress/config.ts 中配置插件

提示

壁纸获取列表请参考Wallpaper。 图片路径可以是本地(例如/img/bg/1.png),也可以是在线 url(将封面壁纸上传到自己图床后,把多个壁纸 url 写到一个列表里)。然后随机自动注入到 Markdown 文章或者新创建的 Markdown 文章

ts
import { Wallpaper } from "./ConfigHyde/Wallaper"; // 导入Wallaper模块
const CoverImgList = Wallpaper; // 获取壁纸列表

const teekConfig = defineTeekConfig({
  vitePlugins: {
    autoFrontmatterOption: {
      exclude: { title: true, date: true }, // 排除自动生成字段
      transform: (frontmatter) => {
        // 如果文件本身存在了 coverImg,则不生成
        if (frontmatter.coverImg) return; // 随机获取 coverImg

        const list = CoverImgList;

        const coverImg = list[Math.floor(Math.random() * list.length)];

        const transformResult = { ...frontmatter, coverImg };

        return Object.keys(transformResult).length
          ? transformResult
          : undefined;
      },
    },
  },
});

注意

该插件仅限项目启动时生效。

插件默认忽略 frontmatter 中 layout: home 和["node_modules", "dist"]目录下的文件,且只扫描 Markdown 文档。

插件默认给 Markdown 文件生成 title 和 date 两个属性,其中 title 为文件名(支持带序号的文件名,如 01.xx.md),date 为文件的创建日期。

md
---
title: 文件名
date: yyyy-MM-dd hh:mm:ss
---

拓展

如果壁纸 url 地址更换了,那么 Markdown 文章之前自动注入的封面图片 url 地址还是之前的,这时候需要批量先删除 coverImg 信息,再重新生成 coverImg 信息,这里可以利用 Vscode 的搜索正则表达式来批量替换为空

sh
coverImg:\s*/home/[^,]*

正则表达式含义说明:

  • coverImg: 直接匹配字符串 "coverImg:",用于定位 Frontmatter 中的封面图片字段。
  • \s: 匹配零个或多个空白字符(包括空格、制表符、换行符等),用于处理冒号后的可能缩进或换行。
  • /home/: 直接匹配字符串 "/home/",表示封面图片路径以该目录开头。
  • [^,]: 匹配除逗号以外的任意字符, 表示匹配零次或多次
最近更新