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}
{loading="lazy" width="720"}同一元素需要多个属性时可以连续书写,简写与键值对可混用:
==混合写法=={.secondary #highlight-1 title="鼠标悬停提示"}渲染效果:混合写法{.secondary #highlight-1 title=“鼠标悬停提示”}
与容器语法的配合
所有 ::: 容器都支持在标题后追加属性字典,这让同一类容器可以承载不同的样式角色:
::: warning[构建前请检查]{class="build-warning"}未通过 `astro check` 的提交不会进入部署流水线。:::渲染效果:
小结
| 书写位置 | 适用对象 | 典型用途 |
|---|---|---|
| 行内元素之后 | 链接、==高亮==、行内代码 | 注入 target、语义 class |
| 标题之后 | # ~ ###### 标题 | 固定锚点 id,方便站外引用 |
| 容器标题之后 | ::: 各类容器 | 挂载自定义样式类 |
属性字典是纯构建期语法,不会带来任何客户端运行时开销。
Markdown 语法
已完结分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
最后更新于 ,距今已过 27 天
部分内容可能已过时
评论