Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion lint-staged.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
module.exports = {
'*.md': ['textlint --rulesdir textlint/rules'],
linters: {
'*.md': ['textlint --rulesdir textlint/rules'],
},
ignore: ['textlint/fixtures/*'],
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@
"prettier": "yarn format:source && yarn format:examples",
"prettier:diff": "yarn nit:source && yarn nit:examples",
"reset": "rimraf ./.cache",
"test:textlint": "mocha textlint/tests/**/*.spec.js"
"test:textlint": "mocha textlint/tests/**/*.spec.js",
"test:textlint-cli": "textlint --rulesdir textlint/rules textlint/fixtures/*.md --format stylish"
},
"devDependencies": {
"@babel/preset-flow": "^7.0.0",
Expand Down
10 changes: 10 additions & 0 deletions textlint/fixtures/terminology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Terminology Fixtures

> Markdown for verifying textlint CLI result

- 메서드
- 서드파티와 써드파티와 써드 파티
- 예제
- 응용프로그램과 어플리케이션
- 함수형 컴포넌트
- 라이프사이클
28 changes: 25 additions & 3 deletions textlint/rules/terminology.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,35 @@ const g = args => args.map(arg => new RegExp(arg, 'g'));
*/
const terms = [
{
// http://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=61&qna_seq=11976
value: '메서드',
expressions: [/메소드/, /메쏘드/],
message: 'method는 메서드가 올바른 표현입니다',
},
{
value: '서드파티',
expressions: [/써드파티/],
message: 'third party는 서드파티가 올바른 표현입니다',
// https://opendict.korean.go.kr/dictionary/view?sense_no=1251028
value: '서드 파티',
expressions: [/서드파티/, /써드파티/, /써드 파티/],
message: 'third party는 서드 파티가 올바른 표현입니다',
},
{
value: '예시',
expressions: [/예제/],
message: 'example은 예시로 표현합니다.',
},
{
value: '애플리케이션',
expressions: [/응용프로그램/, /어플리케이션/],
message: 'application은 애플리케이션으로 표현합니다.',
},
{
value: '함수 컴포넌트',
expressions: [/함수형 컴포넌트/],
message: 'function(al) component는 함수 컴포넌트로 표현합니다.',
},
{
value: '생명주기',
expressions: [/라이프사이클/],
message: 'life cycle은 생명주기로 표현합니다.',
},
].map(term => ({...term, expressions: g(term.expressions)}));
27 changes: 25 additions & 2 deletions textlint/tests/terminology.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,37 @@ const rule = require('../rules/terminology');
const tester = new TextLintTester();

tester.run('terminology', rule, {
valid: ['메서드', '서드파티'],
valid: [
'메서드',
'서드 파티',
'예시',
'애플리케이션',
'함수 컴포넌트',
'생명주기',
],
invalid: [
{
text: '한 문장에 연속하는 용어 메소드와 메소드와 메쏘드를 테스트합니다.',
errors: [{index: 14}, {index: 19}, {index: 24}],
},
{
text: '써드파티',
text: '서드파티와 써드파티와 써드 파티',
errors: [{index: 0}, {index: 6}, {index: 12}],
},
{
text: '예제',
errors: [{index: 0}],
},
{
text: '응용프로그램과 어플리케이션',
errors: [{index: 0}, {index: 8}],
},
{
text: '함수형 컴포넌트',
errors: [{index: 0}],
},
{
text: '라이프사이클',
errors: [{index: 0}],
},
],
Expand Down