Skip to content

Commit 58e5447

Browse files
committed
use Array.forEach() for replacements
1 parent 3f45e8a commit 58e5447

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

scripts/cleanup.js

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99

1010
var fs = require("fs");
11-
var doclistPath = '/Users/sperberx/dev/essential-javascript-links/';
12-
var doclistName = 'README';
11+
var doclistPath = '/Users/sperberx/dev/essential-javascript-links/misc/';
12+
var doclistName = 'README-short1';
1313
var doclistAddon = '-new';
1414
var doclistExtension = '.md';
1515

@@ -34,7 +34,7 @@ var aposVe = /'ve\b/g; // I've
3434
var oAposR = /O'R/g; // O'Reilly
3535
var spaceQuot = / "\b/g; // open quote (eg, precedes a 'word boundary')
3636
var quotSpace = /\b"/g; // close quote (eg, is preceded by a 'word boundary')
37-
var spaceDashSpace = / - /g;
37+
var spaceDashSpace = / - /g; // em dash
3838
// not yet defined: single quotes within double quotes
3939
// var spaceApos = / '/
4040
// var aposSpace = /' /
@@ -52,6 +52,21 @@ var spaceLdq = ' “';
5252
var rdqSpace = '”';
5353
var spaceEmDashSpace = " — ";
5454

55+
var replacements = [
56+
{ searchFor: /'d\b/g, replaceWith: "’d"}, // I'd
57+
{ searchFor: /'ll\b/g, replaceWith: "’ll"}, // you'll
58+
{ searchFor: /'m\b/g, replaceWith: "’m"}, // I'm
59+
{ searchFor: /'re\b/g, replaceWith: "’re"}, // you're
60+
{ searchFor: /'s\b/g, replaceWith: "’s"}, // it's
61+
{ searchFor: /'t\b/g, replaceWith: "’t"}, // don't
62+
{ searchFor: /'ve\b/g, replaceWith: "’ve"}, // I've
63+
{ searchFor: /O'R/g, replaceWith: "O’R"}, // O'Reilly
64+
{ searchFor: /",/g, replaceWith: ',”'}, // comma outside quote mark
65+
{ searchFor: /"\./g, replaceWith: '.”'}, // period outside quote mark (transpose only)
66+
{ searchFor: /"\b/g, replaceWith: '“'}, // open quote (eg, precedes a 'word boundary')
67+
{ searchFor: /\b"/g, replaceWith: '”'}, // close quote (eg, is preceded by a 'word boundary') needs to be set to follow punctuation as well
68+
{ searchFor: / - /g, replaceWith: " — "} // em dash
69+
];
5570

5671
/* store components of path */
5772
var pathAndFile = doclistPath + doclistName + doclistExtension; // /Users/sperberx/dev/essential-javascript-links/README.md
@@ -62,25 +77,22 @@ var aFile = fs.readFile(pathAndFile, 'utf8', function (err,data) {
6277
return console.log(err);
6378
}
6479

65-
// This seems really awkward to me, but it's working
80+
// for each object in the replacements array, go through the document and make the replacement
6681
function cleanUp(someFile) {
67-
var removes = [aposD, aposLl, aposM, aposRe, aposS, aposT, aposVe, oAposR, spaceQuot, quotSpace, spaceDashSpace];
68-
var replaceWiths = [rsqD, rsqLl, rsqM, rsqRe, rsqS, rsqT, rsqVe, OrsqR, spaceLdq, rdqSpace, spaceEmDashSpace];
69-
70-
for (var counter = 0; counter < removes.length; counter++) {
71-
someFile = someFile.replace(removes[counter], replaceWiths[counter]);
72-
}
82+
replacements.forEach(function(replacement) {
83+
someFile = someFile.replace(replacement.searchFor, replacement.replaceWith);
84+
})
7385
return someFile;
7486
}
7587
var result = cleanUp(data);
7688

77-
// console.log(result);
89+
console.log(result);
7890
console.log('got result back');
7991

80-
fs.writeFile(pathAndFileNew, result, function (err) {
81-
if (err) throw err;
82-
console.log('It\'s saved!');
83-
});
92+
// fs.writeFile(pathAndFileNew, result, function (err) {
93+
// if (err) throw err;
94+
// console.log('It\'s saved!');
95+
// });
8496

8597
});
8698

0 commit comments

Comments
 (0)