Skip to content

Commit

Permalink
Правило для расстановки неразр. пробела перед числом в конце предложе…
Browse files Browse the repository at this point in the history
…ния #140
  • Loading branch information
hcodes committed Nov 21, 2015
1 parent 17c542c commit f3d0021
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/data/en/letter.js
@@ -1,5 +1,8 @@
Typograf.data({
'en/l': 'a-z',
'en/ld': 'a-z\\d',
'en/L': 'A-Z',
'en/lL': 'a-zA-Z'
'en/Ld': 'A-Z\\d',
'en/lL': 'a-zA-Z',
'en/lLd': 'a-zA-Z\\d'
});
1 change: 1 addition & 0 deletions src/data/en/rquote.js
@@ -0,0 +1 @@
Typograf.data('en/rquote', '”’');
5 changes: 4 additions & 1 deletion src/data/ru/letter.js
@@ -1,5 +1,8 @@
Typograf.data({
'ru/l': 'а-яёa-z',
'ru/ld': 'а-яёa-z\\d',
'ru/L': 'А-ЯЁA-Z',
'ru/lL': 'а-яёА-ЯЁa-zA-Z'
'ru/Ld': 'А-ЯЁA-Z\\d',
'ru/lL': 'а-яёА-ЯЁa-zA-Z',
'ru/lLd': 'а-яёА-ЯЁa-zA-Z\\d'
});
1 change: 1 addition & 0 deletions src/data/ru/rquote.js
@@ -0,0 +1 @@
Typograf.data('ru/rquote', '»“‘');
14 changes: 14 additions & 0 deletions src/rules/common/nbsp/beforeShortLastNumber.js
@@ -0,0 +1,14 @@
Typograf.rule({
name: 'common/nbsp/beforeShortLastNumber',
handler: function(text, settings) {
var re = new RegExp('([' + this._data('lL') +
']) (?=\\d{1,' + settings.lengthLastNumber +
'}[-+−%\'"' + this._data('rquote') + ']?([.!?…]( [' +
this._data('L') + ']|$)|$))', 'gm');

return text.replace(re, '$1\u00A0');
},
settings: {
lengthLastNumber: 2
}
});
4 changes: 4 additions & 0 deletions src/rules/common/nbsp/beforeShortLastNumber.json
@@ -0,0 +1,4 @@
{
"en": "Non-breaking space before number (maximum 2 digits) at end of sentence",
"ru": "Нераз. пробел перед числом (не более 2 цифр) в конце предложения"
}
42 changes: 42 additions & 0 deletions src/rules/common/nbsp/beforeShortLastNumber.spec.js
@@ -0,0 +1,42 @@
tests.push(['common/nbsp/beforeShortLastNumber', [
[
'Сегодня я получил 5. И очень рад.',
'Сегодня я получил\u00A05. И очень рад.',
'ru'
],
[
'Сегодня я получил 5\nИ дальше продолжаю стих',
'Сегодня я получил\u00A05\nИ дальше продолжаю стих',
'ru'
],
[
'Сегодня я получил 5+',
'Сегодня я получил\u00A05+',
'ru'
],
[
'или 5-',
'или\u00A05-',
'ru'
],
[
'Доллар вырос на 1%.\nДоллар вырос на 2%.',
'Доллар вырос на\u00A01%.\nДоллар вырос на\u00A02%.',
'ru'
],
[
'Сегодня диагональ равна 5"',
'Сегодня диагональ равна\u00A05"',
'ru'
],
[
'Пять секунд некоторые пишут в виде 5\'',
'Пять секунд некоторые пишут в виде\u00A05\'',
'ru'
],
[
'"Справка 09"',
'"Справка\u00A009"',
'ru'
]
]]);
2 changes: 1 addition & 1 deletion src/rules/common/nbsp/beforeShortLastWord.js
@@ -1,7 +1,7 @@
Typograf.rule({
name: 'common/nbsp/beforeShortLastWord',
handler: function(text, settings) {
var re = new RegExp('([' + this._data('l') + '\d]) ([' +
var re = new RegExp('([' + this._data('ld') + ']) ([' +
this._data('lL') + ']{1,' + settings.lengthLastWord +
'}[.!?…])( [' + this._data('L') + ']|$)', 'g');
return text.replace(re, '$1\u00A0$2$3');
Expand Down
2 changes: 1 addition & 1 deletion test/test.typograph.basic.js
Expand Up @@ -180,7 +180,7 @@ var ruTests = [
],
[
'"Справка 09"',
'«Справка 09»'
'«Справка\u00A009»'
],
[
'"новый тариф*"',
Expand Down

0 comments on commit f3d0021

Please sign in to comment.