Skip to content

Commit a13acec

Browse files
authored
Merge pull request #26 from perfectacle/feature-non-ascii-title-not-formatting
non ascii title not formatting
2 parents a079e6d + 94a7b90 commit a13acec

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

bin/summary.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var program = require("commander");
55
var color = require('bash-color');
66

77
var pkg = require("../package.json");
8-
var summary = require("../lib/summary");
8+
var summary = require("../lib/summary").summary;
99
var convert = require("../lib/convert");
1010
var html2md = require("../lib/html2md");
1111

lib/summary/index.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ function prettyCatalogName(fileName) {
169169
}
170170
}
171171
// Don`t format the files like `req.options.*` using dot, unchanged or Chinese string.
172-
if (_.size(fileName.split(".")) > 1 || _.includes(unchanged, fileName) || isChinese(fileName) || disableTitleFormatting) {
172+
if (_.size(fileName.split(".")) > 1 || _.includes(unchanged, fileName) || isChinese(fileName) ||
173+
disableTitleFormatting || isNonAscii(fileName)) {
173174
return fileName;
174175
}
175176
return _.startCase(fileName);
@@ -184,6 +185,12 @@ function isChinese(string) {
184185
}
185186
}
186187

188+
function isNonAscii(string) {
189+
var regExp = /^[ -~\t\n\r]+$/gi;
190+
191+
return !regExp.test(string);
192+
}
193+
187194
function isSkiped(key, skip) {
188195
var result = !_.isEmpty(skip) && _.isEqual(key.toLowerCase(), skip.toLowerCase()) || _.isEqual(key.toLowerCase(), 'readme');
189196
return result;
@@ -193,7 +200,10 @@ function isSkiped(key, skip) {
193200
function writeFile(fileName, data) {
194201
fs.writeFile(fileName, data, 'utf-8', function() {
195202
console.log(color.green("Finished, generated '"+fileName+"' successfully."));
196-
})
203+
});
197204
}
198205

199-
module.exports = Summary;
206+
module.exports = {
207+
summary: Summary,
208+
isNonAscii: isNonAscii
209+
};

test/index.test.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ var path = require('path');
22
var fs = require('fs-extra');
33
var should = require('should');
44

5-
var summary = require('../lib/summary');
5+
var summary = require('../lib/summary').summary;
6+
var isNonAscii = require('../lib/summary').isNonAscii;
67
var config = require('../lib/bookJson');
78

89
describe('summary/index.js', function() {
@@ -124,4 +125,9 @@ describe('summary/index.js', function() {
124125
});
125126
});
126127
});
128+
129+
it('test non-ascii', function() {
130+
should(isNonAscii('111Ab')).be.false();
131+
should(isNonAscii('111Abㅁ')).be.true();
132+
});
127133
});

0 commit comments

Comments
 (0)