8fold / commonmark-abbreviations
PHP League 的 CommonMark 库扩展,用于启用缩写使用。
Requires
- php: ^7.2|^8.0
- league/commonmark: ^2.0.2
Requires (Dev)
- phpstan/phpstan: ^1.2.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
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
标签使用两个属性,src
和 alt
,使其有效且可访问。
替换所有内联 .vs.
我们决定采用内联、单实例,而不是页脚、替换所有。
实现此功能有两个主要选项。
第一个是将缩写和定义放在文档底部,并用 abbr
元素和标题渲染缩写的所有出现。这里的缺点是可能影响使用 [.AT](辅助技术) 如屏幕阅读器的读者;可能会每次都读出完整的缩写。
第二个选项是将缩写与周围文本内联。这里的缺点是每次作者使用缩写时都需要写更多。
这个库将 Markdown 视为一种编写潜在富文本文档的方式,这些文档可以被转换为 .Hypertext Markup Language 或其他东西。来自 [US](美国) Plain Language Guidelines 的建议是避免使用缩写和首字母缩略词,特别是
- 尽量保持每页不超过两个。
- 如果拼写会惹恼读者,请使用它们。
- 如果您必须使用缩写或首字母缩略词,请在第一次使用时将其拼出来。例如:[CBT](基于计算机的培训)。
作为一名文档编辑和作者,我倾向于将“首次使用”定义为“每个部分的首次使用”,其中“部分”进一步定义为从标题开始;因此,如果撰写一份20页的文档,一个缩写在第一页上定义,要求读者在第20页回头查看第一页以唤醒对缩写定义的记忆,这显然是不好的[.UX](用户体验)实践。这也说明定义应该放在文档的末尾,类似于术语表。