1122 字
6 分钟
MDX 集成与 M3E 原子组件

1. Markdown 与 MDX 能力对照表#

能力标准 Markdown(.mdShirone MDX(.mdx执行模式
排版与结构完整支持完整支持静态 SSR
代码高亮行号、框架、可折叠行号、框架、可折叠静态 SSR(Expressive Code)
图表与数学Mermaid、KaTeXMermaid、KaTeX客户端增强
提示块(Callout)Note、Tip、Important、Warning、CautionNote、Tip、Important、Warning、Caution静态 SSR
M3E 展示原子不可用直接集成(<Card><Skeleton>纯 SSR(零客户端 JS)
Svelte 5 响应式岛屿不可用按需水合(<Button><Switch>client:visible 惰性水合
反馈与加载原子不可用动画形变(<LoadingIndicator>client:visible 响应式
动态 JSX 表达式不可用原生求值({authorInfo.ui}编译期 / 客户端

2. 动态表达式与数据映射#

MDX 允许在文件顶部使用 export const 声明作用域内的常量,这些常量既可以内联求值,也可以在模板中映射渲染:

  • 核心框架:Astro 7
  • UI 引擎:Svelte 5
  • 设计令牌:M3E 设计令牌
  • 架构模式:岛屿架构

数组与集合可以动态渲染为网格布局:

1原子组件嵌入

在文章内容中直接导入并渲染 60 多个 M3E 原子与分子组件

2Svelte 5 岛屿

通过 client:visible 的选择性水合,确保零多余的 JavaScript 开销

3JSX 表达式

原生 JavaScript 变量、数据映射与条件渲染

4扩展管线

Mermaid、KaTeX、Admonitions 与 Expressive Code 的统一 SSOT 编译


3. M3E 展示与布局原语(仅 SSR)#

按照 Shirone 的组件架构(docs/atomic-structure.md),无状态的展示组件会输出干净、无障碍的语义化 HTML,且不携带任何客户端运行时负载。

3.1 卡片容器(Card.svelte#

填充式卡片
默认容器背景,无高度阴影,非常适合分组内容块。
升高卡片
1 级容器高度并叠加交互状态层,带来更强的视觉聚焦。
描边卡片
清晰的 1px 描边边界,在中性表面上实现干净的分隔。

3.2 强调条与徽章(AccentBarBadge#

系统公告

将 AccentBar 与 Badge 组合,构建醒目的视觉标注

M3E v0.192

3.3 骨架屏占位(Skeleton.svelte#

可用于预览布局骨架或模拟异步状态:


4. 反馈与加载指示器#

Shirone 提供完整还原 Material 3 Expressive 的动效与反馈原子:

4.1 形变加载指示器(LoadingIndicator.svelte#

基于 androidx.graphics.shapes 多边形形变实现,提供平滑的弹簧插值 7 形态动画:

不确定进度的形态切换
容器式圆形变体
确定进度(68%)

4.2 线性与不确定进度(ProgressIndicator.svelte#

管线编译80%
连续双线动画

5. Svelte 5 交互岛屿#

带有 client:visible 的组件会在进入视口时通过 IntersectionObserver 进行惰性水合:

5.1 按钮矩阵(Button.svelte#

5.2 筛选芯片与分段按钮(ChipsSegmentedButton#

M3E 筛选芯片
分段控件

5.3 开关、复选框与滑块(SwitchCheckboxSlider#

带状态图标的开关
选择复选框
色相滑块

5.4 输入控件(TextField.svelte#

填充文本框
描边文本框

6. Markdown 扩展兼容性#

Shirone 的 SSOT 统一插件管线与所有 Markdown 扩展保持完全兼容:

6.1 GitHub 仓库卡片#

saicacafuwari

6.2 Mermaid 架构图#

flowchart TD
    MDX[MDX Source Entry] --> Compiler["@astrojs/mdx Compiler"]
    Compiler --> Plugins["Remark / Rehype SSOT Pipeline"]
    Plugins --> Islands["Svelte 5 Interactive Islands"]
    Islands --> Swup["Swup Client Navigation Shell"]
    Swup --> Screen["M3E Expressive Article View"]

6.3 数学表达式(LaTeX / KaTeX)#

行内公式:质能等价 E=mc2E = mc^2 与高斯积分 ex2dx=π\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}

块级公式:

LM3E=i=1N(TokeniContrastRatio)+λMotionElegance\mathcal{L}_{M3E} = \sum_{i=1}^{N} \left( \text{Token}_i \cdot \text{ContrastRatio} \right) + \lambda \|\text{MotionElegance}\|

7. 总结#

MDX 的原生集成让技术作者既能构建内容丰富的交互式文档,又不牺牲 Shirone 极快的静态性能。所有组件均遵循 Material 3 Expressive 令牌设计系统,确保一致性、无障碍性与视觉和谐。

MDX 集成与 M3E 原子组件
https://shirone.mysqil.com/posts/mdx-showcase/
作者
Shirone
发布于
2026-08-20
许可协议
CC BY-NC-SA 4.0

分享文章

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

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取