-
Notifications
You must be signed in to change notification settings - Fork 93
/
Copy path.remarkrc.js
72 lines (66 loc) · 1.99 KB
/
.remarkrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import Typograf from 'typograf';
const privateLabel = '\uF000';
// Узкий неразрывный пробел для сокращений т.д. и т.п.
Typograf.addRules([
{
name: 'ru/nnbsp/abbr',
handler: function(text) {
function abbr($0, $1, $2, $3) {
// дд.мм.гггг
if ($2 === 'дд' && $3 === 'мм') {
return $0;
}
// Являются ли сокращения ссылкой
if (
['рф', 'ру', 'рус', 'орг', 'укр', 'бг', 'срб'].indexOf($3) >
-1
) {
return $0;
}
return $1 + $2 + '.' + '\u202F' + $3 + '.';
}
const re = new RegExp(
`(^|\\s|${privateLabel})([а-яё]{1,3})\\. ?([а-яё]{1,3})\\.`,
'g'
);
return (
text
.replace(re, abbr)
// Для тройных сокращений - а.е.м.
.replace(re, abbr)
);
},
},
]);
const typograf = new Typograf({
locale: [`ru`],
});
typograf.enableRule('ru/nnbsp/abbr');
typograf.disableRule('ru/nbsp/abbr');
export default {
settings: {
commonmark: true,
emphasis: '_',
strong: '*',
bullet: '-',
incrementListMarker: true,
listItemIndent: 'mixed',
fences: true,
},
plugins: [
'remark-frontmatter',
['remark-lint-emphasis-marker'],
['remark-lint-strong-marker'],
['remark-lint-unordered-list-marker-style', '-'],
['remark-lint-ordered-list-marker-value', 'ordered'],
['remark-lint-code-block-style', 'fenced'],
[
'@mavrin/remark-typograf',
{
typograf,
keywords: [':(', 'TL;DR'],
builtIn: false,
},
],
],
};