Goosequill Shortcodes 全量用法速查

作者:Goose 和 Quill
6 分钟阅读

目录

  1. 使用方式
  2. 1. Alert
  3. 2. ImageCode
  4. 3. Video
  5. 4. Youtube
  6. 5. Bilibili
  7. 6. Spotify
  8. 7. Steam
  9. 8. CRT
  10. 参数选择建议

目前可用的 shortcodes 如下:

使用方式

在 MDX 中,这些组件已经通过 ExtendMarkdown.astro 注入,所以你可以直接写:

<Alert type="note">Hello</Alert>

无需单独 import。

1. Alert

用于渲染 GitHub 风格的提示块。

参数

参数类型默认值说明
type'note' | 'tip' | 'important' | 'warning' | 'caution''note'提示块类型

示例

<Alert type="note">
这是一条提示信息。
</Alert>
<Alert type="warning">
这是一条警告信息。
</Alert>

说明

2. ImageCode

用于渲染图片,并附带一组可组合的样式类。

参数

参数类型默认值说明
urlstring原图地址,必填
url_minstringundefined压缩图地址;传入后页面展示压缩图,点击跳转原图
altstring''图片替代文本
fullbooleanfalse让图片占满内容宽度
full_bleedbooleanfalse让图片突破内容区,使用更宽展示
startbooleanfalse图片靠左浮动
endbooleanfalse图片靠右浮动
pixelsbooleanfalse使用像素风缩放效果
transparentbooleanfalse去掉背景式装饰,更适合透明图片
no_hoverbooleanfalse关闭悬停缩放效果
spoilerbooleanfalse启用剧透遮挡效果
solidbooleanfalsespoiler 配合使用,显示更强遮挡

示例

<ImageCode
url="/images/example.png"
alt="示例图片"
no_hover="true"
/>
<ImageCode
url="/images/original.png"
url_min="/images/preview.png"
alt="可点击查看原图"
full="true"
/>

说明

3. Video

用于渲染本地或远程视频,同样支持与图片一致的大部分样式类。

参数

参数类型默认值说明
urlstring视频地址,必填
altstring''作为 aria-label 使用的可访问性文本
fullbooleanfalse占满内容宽度
full_bleedbooleanfalse更宽展示
startbooleanfalse靠左浮动
endbooleanfalse靠右浮动
pixelsbooleanfalse像素风渲染样式
transparentbooleanfalse透明样式
spoilerbooleanfalse剧透遮挡
solidbooleanfalsespoiler 搭配时增强遮挡
autoplaybooleanfalse自动播放
controlsbooleanfalse显示控制条
loopbooleanfalse循环播放
mutedbooleanfalse静音
playsinlinebooleanfalse尽量以内联方式播放

示例

<Video
url="/videos/demo.webm"
alt="演示视频"
controls="true"
/>
<Video
url="/videos/hero.webm"
full_bleed="true"
autoplay="true"
muted="true"
loop="true"
playsinline="true"
/>

说明

4. Youtube

用于嵌入 YouTube 视频,使用 youtube-nocookie.com 域名。

参数

参数类型默认值说明
idstringYouTube 视频 ID,必填
autoplaybooleanfalse是否自动播放
startnumberundefined起播秒数

示例

<Youtube id="0Da8ZhKcNKQ" />
<Youtube id="0Da8ZhKcNKQ" autoplay="true" start={30} />

说明

5. Bilibili

用于嵌入 Bilibili 播放器。

参数

参数类型默认值说明
bvidstringundefinedBV 号
aidstringundefinedAV 号
cidstringundefined资源 ID / 弹幕 ID
pagenumber1分 P 页码
autoplaybooleanfalse是否自动播放

示例

<Bilibili bvid="BV1yt4y1Q7SS" />
<Bilibili
bvid="BV1yt4y1Q7SS"
page={2}
autoplay="true"
/>

说明

6. Spotify

用于嵌入 Spotify 的专辑、歌单、单曲、播客等内容。

参数

参数类型默认值说明
type'track' | 'album' | 'artist' | 'playlist' | 'episode' | 'show'undefined通用类型写法
idstringundefinedtype 搭配使用的内容 ID
trackstringundefined单曲 ID 简写
albumstringundefined专辑 ID 简写
artiststringundefined艺人 ID 简写
playliststringundefined歌单 ID 简写
episodestringundefined单集播客 ID 简写
showstringundefined播客节目 ID 简写
heightstring | number自动推断自定义 iframe 高度

示例

<Spotify album="5gDJVilnZpPt8zwBC467UH" />
<Spotify type="track" id="11dFghVXANMlKmJXsNCbNl" />
<Spotify playlist="37i9dQZF1DXcBWIGoYBM5M" height={480} />

说明

7. Steam

用于展示 Steam 商店卡片。

参数

参数类型默认值说明
appidstring | numberSteam App ID,必填
variant'horizontal' | 'vertical''horizontal'卡片样式

示例

<Steam appid="1127400" />
<Steam appid="730" variant="vertical" />

说明

8. CRT

用于输出带 CRT 风格的代码块容器。

参数

参数类型默认值说明
codestring要显示的代码文本,必填
no_scanlinesbooleanfalse是否关闭扫描线效果

示例

<CRT code={`
Hello, CRT
`} />
<CRT
no_scanlines="true"
code={`
No scanlines here
`}
/>

说明

参数选择建议

媒体类

嵌入类

提示与展示类