写作组件测试

本页把引擎支持的每一种写作语法各写一次,用于肉眼验收渲染效果。带 语法 标注的说明不会被渲染成品,是给你对照看的。

行内语法

按 Ctrl + C 复制,当前版本 v1.0,其中 编译期 是关键。

语法是成对的定界符:[[按键]]、{{徽章}}、==高亮==。行内语法可出现在表格、列表、标题等任何位置,但它不作用于代码块内部。

提示块

围栏语言名即等级,四级共用同一套外壳;语言名之后可跟可选标题,省略时回落各等级的默认文案。

提示

标题可省略,省略时用各等级的默认文案。

信息

省略标题时回落到:提示 / 信息 / 警告 / 错误。

警告

标题也可以自己写,会覆盖默认文案。

错误

外壳结构由编译期直出,样式在 content.css。

块内正文走正常 markdown 渲染,加粗、行内代码、列表都照常生效。

目录树

语法是 Markdown 无序列表,缩进即层级,名称尾部带 / 表示目录,| 后接可选注释。

  • docs内容目录
    • 配置.md
    • 实现原理.md
    • 写作组件测试.md
  • src
    • build编译期
      • plugins
    • theme运行期
  • vdoc.config.ts站点配置
  • home.md首页正文

终端

语法是围栏代码块,以 $ 开头的行按命令渲染,其余按输出渲染。

terminal
$ npx vdoc build
[vite-ssg] Rendering Pages... (4)
[vdoc] 构建完成:/path/to/project/dist

折叠块

语法是围栏代码块,第一行作标题,其余为折叠内容;内容整体转义、保留换行,不渲染 Markdown。

折叠块里的 **Markdown 不会被渲染**,原样展示。
换行会保留,靠的是 CSS 的 pre-wrap。

流程

语法是每行「节点 | 可选说明」,节点之间自动画箭头。

读取配置
vdoc.config.ts
扫描 docs/
目录结构即侧栏
编译文章
直出静态 HTML

时间线

语法是每行「时间 | 标题 | 描述(可省略)」,竖线由 CSS 绘制。

2025-01
立项
确定技术选型
2025-06
原型
打通编译期直出
2026-10
发布
整站生成器可用

步骤

语法是每行「标题 | 描述(可省略)」,序号由编译期自动生成,不写进内容里。

1
安装
npm i -D @hello/vdoc
2
配置
填写站点信息
3
构建
npx vdoc build

流程图与图表

mermaid 在编译期只拦截并产出容器,图表由运行时按需渲染。

mermaid
graph LR
  A[Markdown] --> B[编译期插件]
  B --> C[静态 HTML]
  C --> D[浏览器交互]

echarts 块内必须是合法 JSON,编译期只校验并产出容器,非法时降级为纯文本展示源码。

echarts
{
  "xAxis": { "type": "category", "data": ["编译期", "运行期"] },
  "yAxis": { "type": "value" },
  "series": [{ "type": "bar", "data": [100, 5] }]
}

卡片网格

语法是每行「标题 | 描述 | 链接(可省略)」,带链接时整卡可点击。

链接卡

语法是每行「标题 | 描述 | 网址」,仅 http(s) 会被渲染成可点卡片,其他协议降级为静态卡。

Vue渐进式框架Vite下一代构建工具
站内链接会降级只放行 http(s)

图集

语法是每行「图片地址 | 说明(可省略)」,复用正文图片的灯箱。

数据卡与进度条

24
写作组件
100%
编译期渲染
0 KB
组件运行时代码
编译期渲染
85%
运行时交互
40%
超范围的数值会被收敛
100%

属性列表

语法是每行「属性名 | 值」。

docsDirdocs
maxDepth6
ogImage/og-cover.png

选项卡

语法是用 @tab 标签名 分节,纯 CSS 切换,页内容整体转义、不渲染 Markdown。

站内切换文章时,正文先空白、闪一下才出现。
正文来自按文章拆分的独立 chunk,到达前无内容可渲染。
在视口内的站内链接上提前预取对应 chunk。

代码组

语法同样是 @tab 标签名 分节,区别在于标签名会被当作语言名送去 shiki 编译期高亮。

npm i -D @hello/vdoc
pnpm add -D @hello/vdoc
export default defineConfig({ title: 'hello' })

定义列表

SSG
静态站点生成器,构建期把内容直出为 HTML 文件
编译期
构建时执行,产物是静态文件
运行期
浏览器里执行的少量交互逻辑

问答

答案默认折叠,点击问题展开。

Q为什么把渲染放在编译期
A首屏直出 HTML,SEO 友好,且客户端不需要模板渲染
Q写作组件会不会增大包体积
A不会,它们只产出 HTML,样式集中在 content.css

对比栏

用 @tab 栏标题 分节,栏内每行一个条目。

编译期渲染
  • 首屏直出 HTML
  • SEO 友好
  • 改内容需要重新构建
运行时渲染
  • 首屏依赖 JS
  • SEO 需额外处理
  • 改内容无需构建

引用卡

语法是第一行为内容,之后「作者 | 出处」一行可省略。

任何可以用编译期解决的问题,都不应该留给运行时。
设计原则《hello 手册》
没有署名行也可以,只写内容即可。

标准 Markdown

除上述组件外,基础语法照常可用。

  • 无序列表项一
  • 无序列表项二
  1. 有序列表项一
  2. 有序列表项二

普通引用块仍然可用,不参与任何组件管线。

行内 code、加粗、斜体、链接 都是标准行为。

js
// 普通代码块走 shiki 编译期高亮,不进组件管线
const greeting = 'hello'