hanlint 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/ruleDocs.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"doubleNegative": "하지 않으면 안 된다, 하지 않을 수 없다 같은 이중 부정.\n\n왜: 부정을 두 번 겹쳐 긍정을 만들면 독자가 한 번 더 뒤집어 읽는다. 일본어 직역에서 온 꼴이다.\n어디서: urimal.org 김민지 2020 번역 투, 나무위키 이중 부정.\n고치기: 긍정으로 쓴다. 노력하지 않으면 안 된다 는 노력해야 한다, 잊지 않을 수 없다 는 잊는다.\n 하다 동사는 기계가 fix 로 낸다.\n안 잡는 것: 뜻을 일부러 약하게 하는 이중 부정 (나쁘지 않다). 그것은 다른 구문이다.",
|
|
10
10
|
"doublePassive": "되어지다, 보여지다, 잊혀지다 처럼 피동에 어지다 를 또 붙인 이중 피동.\n\n왜: 피동이 두 번 겹치면 누가 하는지 한 번 더 흐려진다. 독자는 주어를 찾아 되돌아간다.\n어디서: 국립국어원 어문 규범. im-not-ai A-8 (오경순 2010, 김은일 2015, 서보현 2018). 피동 어간 사전은\n data/passiveStems.txt. Kiwi 태그열 실측은 PRD 부록 A.\n고치기: 하나만 남긴다. 되어진다 는 된다, 보여진다 는 보인다, 잊혀진 은 잊힌.\n안 잡는 것: 만들어진다 같은 단순 피동. 어간이 피동사가 아니면 지적하지 않는다.",
|
|
11
11
|
"duplicateBlock": "앞선 코드나 출력 블록과 거의 같은 블록.\n\n왜: 서른 줄 가운데 한 줄만 다른 블록을 두 번 읽으면 독자는 다른 한 줄을 찾느라 표를 훑는다. 다른 줄만 보이거나\n 앞 블록을 가리키는 것이 낫다.\n어디서: 실측. 블로그 004 에서 두 엔진의 출력 서른 줄 가운데 다른 것은 한 줄이었고 사람 평가자가 집었다.\n 임계는 config.duplicateBlockRatio, 최소 줄 수는 넷.\n고치기: 다른 줄만 남기고 나머지는 앞 블록을 가리킨다. 정말 둘 다 필요하면 무엇이 다른지 산문에서 먼저 말한다.\n안 잡는 것: 넉 줄 미만 블록. 종류가 다른 블록 (코드와 출력). 임계 아래. notice 로만 낸다.",
|
|
12
|
-
"ellipsis": "말줄임표.\n\n왜: 말끝을 흐리면 독자가 결론을 받아 가지 못한다. 설명글의 독자는 답을 찾으러 왔다.\n어디서: 글쓰기 스킬의 사실과 목소리.\n고치기: 문장을 끝까지 쓴다. 모르면 모른다고 쓴다.\n안 잡는 것: 코드 블록 안의 점 셋. 괄호 안의 점 셋 (인라인 코드의 생략 표기). 산문만 본다.",
|
|
12
|
+
"ellipsis": "말줄임표.\n\n왜: 말끝을 흐리면 독자가 결론을 받아 가지 못한다. 설명글의 독자는 답을 찾으러 왔다.\n어디서: 글쓰기 스킬의 사실과 목소리.\n고치기: 문장을 끝까지 쓴다. 모르면 모른다고 쓴다.\n안 잡는 것: 코드 블록 안의 점 셋. 괄호 안의 점 셋 (인라인 코드의 생략 표기). 영숫자에 붙은 점 셋\n(`v0.0.1...HEAD` 같은 범위 표기. CHANGELOG 의 compare URL 이 실측 사례다). 산문만 본다.",
|
|
13
13
|
"emojiBullet": "이모지로 시작하는 목록 항목.\n\n왜: 불릿마다 이모지를 달면 장식이 정보를 가리고 AI 가 쓴 홍보 글처럼 읽힌다.\n어디서: Wikipedia Signs of AI writing 4.7 (Emoji as formatting), Bloomberg 2026-01 (LinkedIn AI 게시물).\n고치기: 이모지를 지우고 항목의 첫 낱말이 내용을 말하게 한다.\n안 잡는 것: 본문 문장 안의 이모지. 목록 항목의 첫 자리만 본다.",
|
|
14
14
|
"endingRepeat": "같은 종결어미로 끝나는 문장이 한 절 안에 endingRun 개 이상 이어지는 자리.\n\n왜: 습니다 가 네 번 이어지면 리듬이 죽고 AI 가 쓴 글처럼 읽힌다. 짧은 문장과 긴 문장, 평서와 질문을\n 섞으라는 규칙의 기계 판이다.\n어디서: AI 문체 신호 조사 (im-not-ai E-2 동일 종결어미 4문장 이상, gist 패턴35), 경희대 글쓰기 교육의\n 것이다 반복. 임계는 config.endingRun.\n고치기: 하나를 질문으로 바꾸거나, 두 문장을 인과로 잇거나, 독자가 할 행동을 동사로 끝낸다.\n안 잡는 것: 명령형과 의문형의 연속. 종결어미를 못 정한 문장 (없음) 은 연속을 끊는다. 글쓰기 규칙의\n 위반이 아니라 리듬 신호라 notice 로 낸다. 참고 문서는 다 로 끝나는 것이 정상이다.",
|
|
15
15
|
"euiChain": "한 문장에 관형격 조사 의 가 셋 이상이거나, 의 로 끝나는 어절 둘이 붙어 있다 (회사의 팀의 결정).\n\n왜: 명사를 의 로 쌓으면 무엇이 무엇의 목적어인지 표시되지 않아 독자가 조사를 머릿속에서 끼워 넣는다.\n어디서: 글쓰기 스킬의 설명을 풀어 쓰기 (의 가 이어지면 문장으로 편다). 쿠버네티스 한국어 현지화 가이드\n (일본어 の 직역).\n고치기: 동사로 편다. 회사의 팀의 결정 은 회사에서 팀이 정한 것.\n안 잡는 것: 낱말 안의 의 (의미, 의사) 와 의 로 끝나는 낱말 (정의, 회의. 목록은 data/euiNouns.txt). 떨어져 있는\n 의 둘 (글쓰기 규칙의 정본은 사용자 저장소의 스킬이다) 은 자연스러운 한국어라 잡지 않는다. 실측: 문서에서\n 둘 기준이 오탐 4건을 냈다. surface 분석기는 의 뒤에 공백이 올 때만 세고 kiwi 는 JKG 태그를 센다.",
|
package/package.json
CHANGED
|
@@ -3,7 +3,8 @@ import { SENTENCE, finding } from "../finding.js";
|
|
|
3
3
|
|
|
4
4
|
export const name = "ellipsis";
|
|
5
5
|
// 괄호 안의 점 셋 (`OVER (...)`) 은 인라인 코드의 생략 표기라 뺀다.
|
|
6
|
-
|
|
6
|
+
// 영숫자에 붙은 점 셋 (`v0.0.1...HEAD`, compare URL) 은 범위 표기라 말줄임표가 아니다.
|
|
7
|
+
const ELLIPSIS = /(?<![(\[A-Za-z0-9])(…|\.{3,})(?![)\]A-Za-z0-9])/;
|
|
7
8
|
|
|
8
9
|
/** @param {import("../../fingerprint/build.js").DocumentPrint} doc */
|
|
9
10
|
export function run(doc) {
|