MikeStecker / craft3-readability
Requires
- craftcms/cms: ^3.0.0
- davechild/textstatistics: ^1.0
README
Readability 插件可以帮助您识别网站内容中,尤其是可读性方面的问题。
它允许您使用常见的评分系统来衡量文本的可读性,包括
- Flesch Kincaid 朗读度
- Flesch Kincaid 学级水平
- Gunning 雾度评分
- Coleman Liau 指数
- SMOG 指数
- 自动可读性指数
- Dale-Chall 可读性评分
- Spache 可读性评分
您可以在此处了解更多关于这些评分系统的信息这里。
此插件基于Text Statistics 库。
要求
此插件需要 Craft 3.0.0 或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并进入您的 Craft 项目目录
cd /path/to/project
-
然后告诉 Composer 加载插件
composer require mikestecker/craft-readability
-
在控制面板中,转到设置 → 插件,然后点击 Readability 的“安装”按钮。
可读性概述
这个插件起源于我希望有一个简单的文本阅读时间。当我发现了Text Statistics 库时,我决定在这里封装几乎所有东西。
配置可读性
无需配置。
使用可读性
衡量可读性
Flesch Kincaid 朗读度
这是最古老的评分系统之一,常用于学术和政府,并集成到大多数文字处理软件中。Flesch-Kincaid 朗读度评分是一个包含每100个单词块中平均音节数和平均句长度的数学公式的结果。结果以1-100的刻度测量。
Flesch-Kincaid 朗读度:{{ someContent | readingEase }}
Flesch Kincaid 学级水平
与Flesch-Kincaid阅读易度得分类似,这是一个测量音节和句子长度的数学公式。然而,结果以学术年级水平表示,从0到12。负结果评分为0,任何超过12年级的评分都列示为12。Flesch-Kincaid年级水平得分是在阅读易度得分之后开发的,以便于家长、图书管理员和其他人做出关于儿童阅读内容的决策。
Flesch-Kincaid年级水平:{{ someContent | schoolLevel }}
戈林福指数
戈林福指数将其数学公式中的“复杂”词语(三个或更多音节的词语)作为可读性的考虑因素。它还排除了专有名词、术语和复合词。结果?1-无限年级水平的评分。
戈林福指数:{{ someContent | gunningFogScore }}
科尔曼-刘易斯指数
与大多数其他可读性测试不同,科尔曼-刘易斯指数依靠每个词的字符数而不是音节数来计算。它返回1-12的美国年级水平得分。
科尔曼-刘易斯指数:{{ someContent | colemanLiauIndex }}
SMOG指数
SMOG是否代表“简单词汇混乱度量”尚有争议,但1969年开发的这个指数仍然是常见的可读性度量。取30句话(每部分10句,分别来自文本的开始、中间和结尾),然后计算每组的句子中每个有3个或更多音节的词,然后计算这个数字的平方根,并将其四舍五入到最接近的10,然后加3。就是这样!你得到了能够阅读该文本的美国年级水平。(这是这些可读性公式中较简单的一种。)
SMOG指数:{{ someContent | smogIndex }}
自动可读性指数
自动可读性指数(ARI)的数学公式有两个变量:每个词的字符数(与音节不同,类似于科尔曼-刘易斯指数)和每句的词数。自1967年以来一直存在。其得分与美国的年级水平相对应。如果你得到一个带有小数的分数结果,将其四舍五入到下一个整数。
自动可读性指数:{{ someContent | automatedReadabilityIndex }}
戴尔-查尔可读性得分
戴尔-查尔公式是一种基于词汇的可读性公式,将其自己的词汇列表与正在评估的材料中的词汇相匹配,以确定适当的年级水平。此外,戴尔-查尔公式还考虑了总词数和句数,得出平均句长。
戴尔-查尔可读性得分:{{ someContent | daleChallReadabilityScore }}
斯帕奇可读性得分
该公式根据句子长度和生词数量计算文本样本的年级水平。斯帕奇公式将“生词”视为三年级及以下学生不认识的词语。斯帕奇公式最适合计算三年级及以下水平的文本难度。
斯帕奇可读性得分:{{ someContent | spacheReadabilityScore }}
测量阅读所需时间
阅读时间的测量基于Flesch-Kincaid阅读易度。根据这篇维基百科文章,阅读速度包括记忆阅读(每分钟少于100个单词[wpm]);学习阅读(100-200 wpm);理解阅读(200-400 wpm);以及浏览(400-700 wpm)。理解阅读是大多数人日常阅读的精髓。浏览是对大量文本进行低水平理解(低于50%)的表面处理。
使用humanReadingTime
过滤器估计每分钟的单词数时,会使用Flesch-Kincaid阅读易度分数来确定内容阅读的难易程度。如果认为阅读较难,则计算的WPM会降低,反之亦然,如果内容容易阅读,则WPM会增加。
阅读需要多长时间?{{ someContent | humanReadingTime }}
输出:1分钟,26秒
如果您只想看到秒数,请使用过滤器readingTime
如果您只想得到一个简单的平均阅读时间,我创建了一个新函数,基于每分钟250个单词的平均值进行简单计算。
阅读需要多长时间?{{ someContent | humanAverageReadingTime }}
输出:2分钟,17秒
如果您只想看到秒数,请使用过滤器averageReadingTime
更多文本恶作剧!
计算音节
{{ someContent | syllableCount }}
字符、字母、句子、单词计数
{{ someContent | characterCount }}
{{ someContent | letterCount }}
{{ someContent | wordCount }}
{{ someContent | sentenceCount }}
额外技巧!
感谢Andrew Welch(@nystudio107)指出,您可以使用这些twig过滤器中的任何一个,将多个输出字段包裹在twig的特殊filter
部分。
{% filter humanAverageReadingTime %}
{{ entry.intro }}
{{ entry.body }}
{% for block in entry.matrixField.all() %}
{{ block.myfield }}
{{ block.myfieldTwo }}
...
{% endfor %}
...
{% endfilter %}
可读性路线图
要做的事情和一些潜在功能的想法
- 发布它
- 清理代码
- 从其他人那里获取反馈并做出任何必要的更改/改进
- 使一些函数更容易访问,可能添加某种变量来包裹整个条目?
- 可能添加一个在Craft条目编辑器内部的评分小部件来预先评分内容?
欢迎提交拉取请求来添加新功能!
由Mike Stecker提供