用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/cjinhuo/cjinhuo.github.io --skill blog-markdown-format命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | blog-markdown-format |
| description | 博客 Markdown 格式规范。当需要迁移、完善或生成博客文章时,必须调用此 skill 以确保符合 frontmatter 头部信息和 Markdown 语法规范。 |
当处理博客文章的迁移、完善或生成时,必须遵循以下格式规范。
博客文章存放在 src/content/blogs 目录下,按年份分类:
src/content/blogs/
├── 2024/
│ └── my-projects.md
├── 2025/
│ ├── simple-post.md # 无资源的简单文章
│ └── blazwitcher/ # 有资源的文章(文件夹形式)
│ ├── index.md # 文章内容
│ ├── hero-image.png # 封面图片
│ ├── screenshot-1.gif # 文章内引用的图片
│ └── demo.mp4 # 其他资源文件
└── 2026/
└── ...
.md 文件,如 2024/my-projects.mdindex.md,资源文件放在同一目录下./filename.png 引用同目录下的图片从其他项目迁移博客文章时,必须同步处理资源文件:
src/content/blogs/{年份}/ 下创建文章同名文件夹index.md 并移入文件夹./filename.ext优化建议:迁移包含图片的文章时,建议先将原文章内容直接复制到目标文件夹下的 index.md,然后在此基础上进行修改,可有效减少 token 消耗。
外部图片链接处理:当文章中包含完整 URL 的图片链接(如 https://example.com/image.png)时,需要检查该链接是否可用。如果链接不可用(404、超时等),应直接删除该图片引用。
从 VuePress 等其他平台迁移文章时,需要将容器语法从空格分隔格式转换为方括号格式:
| 原格式(VuePress) | 目标格式 |
|---|---|
::: tip 标题 | :::tip[标题] |
::: tip | :::tip |
::: warning 注意事项 | :::warning[注意事项] |
批量转换命令(可在终端执行):
# 在博客目录下执行,将所有 VuePress 风格的容器语法转换为本博客支持的格式
find . -name "*.md" -exec sed -i '' -E 's/^:::[[:space:]]+(tip|warning|danger|info|details)([[:space:]]+(.*))?$/:::\1[\3]/g' {} \;
# 清理空方括号
find . -name "*.md" -exec sed -i '' -E 's/:::(tip|warning|danger|info|details)\[\]([[:space:]]*)?$/:::\1/g' {} \;
每篇博客文章必须包含以下 frontmatter 头部信息:
---
layout: "xx/BlogPost.astro"
title: "文章标题"
description: "文章描述,简要概括文章内容"
tags: ['标签1', '标签2']
pubDate: 'YYYY-MM-DD'
updatedDate: 'YYYY-MM-DD'
author: '作者名称'
authorHref: '作者链接'
heroImage: '/图片路径.jpg'
heroImageAlt: '图片描述'
---
| 字段 | 必填 | 说明 |
|---|---|---|
| title | 是 | 文章标题 |
| description | 是 | 文章描述 |
| pubDate | 是 | 发布日期,格式 'YYYY-MM-DD' |
| tags | 是 | 文章标签,格式 ['标签1', '标签2'],最多 5 个标签 |
| updatedDate | 否 | 更新日期,格式 'YYYY-MM-DD' |
| heroImage | 否 | 文章封面图片路径 |
| heroImageAlt | 否 | 封面图片的 alt 描述 |
| layout | 否 | 默认为 "@/layouts/BlogPost.astro |
| authorHref | 否 | 作者主页链接 |
| author | 否 | 作者名称 |
## 作为文章内的一级标题(H2)###、#### 等作为子标题#(H1),因为文章标题已在 frontmatter 中定义
普通引用:
引用内容 注意 可以在引用中使用 Markdown 语法
带出处的引用:
引用内容
— 出处1
| 列1 | 列2 | 列3 |
|---|---|---|
| 内容 | 内容 | 内容 |
使用三个反引号包裹代码,并指定语言:
const example = 'code';
支持的语言标识:html、css、javascript、typescript、python、go、bash、yaml、json 等。
有序列表:
无序列表:
嵌套列表:
<abbr title="全称">缩写</abbr>H<sub>2</sub>OX<sup>n</sup><kbd>CTRL</kbd>+<kbd>C</kbd><mark>高亮文本</mark>这是一段带脚注的文本2。
本博客支持类似 VuePress 的自定义容器语法,用于突出显示提示、警告等信息。
语法格式:
:::类型[标题] 内容 :::
注意:类型和 [ 之间不能有空格。
支持的容器类型:
| 类型 | 默认标题 | 用途 | 样式 |
|---|---|---|---|
tip | 提示 | 提供有用的建议或技巧 | 绿色边框 |
warning | 注意 | 提醒用户需要注意的事项 | 橙色边框 |
danger | 警告 | 警告用户潜在的危险或错误 | 红色边框 |
info | 信息 | 提供补充信息 | 蓝色边框 |
details | 详情 | 可折叠的详细内容 | 灰色边框 |
示例:
提示容器(自定义标题):
:::tip[带着问题看源码]
为什么每个 Vue 组件都可以访问到 this.$store?
:::
警告容器(使用默认标题):
:::warning 这是一个需要注意的事项 :::
危险容器:
:::danger[危险操作] 此操作不可逆,请谨慎执行! :::
可折叠详情容器:
:::details[点击展开] 这里是折叠的详细内容... :::
当执行以下任务时,应调用此 skill: