Skip to content

Commit 3d44c6b

Browse files
committed
Refactor code-style
1 parent 0af9123 commit 3d44c6b

File tree

5 files changed

+249
-219
lines changed

5 files changed

+249
-219
lines changed

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
coverage/
2+
retext-readability.js
3+
retext-readability.min.js

index.js

Lines changed: 105 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,63 @@
1-
'use strict';
2-
3-
var visit = require('unist-util-visit');
4-
var toString = require('nlcst-to-string');
5-
var syllable = require('syllable');
6-
var daleChall = require('dale-chall');
7-
var spache = require('spache');
8-
var daleChallFormula = require('dale-chall-formula');
9-
var ari = require('automated-readability');
10-
var colemanLiau = require('coleman-liau');
11-
var flesch = require('flesch');
12-
var smog = require('smog-formula');
13-
var gunningFog = require('gunning-fog');
14-
var spacheFormula = require('spache-formula');
15-
16-
module.exports = readability;
17-
18-
var SOURCE = 'retext-readability';
19-
var DEFAULT_TARGET_AGE = 16;
20-
var WORDYNESS_THRESHOLD = 5;
21-
var DEFAULT_THRESHOLD = 4 / 7;
22-
23-
var own = {}.hasOwnProperty;
24-
var floor = Math.floor;
25-
var round = Math.round;
26-
var ceil = Math.ceil;
27-
var sqrt = Math.sqrt;
1+
'use strict'
2+
3+
var visit = require('unist-util-visit')
4+
var toString = require('nlcst-to-string')
5+
var syllable = require('syllable')
6+
var daleChall = require('dale-chall')
7+
var spache = require('spache')
8+
var daleChallFormula = require('dale-chall-formula')
9+
var ari = require('automated-readability')
10+
var colemanLiau = require('coleman-liau')
11+
var flesch = require('flesch')
12+
var smog = require('smog-formula')
13+
var gunningFog = require('gunning-fog')
14+
var spacheFormula = require('spache-formula')
15+
16+
module.exports = readability
17+
18+
var source = 'retext-readability'
19+
var defaultTargetAge = 16
20+
var defaultWordynessThreshold = 5
21+
var defaultThreshold = 4 / 7
22+
23+
var own = {}.hasOwnProperty
24+
var floor = Math.floor
25+
var round = Math.round
26+
var ceil = Math.ceil
27+
var sqrt = Math.sqrt
2828

2929
function readability(options) {
30-
var settings = options || {};
31-
var targetAge = settings.age || DEFAULT_TARGET_AGE;
32-
var threshold = settings.threshold || DEFAULT_THRESHOLD;
33-
var minWords = settings.minWords;
30+
var settings = options || {}
31+
var targetAge = settings.age || defaultTargetAge
32+
var threshold = settings.threshold || defaultThreshold
33+
var minWords = settings.minWords
3434

3535
if (minWords === null || minWords === undefined) {
36-
minWords = WORDYNESS_THRESHOLD;
36+
minWords = defaultWordynessThreshold
3737
}
3838

39-
return transformer;
39+
return transformer
4040

4141
function transformer(tree, file) {
42-
visit(tree, 'SentenceNode', gather);
42+
visit(tree, 'SentenceNode', gather)
4343

4444
function gather(sentence) {
45-
var familiarWords = {};
46-
var easyWord = {};
47-
var complexPolysillabicWord = 0;
48-
var familiarWordCount = 0;
49-
var polysillabicWord = 0;
50-
var totalSyllables = 0;
51-
var easyWordCount = 0;
52-
var wordCount = 0;
53-
var letters = 0;
54-
var counts;
55-
var caseless;
56-
57-
visit(sentence, 'WordNode', visitor);
45+
var familiarWords = {}
46+
var easyWord = {}
47+
var complexPolysillabicWord = 0
48+
var familiarWordCount = 0
49+
var polysillabicWord = 0
50+
var totalSyllables = 0
51+
var easyWordCount = 0
52+
var wordCount = 0
53+
var letters = 0
54+
var counts
55+
var caseless
56+
57+
visit(sentence, 'WordNode', visitor)
5858

5959
if (wordCount < minWords) {
60-
return;
60+
return
6161
}
6262

6363
counts = {
@@ -70,100 +70,105 @@ function readability(options) {
7070
word: wordCount,
7171
character: letters,
7272
letter: letters
73-
};
73+
}
7474

7575
report(file, sentence, threshold, targetAge, [
76-
gradeToAge(daleChallFormula.gradeLevel(
77-
daleChallFormula(counts)
78-
)[1]),
76+
gradeToAge(daleChallFormula.gradeLevel(daleChallFormula(counts))[1]),
7977
gradeToAge(ari(counts)),
8078
gradeToAge(colemanLiau(counts)),
8179
fleschToAge(flesch(counts)),
8280
smogToAge(smog(counts)),
8381
gradeToAge(gunningFog(counts)),
8482
gradeToAge(spacheFormula(counts))
85-
]);
83+
])
8684

8785
function visitor(node) {
88-
var value = toString(node);
89-
var syllables = syllable(value);
90-
91-
wordCount++;
92-
totalSyllables += syllables;
93-
letters += value.length;
94-
caseless = value.toLowerCase();
95-
96-
/* Count complex words for gunning-fog based on
97-
* whether they have three or more syllables
98-
* and whether they aren’t proper nouns. The
99-
* last is checked a little simple, so this
100-
* index might be over-eager. */
86+
var value = toString(node)
87+
var syllables = syllable(value)
88+
89+
wordCount++
90+
totalSyllables += syllables
91+
letters += value.length
92+
caseless = value.toLowerCase()
93+
94+
// Count complex words for gunning-fog based on whether they have three
95+
// or more syllables and whether they aren’t proper nouns. The last is
96+
// checked a little simple, so this index might be over-eager.
10197
if (syllables >= 3) {
102-
polysillabicWord++;
98+
polysillabicWord++
10399

104100
if (value.charCodeAt(0) === caseless.charCodeAt(0)) {
105-
complexPolysillabicWord++;
101+
complexPolysillabicWord++
106102
}
107103
}
108104

109-
/* Find unique unfamiliar words for spache. */
110-
if (spache.indexOf(caseless) !== -1 && !own.call(familiarWords, caseless)) {
111-
familiarWords[caseless] = true;
112-
familiarWordCount++;
105+
// Find unique unfamiliar words for spache.
106+
if (
107+
spache.indexOf(caseless) !== -1 &&
108+
!own.call(familiarWords, caseless)
109+
) {
110+
familiarWords[caseless] = true
111+
familiarWordCount++
113112
}
114113

115-
/* Find unique difficult words for dale-chall. */
116-
if (daleChall.indexOf(caseless) !== -1 && !own.call(easyWord, caseless)) {
117-
easyWord[caseless] = true;
118-
easyWordCount++;
114+
// Find unique difficult words for dale-chall.
115+
if (
116+
daleChall.indexOf(caseless) !== -1 &&
117+
!own.call(easyWord, caseless)
118+
) {
119+
easyWord[caseless] = true
120+
easyWordCount++
119121
}
120122
}
121123
}
122124
}
123125
}
124126

125-
/* Calculate the typical starting age (on the higher-end) when
126-
* someone joins `grade` grade, in the US.
127-
* See https://en.wikipedia.org/wiki/Educational_stage#United_States. */
127+
// Calculate the typical starting age (on the higher-end) when someone joins
128+
// `grade` grade, in the US. See:
129+
// https://en.wikipedia.org/wiki/Educational_stage#United_States
128130
function gradeToAge(grade) {
129-
return round(grade + 5);
131+
return round(grade + 5)
130132
}
131133

132-
/* Calculate the age relating to a Flesch result. */
134+
// Calculate the age relating to a Flesch result.
133135
function fleschToAge(value) {
134-
return 20 - floor(value / 10);
136+
return 20 - floor(value / 10)
135137
}
136138

137-
/* Calculate the age relating to a SMOG result.
138-
* See http://www.readabilityformulas.com/smog-readability-formula.php. */
139+
// Calculate the age relating to a SMOG result. See:
140+
// http://www.readabilityformulas.com/smog-readability-formula.php
139141
function smogToAge(value) {
140-
return ceil(sqrt(value) + 2.5);
142+
return ceil(sqrt(value) + 2.5)
141143
}
142144

