653 字
3 分钟
页面浏览--访问次数--
扩展与属性

Shirone 支持在 Markdown 元素后附加属性字典,为生成的 HTML 标签赋予自定义 class、id 或数据属性。它让「标准语法」与「自定义样式钩子」之间不再需要手写 HTML。

行内元素属性#

在行内文本、链接或高亮语法后紧跟 {} 声明属性:

[外部链接](https://example.com){target="_blank" rel="noopener"}
==高亮文本=={.secondary}
`code phrase`{.custom-badge}

渲染效果:

  • 新标签页打开:外部链接{target=“_blank” rel=“noopener”}
  • 次级语义高亮:高亮文本
  • 带自定义 class 的行内代码:code phrase{.custom-badge}

三项属性最终都会落到生成的 HTML 标签上:链接多出 target 与 rel,<mark> 多出 secondary class,<code> 多出 custom-badge class。前者立即可见(点击不会跳出站内浏览),后两者只有在你为这些 class 写了样式时才产生视觉差异。

块级元素属性#

在块级容器、标题或段落后声明:

## 自定义锚点标题 {#custom-section-id}
::: tip[自定义样式容器]{class="custom-highlight-box"}
容器内部内容
:::

渲染效果:

自定义锚点标题 {#custom-section-id}#

上例中的标题被注入了 id="custom-section-id",因此可以直接被 #custom-section-id 锚点定位;容器则同时保留 tip 的默认外观并额外挂上 custom-highlight-box class。

常用属性简写#

  • .class-name:等价于 class="class-name"
  • #id-name:等价于 id="id-name"
  • key="value":直接设定 HTML 属性
这是一段强调说明。{.lead-text}
### 章节标题 {#section-anchor}
![配图](./cover.webp){loading="lazy" width="720"}

同一元素需要多个属性时可以连续书写,简写与键值对可混用:

==混合写法=={.secondary #highlight-1 title="鼠标悬停提示"}

渲染效果:混合写法{.secondary #highlight-1 title=“鼠标悬停提示”}

与容器语法的配合#

所有 ::: 容器都支持在标题后追加属性字典,这让同一类容器可以承载不同的样式角色:

::: warning[构建前请检查]{class="build-warning"}
未通过 `astro check` 的提交不会进入部署流水线。
:::

渲染效果:

小结#

书写位置适用对象典型用途
行内元素之后链接、==高亮==、行内代码注入 target、语义 class
标题之后# ~ ###### 标题固定锚点 id,方便站外引用
容器标题之后::: 各类容器挂载自定义样式类

属性字典是纯构建期语法,不会带来任何客户端运行时开销。

第 3 篇,共 30 篇本文属于系列

扩展与属性
https://www.ariels.xyz/posts/markdown-attributes/
作者
Ariel
发布于
2026-09-19
许可协议
CC BY-NC-ND 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...