8fold / commonmark-abbreviations

PHP League 的 CommonMark 库扩展,用于启用缩写使用。

2.1.0 2021-12-23 02:40 UTC

This package is auto-updated.

Last update: 2024-09-16 20:45:32 UTC


README

这个库是 PHP League 的 CommonMark 解析器的一个扩展,从 PHP League 添加缩写语法和渲染到 Markdown。

警告:此文本使用该语法编写,以启用扩展测试;因此,如果没有使用此语法的渲染扩展,则可能无法按预期渲染。

安装

composer require 8fold/commonmark-abbreviations

使用

2.1.0 到 3.0.0

[.Eightfold](8fold)

变为

<abbr title="Eightfold">8fold</abbr>

您也可以使用 2.1.0 之前的语法。

2.0.0 及以前

[.8fold](Eightfold)

变为

<abbr title="Eightfold">8fold</abbr>

语法

受链接语法 - []() - 和 MultiMarkdown 扩展中的脚注语法 - [^] - 的启发。

该语法是方括号后跟一个点或句号:[.]()

就像脚注表示上标一样,缩写语法被发现表示比之前提出的选项更多的人数,将点放在开方括号内允许缩写与其它符号并存,而不是强制留空格。(参考 [CommonMark .Spec 论坛](https://talk.commonmark.org/t/abbreviations-and-acronyms/890) 的讨论,并提供了信息。)

鉴于传统上使用 abbr 标签通常与 title 属性结合使用,链接语法作为 a 标签结合内文本与 href,以及 img 标签使用两个属性,srcalt,使其有效且可访问。

替换所有内联 .vs.

我们决定采用内联、单实例,而不是页脚、替换所有。

实现此功能有两个主要选项。

第一个是将缩写和定义放在文档底部,并用 abbr 元素和标题渲染缩写的所有出现。这里的缺点是可能影响使用 [.AT](辅助技术) 如屏幕阅读器的读者;可能会每次都读出完整的缩写。

第二个选项是将缩写与周围文本内联。这里的缺点是每次作者使用缩写时都需要写更多。

这个库将 Markdown 视为一种编写潜在富文本文档的方式,这些文档可以被转换为 .Hypertext Markup Language 或其他东西。来自 [US](美国) Plain Language Guidelines 的建议是避免使用缩写和首字母缩略词,特别是

  • 尽量保持每页不超过两个。
  • 如果拼写会惹恼读者,请使用它们。
  • 如果您必须使用缩写或首字母缩略词,请在第一次使用时将其拼出来。例如:[CBT](基于计算机的培训)。

作为一名文档编辑和作者,我倾向于将“首次使用”定义为“每个部分的首次使用”,其中“部分”进一步定义为从标题开始;因此,如果撰写一份20页的文档,一个缩写在第一页上定义,要求读者在第20页回头查看第一页以唤醒对缩写定义的记忆,这显然是不好的[.UX](用户体验)实践。这也说明定义应该放在文档的末尾,类似于术语表。