143145
/* eslint-disable max-params */
144146

145-
/* Report the `results` if they’re reliably too hard for
146-
* the `target` age. */
147+
// Report the `results` if they’re reliably too hard for the `target` age.
147148
function report(file, node, threshold, target, results) {
148-
var length = results.length;
149-
var index = -1;
150-
var failCount = 0;
151-
var confidence;
152-
var message;
149+
var length = results.length
150+
var index = -1
151+
var failCount = 0
152+
var confidence
153+
var message
153154

154155
while (++index < length) {
155156
if (results[index] > target) {
156-
failCount++;
157+
failCount++
157158
}
158159
}
159160

160161
if (failCount / length >= threshold) {
161-
confidence = failCount + '/' + length;
162-
163-
message = file.warn('Hard to read sentence (confidence: ' + confidence + ')', node, SOURCE);
164-
message.confidence = confidence;
165-
message.source = SOURCE;
166-
message.actual = toString(node);
167-
message.expected = null;
162+
confidence = failCount + '/' + length
163+
164+
message = file.warn(
165+
'Hard to read sentence (confidence: ' + confidence + ')',
166+
node,
167+
source
168+
)
169+
message.confidence = confidence
170+
message.source = source
171+
message.actual = toString(node)
172+
message.expected = null
168173
}
169174
}

package.json

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,30 +55,38 @@
5555
"browserify": "^16.0.0",
5656
"esmangle": "^1.0.1",
5757
"nyc": "^13.0.0",
58+
"prettier": "^1.14.3",
5859
"remark-cli": "^6.0.0",
5960
"remark-preset-wooorm": "^4.0.0",
6061
"retext": "^5.0.0",
6162
"tape": "^4.0.0",
6263
"xo": "^0.23.0"
6364
},
6465
"scripts": {
65-
"build-md": "remark . -qfo",
66+
"format": "remark . -qfo && prettier --write \"**/*.js\" && xo --fix",
6667
"build-bundle": "browserify index.js --bare -s retextReadability > retext-readability.js",
6768
"build-mangle": "esmangle retext-readability.js > retext-readability.min.js",
68-
"build": "npm run build-md && npm run build-bundle && npm run build-mangle",
69-
"lint": "xo",
70-
"test-api": "node test.js",
69+
"build": "npm run build-bundle && npm run build-mangle",
70+
"test-api": "node test",
7171
"test-coverage": "nyc --reporter lcov tape test.js",
72-
"test": "npm run build && npm run lint && npm run test-coverage"
72+
"test": "npm run format && npm run build && npm run test-coverage"
7373
},
7474
"nyc": {
7575
"check-coverage": true,
7676
"lines": 100,
7777
"functions": 100,
7878
"branches": 100
7979
},
80+
"prettier": {
81+
"tabWidth": 2,
82+
"useTabs": false,
83+
"singleQuote": true,
84+
"bracketSpacing": false,
85+
"semi": false,
86+
"trailingComma": "none"
87+
},
8088
"xo": {
81-
"space": true,
89+
"prettier": true,
8290
"esnext": false,
8391
"ignores": [
8492
"retext-readability.js"

readme.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,20 @@ discovered, with a surface temperature of 200,000 kelvin
3131
And our script, `example.js`, looks like this:
3232

3333
```javascript
34-
var vfile = require('to-vfile');
35-
var report = require('vfile-reporter');
36-
var unified = require('unified');
37-
var english = require('retext-english');
38-
var stringify = require('retext-stringify');
39-
var readability = require('retext-readability');
34+
var vfile = require('to-vfile')
35+
var report = require('vfile-reporter')
36+
var unified = require('unified')
37+
var english = require('retext-english')
38+
var stringify = require('retext-stringify')
39+
var readability = require('retext-readability')
4040

4141
unified()
4242
.use(english)
4343
.use(readability)
4444
.use(stringify)
45-
.process(vfile.readSync('example.txt'), function (err, file) {
46-
console.error(report(err || file));
47-
});
45+
.process(vfile.readSync('example.txt'), function(err, file) {
46+
console.error(report(err || file))
47+
})
4848
```
4949

5050
Now, running `node example` yields:

0 commit comments

Comments
 (0)