跳转到内容

在 Markdown 中创作内容

Markdown 是一种轻量级标记语言,让你能够使用纯文本编写格式化的文档。ShokaX 支持完整的 Markdown 语法,并通过 MDX 提供了强大的扩展能力。

文章文件存放在 src/posts/ 目录中,支持 .md.mdx 两种格式。

src/
└── posts/
├── hello-world.md # 普通 Markdown 文章
├── advanced-post.mdx # 使用 MDX 扩展的文章
└── getting-started/ # 也可以组织在子目录中
└── index.md

手动创建一个新文件,或使用 Hyacine CLI 命令:

Terminal window
hyc new

每篇文章都需要在文件顶部包含 frontmatter(前置元数据),使用 --- 包裹:

---
title: 我的第一篇博客
date: 2026-02-14
description: 这是一篇示例文章
categories: [技术, 前端]
tags: [Astro, Markdown]
draft: false
---
这里开始写正文内容...
字段类型必填说明
title字符串文章标题
date日期发布日期(格式:YYYY-MM-DD
description字符串文章描述,用于 SEO 和摘要
categories数组文章分类,支持多级分类
tags数组文章标签
draft布尔值是否为草稿(true 时不会发布)
updated日期最后更新日期
cover图片封面图片路径
sticky布尔值是否置顶
link字符串外部链接(用于链接文章)
license字符串文章许可证(见下文)

支持以下 Creative Commons 许可证:

  • CC-BY-4.0 - 署名
  • CC-BY-SA-4.0 - 署名-相同方式共享
  • CC-BY-ND-4.0 - 署名-禁止演绎
  • CC-BY-NC-4.0 - 署名-非商业性使用
  • CC-BY-NC-SA-4.0 - 署名-非商业性使用-相同方式共享
  • CC-BY-NC-ND-4.0 - 署名-非商业性使用-禁止演绎
  • NOREPRINT - 禁止转载
---
title: TypeScript 入门指南
date: 2026-02-14
updated: 2026-02-15
description: 从零开始学习 TypeScript 的完整指南
categories: [编程, Web开发]
tags: [TypeScript, JavaScript, 教程]
cover: ./images/typescript-cover.png
sticky: false
draft: false
license: CC-BY-SA-4.0
---
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
**粗体文字**
*斜体文字*
~~删除线~~
`行内代码`

效果:粗体文字斜体文字删除线行内代码

[链接文本](https://example.com)
[带标题的链接](https://example.com "鼠标悬停提示")
![图片描述](./images/photo.jpg)
![带标题的图片](./images/photo.jpg "图片标题")

无序列表:

- 项目一
- 项目二
- 子项目 2.1
- 子项目 2.2
- 项目三

有序列表:

1. 第一步
2. 第二步
3. 第三步
> 这是一段引用文字。
>
> 可以包含多个段落。

效果:

这是一段引用文字。

可以包含多个段落。

使用三个反引号(```)创建代码块,指定语言以启用语法高亮:

```javascript
function greeting(name) {
console.log(`Hello, ${name}!`);
}
greeting('World');
```

ShokaX 的代码块支持:

  • 语法高亮
  • 行号显示
  • 彩虹括号
  • 明暗模式切换
  • 一键复制

详见代码展示功能文档。

| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 内容A | 内容B | 内容C |
| 内容D | 内容E | 内容F |

效果:

列1列2列3
内容A内容B内容C
内容D内容E内容F
---

- [x] 已完成任务
- [ ] 待办任务
- [ ] 另一个待办

效果:

  • 已完成任务
  • 待办任务
  • 另一个待办

MDX 是 Markdown 的超集,允许你在文章中使用 React/Svelte 组件,实现更丰富的交互效果。

  • ✅ 需要使用 ShokaX 提供的扩展组件(隐藏内容、提示卡片等)
  • ✅ 需要嵌入自定义的交互式组件
  • ✅ 需要更灵活的内容展示
  • ❌ 简单的文章使用 .md 即可,性能更好

只需将文件扩展名从 .md 改为 .mdx

src/posts/my-post.md → src/posts/my-post.mdx

在 MDX 中,你可以混合使用 Markdown 和 JSX:

# 普通的 Markdown 标题
这是普通的 Markdown 文本。
<Note type="info" title="提示">
这是一个 ShokaX 提供的提示卡片组件。
</Note>
继续使用 **Markdown** 语法。

ShokaX 为 MDX 提供了丰富的扩展组件:

用于隐藏剧透或答案:

这里有个答案:!!点击查看!!

五种类型的提示卡片:

<Note type="info" title="提示">
这是一条信息提示。
</Note>
<Note type="warning" title="注意">
这是一条警告信息。
</Note>
  • 使用小写字母和连字符:my-first-post.md
  • 避免使用空格和特殊字符
  • 使用有意义的文件名(会影响 URL)
  • 分类(categories):表示文章的主要归属,通常 1-3 个
    categories: [技术, Web开发, 前端]
  • 标签(tags):关键词标记,可以有多个
    tags: [React, TypeScript, Hooks, 教程]

推荐将图片放在 src/assets/ 目录下统一管理:

src/
├── assets/
│ └── images/
│ ├── covers/ # 封面图
│ └── posts/ # 文章配图
└── posts/
└── my-post.md

在文章中引用:

![示例图片](../../assets/images/posts/example.jpg)

开发中的文章设置为草稿,避免误发布:

draft: true

使用 Hyacine CLI 快速切换发布状态:

Terminal window
hyc publish "文章标题" # 发布
hyc draft "文章标题" # 转为草稿
津 ICP 备2022001375 号
津公网安备 12011402001353 号