标题
必填 最先问,留空会一直重复问。
shane-new-post 装好之后(见安装与快速开始),会在项目里生成 scripts/new-post.js,有两种用法。如果运行 pnpm new-post 提示脚本不存在,看验证是否装成功——简单说就是有些包管理器会跳过初始化这一步,安装原理详解里讲清楚了为什么会这样、以及怎么手动补上。
不带任何参数直接运行:
npm run new-postpnpm new-postyarn new-post会依次问:
标题
文件名
标签
描述 / 精选 / 草稿 / mdx
.md 而不是 .mdx)。文件名会做非法字符、路径分隔符、.. 路径穿越检查,不合法会重新提示输入,不会直接崩溃。
唯一必填的位置参数是文件名,且必须排在最前面。后面的每一项都是 key:value,和文件名不同,这些 key:value 参数顺序随意,用 / 分隔(也可以用空格 + 结尾 \ 换行分隔):
pnpm new-post "getting-started" title:Getting Started/description:An intro post/tags:[astro,web]/draft:F/featured:T/mdx:T下面这样写效果完全一样——同样的键,换了个顺序,用 \ 换行代替挤在一行:
pnpm new-post "getting-started" \ mdx:T \ featured:T \ title:Getting Started \ tags:[astro,web] \ draft:F \ description:An intro post| 参数 | 别名 | 是否必填 | 说明 |
|---|---|---|---|
title |
— | 是 | 文章标题。命令模式下缺失会直接报错退出。 |
description |
desc |
否 | 文章描述,不写就是空字符串。 |
tags |
tag |
否 | 方括号包裹、逗号分隔:[标签1,标签2],不写就是空列表。 |
draft |
— | 否 | 布尔值,规则见下方,默认 false。 |
featured |
— | 否 | 布尔值,规则见下方,默认 false。 |
mdx |
— | 否 | 布尔值,规则见下方。T/true 生成 .mdx,否则生成 .md。 |
布尔类型的参数(draft、featured、mdx)不区分大小写,除了完整单词 true / false,也支持简写 T / F。具体判定:只有 t 或 true(任意大小写)会被识别为“是”;f、false、空值,或者干脆不写这个参数,都会被当成“否”——没有专门判断“false”的逻辑,凡是不匹配“true”的都直接落到默认值。
认不出的参数名(打错字,或者不小心用了 shane-new-doc 那边的参数名比如 order)只会打印一条警告并跳过,不会中断整个流程,文章依然会正常生成。
.md 和 .mdx;如果文件名本身已经带了这两种扩展名之一,会原样使用,mdx 参数对扩展名不再生效。#、引号也不会破坏解析。