- Vale 설치
- 코드 편집기에서 Vale 구성
- 결과 유형
- 새로운 Vale 규칙을 추가하는 시기
- 수행할 테스트를 제한하세요
- Vale 테스트 비활성화
- 푸시 시 Vale 경고 표시
- Vale가 식별하는 문제 해결
- Vale 결과를 파일로 내보내기
Vale 문서 테스트
Vale는 영어 문법, 스타일 및 단어 사용에 대한 린터입니다. Vale의 구성은 프로젝트의 루트 디렉터리에있는 .vale.ini
파일에 저장됩니다.
Vale는 다양한 유형의 확인을 확장하는 사용자 정의 테스트를 지원하며 이러한 테스트는 프로젝트의 문서 디렉터리 중 .linting/vale/styles/gitlab
디렉터리에 저장됩니다.
일부 예시로는 다음과 같습니다:
이 구성은 오류 수준 규칙을 강제로 실행하는 빌드 파이프라인에서도 사용됩니다.
Vale를 사용할 수 있습니다:
Vale 설치
vale
를 다음 중 하나를 사용하여 설치합니다:
-
asdf
를 사용하는 경우,asdf-vale
플러그인을 사용합니다..tool-versions
파일이있는 GitLab 프로젝트의 체크아웃에서(예시) 다음을 실행합니다:asdf plugin add vale && asdf install vale
-
패키지 관리자를 사용하는 경우:
- macOS의 경우
brew
를 사용하여 실행:brew install vale
. - Linux의 경우 배포별 패키지 관리자를 사용하거나 릴리스된 바이너리를 사용합니다.
- macOS의 경우
코드 편집기에서 Vale 구성
코드 편집기에서 린터를 사용하는 것이 명령줄에서 명령을 실행하는 것보다 편리합니다.
코드 편집기에서 Vale를 구성하려면 다음 중 하나를 적절하게 설치합니다:
- Visual Studio Code
ChrisChinchilla.vale-vscode
익스텐션. 플러그인을 일부 경고만 표시하도록 구성할 수 있습니다. -
Sublime Text의
SublimeLinter-vale
패키지. Vale 제안이 오류가 나타나는 빨간색 대신 파란색으로 나타나게하려면(오류가 나타나는 방식), SublimeLinter 구성에vale
구성을 추가합니다:"vale": { "styles": [{ "mark_style": "outline", "scope": "region.bluish", "types": ["suggestion"] }] }
- Sublime Text용 LSP 패키지
LSP-vale-ls
. - Vim의 ALE 플러그인.
- JetBrains IDE - 플러그인이 없지만 이 문제 코멘트에 외부 도구를 구성하는 팁이 있습니다.
-
Emacs의 Flycheck 익스텐션. Vale와 markdownlint에서 오류 린팅을 제공하도록 커스텀 Vale 린터를 활성화하면 다음과 같이 간단한 구성이됩니다:
(flycheck-define-checker vale "A checker for prose" :command ("vale" "--output" "line" "--no-wrap" source) :standard-input nil :error-patterns ((error line-start (file-name) ":" line ":" column ":" (id (one-or-more (not (any ":")))) ":" (message) line-end)) :modes (markdown-mode org-mode text-mode) :next-checkers ((t . markdown-markdownlint-cli)) ) (add-to-list 'flycheck-checkers 'vale)
이 설정에서는 정의된
vale
린터의 “다음” 린터로markdownlint
린터를 설정합니다. 이 사용자 정의 Vale 린터를 활성화하면 Vale와 markdownlint에서 오류 린팅을 활성화합니다.
결과 유형
Vale는 세 가지 유형의 결과를 반환합니다:
- 오류 - 브랜딩 가이드라인, 상표 가이드라인 및 문서 사이트의 콘텐츠가 잘못 렌더링되는 모든 사항에 대해
- 경고 - 일반 스타일 가이드 규칙, 원칙 및 모범 사례에 대해
- 제안 - 기술 문서 스타일 선호도에 대해, 문서를 재구성하거나 예외 디렉터리을 업데이트해야 할 수도 있는 항목에 대해
결과 유형에는 다음과 같은 속성이 있습니다:
결과 유형 | CI/CD 작업 결과에 표시 | MR 차이에 표시 | CI/CD 작업 실패 여부 | Vale 규칙 링크 |
---|---|---|---|---|
오류
| 예 | 예 | 예 | 오류 수준 Vale 규칙 |
경고
| 아니요 | 예 | 아니요 | 경고 수준 Vale 규칙 |
제안
| 아니요 | 아니요 | 아니요 | 제안 수준 Vale 규칙 |
새로운 Vale 규칙을 추가하는 시기
모든 스타일 가이드 규칙에 대해 Vale 규칙을 추가하는 것이 유혹적일 수 있습니다. 그러나 Vale 규칙을 만들고 시행하는 데 필요한 노력과 생성되는 잡음을 고려해야 합니다.
일반적으로 다음 지침을 따르세요:
-
오류 수준의 Vale 규칙을 추가하는 경우, 규칙을 추가하기 전에 문서에서 해당 문제의 기존 발생을 해결해야 합니다.
한 번의 Merge Request에서 수정해야 할 문제가 너무 많은 경우, 해당 규칙을 ‘경고’ 수준으로 추가하세요. 그런 다음, 후속 Merge Request에서 기존 문제를 해결하세요. 문제가 해결되면 규칙을 ‘오류’로 변경하세요.
-
경고 수준이나 제안 수준 규칙을 추가하는 경우 다음 사항을 고려해 보세요:
-
Vale 출력에 추가 경고의 수가 많은지 여부. 추가 경고의 수가 많은 경우 규칙이 너무 폭넓을 수 있습니다.
-
저자가 상황에 따라 무시할 가능성이 얼마나 되는지. 규칙이 너무 주관적이면 충분히 시행할 수 없으며 불필요한 추가 경고를 만듭니다.
-
GitLab UI의 Merge Request 차이에 표시하는 것이 적합한지 여부. 규칙을 Merge Request에서 직접 구현하기 어려운 경우 (예: 페이지 리팩터링이 필요한 경우) 로컬 편집기에서만 표시되도록 제안 수준으로 설정하세요.
-
수행할 테스트를 제한하세요
파일 보기 중 Visual Studio Code에 일부 Vale 경고만 표시하도록 설정할 수 있습니다:
- 기본 설정 > 확장 > Vale로 이동하세요.
- Vale CLI: 최소 경고 수준을 선택하여 파일에 표시하려는 최소 경고 수준을 설정하세요.
명령줄에서 Vale를 실행할 때 특정 Vale 경고만 표시하려면 --minAlertLevel
플래그를 사용하세요. 이 플래그는 error
, warning
, 또는 suggestion
을 허용하며 필요한 경우 --config
와 함께 사용하여 프로젝트의 구성 파일을 가리킬 수 있습니다:
vale --config .vale.ini --minAlertLevel error doc/**/*.md
suggestion
수준의 경고를 포함하여 모든 경고를 표시하려면 플래그를 생략하세요.
한 번에 한 규칙만 테스트하기
명령줄에서 Vale를 실행할 때 한 번에 한 규칙만 테스트하려면 해당 명령을 수정하여 OutdatedVersions
를 규칙의 이름으로 바꿔주시면 됩니다:
vale --no-wrap --filter='.Name=="gitlab.OutdatedVersions"' doc/**/*.md
Vale 테스트 비활성화
문서의 일부에 대한 특정 Vale 린팅 규칙 또는 모든 Vale 릴팅 규칙을 비활성화할 수 있습니다:
-
특정 규칙을 비활성화하려면 텍스트 앞에
<!-- vale gitlab.rulename = NO -->
태그를 추가하고,텍스트 뒤에
<!-- vale gitlab.rulename = YES -->
태그를 추가하여rulename
을 GitLab styles 디렉터리의 테스트 파일 이름으로 바꿔주시기 바랍니다. -
모든 Vale 린팅 규칙을 비활성화하려면 텍스트 앞에
<!-- vale off -->
태그를 추가하고,텍스트 뒤에
<!-- vale on -->
태그를 추가하십시오.
가능하다면 문제가 되는 규칙과 라인만 제외하십시오.
자세한 정보는 Vale 문서를 참조하세요.
푸시 시 Vale 경고 표시
기본적으로 lefthook
은 브랜치로 변경 사항을 푸시할 때 Vale 오류만 표시합니다. 기본 브랜치에는 Vale 오류가 없으므로 여기에 나열된 오류는 브랜치에 커밋으로 인해 도입된 것입니다.
브랜치로 푸시할 때 Vale 경고도 보려면 로컬 환경 변수를 설정하세요: VALE_WARNINGS=true
.
푸시 중에 Vale 경고를 표시하여 다음과 같이 문서 스위트를 개선하세요:
- 커밋으로 도입할 수 있는 경고를 감지합니다.
- 기술 부채를 줄이기 위해 해결할 수 있는 페이지에 이미 존재하는 경고를 식별합니다.
이러한 경고는 다음과 같습니다:
- 푸시 동작을 중지시키지 않습니다.
- 파이프라인이 실패하지 않습니다.
- 커밋으로 인해 도입된 경고뿐만 아니라 모든 파일의 경고가 포함됩니다.
푸시 중에 Vale 경고를 표시하려면:
- 자동으로 셸 구성에
VALE_WARNINGS=true
를 추가하세요. -
매뉴얼으로
lefthook
호출 앞에VALE_WARNINGS=true
를 앞에 붙여 사용하세요. 다음과 같이 사용할 수 있습니다:VALE_WARNINGS=true bundle exec lefthook run pre-push
또한 Vale 경고를 편집기에 표시하도록 편집기를 구성할 수 있습니다.
Vale가 식별하는 문제 해결
철자 테스트
Vale이 유효한 단어를 철자 오류로 표시할 때 다음 가이드를 따라 수정할 수 있습니다:
표시된 단어 | 가이드라인 |
---|---|
전문 용어 | 문장을 다시 쓰세요. |
올바르게 대문자로 시작하는 제품이나 서비스 이름 | Vale 철자 예외 디렉터리에 단어를 추가합니다. |
사람 이름 | 이름이 필요없다면 제거하거나 Vale 예외 코드를 인라인으로 추가하세요. |
명령, 변수, 코드 또는 유사한 것 | 역따옴표나 코드 블록에 넣으세요. 예: git clone 명령을 `CI_COMMIT_BRANCH` 변수와 함께 사용할 수 있습니다. -> git clone 명령은 CI_COMMIT_BRANCH 변수와 함께 사용할 수 있습니다.``
|
GitLab의 UI 문구 | UI와 일치하는지 확인한 후: 일치하지 않으면 업데이트하세요. UI가 맞지만 잘못된 것 같으면 UI를 수정해야 할지 여부를 확인하기 위해 이슈를 만드세요. UI와 일치하고 올바르다면 Vale 철자 예외 디렉터리에 추가하세요. |
제삼자 제품의 UI 문구 | 문장을 다시 쓰거나 Vale 예외 코드를 인라인으로 추가하세요. |
대문자 (약어) 테스트
Uppercase.yml
테스트는 모든 대문자로 된 단어를 잘못 사용하는지 확인합니다. 예를 들어 이것은 중요하지 않습니다.
같은 사용을 피하세요.
대문자로 된 단어를 사용해야 하는 경우 다음 가이드를 따르세요:
표시된 단어 | 가이드라인 |
---|---|
약어 (평균 방문자가 알아낼 가능성이 있는 것) |
Uppercase.yml 의 단어 및 약어 디렉터리에 약어를 추가하세요.
|
약어 (평균 방문자가 알아낼 가능성이 낮은 것) | 처음으로 약어를 사용할 때 전체로 쓴 다음 괄호 안에 약어를 사용하세요. 나중에는 약어만 사용하세요. 예: 이 기능은 파일 전송 프로토콜 (FTP)를 사용합니다. FTP는...
|
올바르게 대문자로 시작하는 제품이나 서비스 이름 |
Uppercase.yml 의 단어 및 약어 디렉터리에 이름을 추가하세요.
|
명령, 변수, 코드 또는 유사한 것 | 역따옴표나 코드 블록에 넣으세요. 예: 변수 값으로 `FALSE`를 사용하세요.
|
제삼자 제품의 UI 문구 | 문장을 다시 쓰거나 Vale 예외 코드를 인라인으로 추가하세요. |
가독성 점수
ReadingLevel.yml
에서는
문서의 가독성을 결정하기 위해
Flesch-Kincaid 등급 테스트를 구현했습니다.
일반적인 지침으로, 점수가 낮을수록 문서의 가독성이 높아집니다.
예를 들어, 변경 전에 12
점을 얻었고, 변경 후에 9
점을 얻었다면 이는 반복적인 가독성 향상을 나타냅니다. 이 점수는 정확한 과학적 기술은 아니지만 페이지의 일반적인 복잡성 수준을 나타내는 데 도움이 되도록 의도되었습니다.
가독성 점수는 문장당 단어 수와 단어당 음절 수를 기반으로 계산됩니다. 자세한 정보는 Vale 문서를 참조하세요.
Vale 결과를 파일로 내보내기
모든 (또는 필터된) Vale 결과를 파일로 내보내려면 이 명령을 수정하세요:
# 제안, 경고 및 오류 유형의 결과 반환
find . -name '*.md' | sort | xargs vale --minAlertLevel suggestion --output line > ../../results.txt
# 경고 및 오류만 반환
find . -name '*.md' | sort | xargs vale --minAlertLevel warning --output line > ../../results.txt
# 오류만 반환
find . -name '*.md' | sort | xargs vale --minAlertLevel error --output line > ../../results.txt
이러한 결과는
create_issues.js
스크립트와 함께 사용하여 해커톤과 관련된 문서 작성 작업을 위한 이슈를 생성하는 데 사용할 수 있습니다.