标签的扩展指南
" />
本教程将指导您如何在commonmark项目中利用`n0sz/commonmark-picture-extension`扩展,轻松实现对html5 `
在CommonMark中实现响应式图片:使用标签
在现代Web开发中,为了优化用户体验和页面加载性能,我们经常需要使用响应式图片。HTML5的
然而,标准的CommonMark(或Markdown)语法本身并不直接支持复杂的HTML标签如
本教程将介绍如何使用n0sz/commonmark-picture-extension扩展,让您的CommonMark解析器能够理解并渲染出正确的
1. 扩展的安装
首先,您需要通过Composer将n0sz/commonmark-picture-extension扩展添加到您的项目中。打开您的终端或命令行工具,并在项目根目录执行以下命令:
composer require n0sz/commonmark-picture-extension
这将会下载并安装所需的扩展包及其依赖项。
2. CommonMark环境配置
安装完成后,您需要将此扩展注册到您的CommonMark解析器环境中。这通常在初始化League\CommonMark\Environment\Environment实例时完成。
以下是一个配置CommonMark环境以支持PictureExtension的示例代码:
addExtension(new CommonMarkCoreExtension()); // 3. 添加PictureExtension,使其支持自定义的图片语法 $environment->addExtension(new PictureExtension()); // 4. 创建Markdown转换器实例 $converter = new MarkdownConverter($environment); // 示例Markdown内容,将在下一节详细介绍其语法 $markdown = <<convert($markdown); echo $html; ?>
在上述代码中:
- 我们首先实例化Environment。
- addExtension(new CommonMarkCoreExtension()) 是必需的,因为它包含了标准的Markdown解析规则。
- addExtension(new PictureExtension()) 则是关键步骤,它引入了对
标签的特殊处理逻辑。 - 最后,通过MarkdownConverter将带有自定义图片语法的Markdown文本转换为HTML。
3. 使用自定义Markdown语法
n0sz/commonmark-picture-extension引入了一种简洁明了的自定义Markdown语法来表示
系统功能介绍 1 包含企业网站所必备的功能:企业信息、产品管理、人才招聘、新闻资讯、企业图片、以及视频下载等模块2 由于是从CMS系统的基础上开发而成,因此相对于一些其他的企业网站管理系统,本系统具备更强的可扩展能力,可以胜任从小型工作室到大中型企业网上门户等各种不同规模网站的需求。3 后台管理与模板完全分离,并具备非常灵活的标签技术,可以实现无限制个性化的界面定制4 操作简单,利用已经制作好的模
语法结构:
[[[
+ [source_url] {media:"(min-width:XXXpx)"}
+ [source_url] {type:"image/webp"}
- [img_url] {alt:"Description"}
]]]-
[[[ 和 ]]]: 标记整个
元素的开始和结束。 -
+ [source_url] {attributes}: 用于生成
标签。 - [source_url]:指定图片源的URL(对应srcset属性)。
- {attributes}:一个可选的JSON格式对象,用于指定
标签的属性,如media(媒体查询条件)或type(MIME类型)。
-
- [img_url] {attributes}: 用于生成最终的
标签。
- [img_url]:指定回退图片的URL(对应src属性)。
- {attributes}:一个可选的JSON格式对象,用于指定
标签的属性,如alt(替代文本)。
示例:WebP与JPG回退
假设您希望在屏幕宽度大于650px时使用flower-large.webp,在屏幕宽度大于465px时使用flower-medium.webp,否则使用flower.jpg作为回退。
Markdown 输入:
[[[
+ /images/flower-large.webp {media:"(min-width:650px)"}
+ /images/flower-medium.webp {media:"(min-width:465px)"}
- /images/flower.jpg {alt:"一朵美丽的鲜花"}
]]]生成的 HTML 输出:
@@##@@
这个示例清晰地展示了如何通过简洁的Markdown语法,生成复杂的响应式图片HTML结构。浏览器将根据媒体查询条件和支持的图片格式,自动选择最合适的图片进行加载。
注意事项与总结
-
属性支持: 扩展支持在{}中传入media、type等标准
标签属性,以及alt等
标签属性。确保属性名与HTML标准一致。 -
顺序重要:
标签的顺序很重要,浏览器会按照它们在DOM中的顺序进行匹配。通常,更具体的媒体查询或更优先的格式(如WebP)应放在前面。 -
回退图片:
标签是必不可少的,它作为所有
标签都无法匹配时的最终回退方案,确保图片总能显示。 - 贡献与更新: 该扩展仍在积极维护中,您可以通过访问其GitHub仓库 (https://www.php.cn/link/a5103ba2adf265252ccbbc8396725bd8) 获取最新信息、报告问题或贡献代码。
通过n0sz/commonmark-picture-extension,您可以在CommonMark项目中轻松地利用HTML5的









