写一个vitepress新建文章脚本,自动化创建链接,别再手写了!

这两天用xx云笔记写东西感觉不方便,限制两个登陆设备。所以简单搭了一个 Vitepress 的环境,用来写点东西,内容也能直接上传到 Git。

但是使用过程中创建文章还得加上连接忒麻烦,所以写了个脚本,跟大家分享一下,做个参考。

修改 config.mts

/docs/.vitepress 下创建 menu.json 文件夹

json 复制代码
[
  {
    "text": "20250418-测试",
    "link": "/20250418-测试"
  }
]

修改 /docs/.vitepress/config.mts 文件

javascript 复制代码
import Menu from "./menu.json"

export default defineConfig({
    themeConfig: {
        sidebar: [
            {
                text: 'Examples',
                items: Menu
            }
        ],
    }
})

编辑脚本

创建 scripts/create-post.js 文件

javascript 复制代码
const fs = require('fs');
const path = require('path');
const readline = require('readline');

// 获取命令行输入
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('请输入文章名: ', (articleName) => {
    // 格式化日期和文章名
    const date = new Date();
    const year = date.getFullYear();
    let month = date.getMonth() + 1; // 月份从0开始,所以需要加1
    let day = date.getDate();

    // 确保月份和日期是两位数
    month = month < 10 ? '0' + month : month;
    day = day < 10 ? '0' + day : day;

    // 创建文件名
    const fileName = `${year}${month}${day}-${articleName}`;
    const filePath = path.join(__dirname, '../docs', `${fileName}.md`);

    // 写入空文件
    fs.writeFile(filePath, '', (err) => {
        if (err) throw err;
        console.log(`"${fileName}.md" 已经创建在 docs 文件夹下.`);
    });

    // 更新 menu.json 文件
    const menuFilePath = path.join(__dirname, '../docs/.vitepress/menu.json');
    fs.readFile(menuFilePath, 'utf8', (err, data) => {
        if (err) throw err;

        const menuItems = JSON.parse(data);
        const newItem = { text: fileName, link: `/${fileName}` };

        // 添加新项
        menuItems.push(newItem);

        // 将更新后的数据写回到 menu.json 文件
        fs.writeFile(menuFilePath, JSON.stringify(menuItems, null, 2), 'utf8', (err) => {
            if (err) throw err;
            console.log(`新文章链接已添加到 menu.json 文件中.`);
        });
    });

    rl.close();
});

package.json 加上这个指令脚本就行了

json 复制代码
{
  "scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "create": "node scripts/create-post.js"  // 新加指令
  },
  "devDependencies": {
    "vitepress": "^1.6.3"
  }
}

实测好使,折腾呗~

相关推荐
2301_781668614 小时前
前端基础 JS Vue3 Ajax
前端
上单带刀不带妹4 小时前
前端安全问题怎么解决
前端·安全
Fly-ping4 小时前
【前端】JavaScript 的事件循环 (Event Loop)
开发语言·前端·javascript
SunTecTec4 小时前
IDEA 类上方注释 签名
服务器·前端·intellij-idea
在逃的吗喽5 小时前
黑马头条项目详解
前端·javascript·ajax
袁煦丞5 小时前
有Nextcloud家庭共享不求人:cpolar内网穿透实验室第471个成功挑战
前端·程序员·远程工作
小磊哥er5 小时前
【前端工程化】前端项目开发过程中如何做好通知管理?
前端
拾光拾趣录6 小时前
一次“秒开”变成“转菊花”的线上事故
前端
妮妮喔妮6 小时前
vue3+vite中使用path-to-regexp以及相关的报错问题
node.js
你我约定有三6 小时前
前端笔记:同源策略、跨域问题
前端·笔记