- Vale 설치
- 편집기에서 Vale 구성
- 결과 유형
- 새로운 Vale 규칙을 추가할 때
- 새로운 Vale 규칙을 어디에 추가할지
- 실행되는 테스트 제한
- Vale 테스트 비활성화
- 푸시 시 Vale 경고 표시
- Vale에서 식별한 문제 해결
- Vale 결과를 파일로 내보내기
- 로컬에서 사용자 정의 규칙 활성화
- 관련 주제
Vale 문서 테스트
Vale는 영어 문법, 스타일, 단어 사용을 검사하는 린터입니다.
Vale의 설정은 프로젝트의 루트 디렉토리에 위치한 .vale.ini
파일에 저장됩니다.
예를 들어, gitlab
프로젝트의 .vale.ini
파일이 있습니다.
Vale은 문서의 흐름에서 여러 유형의 검사를 확장하는 사용자 정의 규칙을 만드는 것을 지원하며,
이 규칙들은 프로젝트의 문서 디렉토리에 저장됩니다.
예를 들어, gitlab
프로젝트의 doc/.vale
디렉토리가 있습니다.
이 설정은 오류 수준 규칙이 적용되는 빌드 파이프라인에서도 사용됩니다.
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 IDEs - 플러그인이 존재하지 않지만,
이 문제 댓글에는 외부 도구를 구성하는 팁이 포함되어 있습니다. -
Emacs Flycheck 확장. 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)
이 설정에서
markdownlint
검사기는 정의된vale
검사기에서 “다음” 검사기로 설정됩니다.
이 사용자 정의 Vale 검사를 활성화하면 Vale와 markdownlint 모두에서 오류 린팅을 제공합니다.
결과 유형
Vale는 세 가지 유형의 결과를 반환합니다:
-
Error - 브랜드 가이드라인, 상표 가이드라인 및 문서 사이트의 콘텐츠가 잘못 렌더링되는 모든 경우에 해당합니다.
-
Warning - 일반 스타일 가이드 규칙, 원칙 및 모범 사례에 해당합니다.
-
Suggestion - 문서 리팩토링이나 예외 목록 업데이트가 필요할 수 있는 기술 문서 스타일 선호에 해당합니다.
결과 유형은 다음과 같은 속성을 가집니다:
결과 유형 | CI/CD 작업 출력에 표시 | MR 차이에 표시 | CI/CD 작업 실패 유발 | Vale 규칙 링크 |
---|---|---|---|---|
error |
예 | 예 | 예 | Error-level Vale rules |
warning |
아니오 | 예 | 아니오 | Warning-level Vale rules |
suggestion |
아니오 | 아니오 | 아니오 | Suggestion-level Vale rules |
새로운 Vale 규칙을 추가할 때
모든 스타일 가이드 규칙에 Vale 규칙을 추가하고 싶을 유혹이 있을 수 있습니다. 그러나 Vale 규칙을 만들고 시행하는 데 드는 노력과 그로 인한 혼란을 염두에 두어야 합니다.
일반적으로 다음 가이드라인을 따릅니다:
-
error-level Vale rule을 추가하는 경우, 규칙을 추가하기 전에 문서에서 기존 문제를 수정해야 합니다.
한 개의 병합 요청에서 수정하기에 너무 많은 문제가 있는 경우, 규칙을
warning
수준으로 추가합니다. 그런 다음 후속 병합 요청에서 기존 문제를 수정합니다. 문제가 수정되면 규칙을error
로 승격시킵니다. -
warning-level 또는 suggestion-level 규칙을 추가하는 경우 고려해야 할 사항:
-
Vale 출력에서 생성되는 경고 또는 제안이 얼마나 더 많은지. 추가 경고의 수가 상당하다면 규칙이 너무 광범위할 수 있습니다.
-
저자가 그것을 무시할 가능성이 얼마나 되는지. 맥락에서 받아들여지기 때문에 규칙이 너무 주관적이라면 적절하게 시행할 수 없고 불필요한 추가 경고가 발생할 수 있습니다.
-
GitLab UI에서 병합 요청 diff에 표시되는 것이 적절한지. 병합 요청에서 직접 구현하기 어려운 규칙(예: 페이지 리팩토링이 필요함)이라면 suggestion-level로 설정하여 로컬 편집기에서만 표시되도록 합니다.
-
새로운 Vale 규칙을 어디에 추가할지
새로운 Vale 규칙은 두 가지 범주 중 하나에 속합니다(Vale에서 styles로 알려짐). 이러한 규칙은 프로젝트의 .vale.ini
파일에 지정된 특정 스타일 디렉토리에 별도로 저장됩니다. 예를 들어, gitlab
프로젝트의 .vale.ini
.
새로운 규칙을 추가할 위치는 제안하는 규칙의 유형에 따라 다릅니다:
-
gitlab_base
: 모든 GitLab 문서에 적용되는 기본 규칙입니다. -
gitlab_docs
: https://docs.gitlab.com에 게시된 문서에만 적용되는 규칙입니다.
대부분의 새로운 규칙은 gitlab_base
에서 비롯됩니다.
실행되는 테스트 제한
파일을 볼 때 Visual Studio Code가 Vale 경고의 하위 집합만 표시하도록 설정할 수 있습니다:
- Preferences > Settings > Extensions > Vale로 이동합니다.
- Vale CLI: Min Alert Level에서 파일에 표시할 최소 경고 수준을 선택합니다.
명령줄에서 Vale를 실행할 때 Vale 경고의 하위 집합만 표시하려면,
--minAlertLevel
플래그를 사용하여 error
, warning
, 또는 suggestion
을 수용합니다. 필요에 따라 --config
를 조합하여 프로젝트의 구성 파일을 지정할 수 있습니다:
vale --config .vale.ini --minAlertLevel error doc/**/*.md
플래그를 생략하면 suggestion
레벨 경고를 포함한 모든 경고가 표시됩니다.
한 번에 하나의 규칙 테스트
명령줄에서 Vale를 실행할 때 단일 규칙만 테스트하려면, 이 명령을 수정하여 OutdatedVersions
를 규칙 이름으로 대체합니다:
vale --no-wrap --filter='.Name=="gitlab_base.OutdatedVersions"' doc/**/*.md
Vale 테스트 비활성화
문서의 특정 부분에 대해 특정 Vale 린팅 규칙 또는 모든 Vale 린팅 규칙을 비활성화할 수 있습니다:
- 특정 규칙을 비활성화하려면 텍스트 앞에
<!-- vale gitlab_<type>.rulename = NO -->
태그를 추가하고, 텍스트 뒤에<!-- vale gitlab_<type>.rulename = YES -->
태그를 추가합니다.rulename
은 GitLab 스타일 중 하나의 디렉토리에 있는 테스트의 파일 이름으로 대체합니다. - 모든 Vale 린팅 규칙을 비활성화하려면 텍스트 앞에
<!-- vale off -->
태그를 추가하고, 텍스트 뒤에<!-- vale on -->
태그를 추가합니다.
가능한 경우 문제를 일으키는 규칙과 줄만 제외하세요.
무시 문장은 raw
범위의 Vale 규칙에 대해 작동하지 않습니다. 자세한 내용은 이 이슈를 참조하세요.
Vale 범위 규칙에 대한 더 많은 정보를 보려면 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 수정을 요청하는 이슈를 만듭니다. UI와 일치하고 올바른 것으로 보이면 Vale 맞춤법 예외 목록에 추가합니다. |
타사 제품의 UI 텍스트 | 피하기 위해 문장을 다시 작성하거나 Vale 예외 코드를 인라인으로 추가하세요. |
대문자(약어) 테스트
Uppercase.yml
테스트는 모든 대문자 단어의 잘못된 사용을 확인합니다. 예를 들어, This is NOT important
와 같은 사용은 피하세요.
단어가 모든 대문자로 있어야 하는 경우, 다음 지침을 따르세요:
표시된 단어 | 지침 |
---|---|
약어(페이지를 방문하는 평균 방문자가 알 가능성이 있는) | 약어를 Uppercase.yml 의 단어 및 약어 목록에 추가하세요. |
약어(페이지를 방문하는 평균 방문자가 알 가능성이 없는) | 약어가 처음 사용될 때는 전체 단어를 작성하고 괄호 안에 약어를 추가하세요. 이후에는 약어만 사용하세요. 예: 이 기능은 파일 전송 프로토콜(File Transfer Protocol, FTP)을 사용합니다. FTP는... . |
제품 또는 서비스의 올바르게 대문자로 된 이름 | 해당 이름을 Uppercase.yml 의 단어 및 약어 목록에 추가하세요. |
명령어, 변수, 코드 또는 유사한 항목 | 백틱이나 코드 블록에 넣으세요. 예: Use `FALSE` as the variable value.
|
타사 제품의 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
스크립트와 함께 사용할 수 있으며, 해커톤을 위한 문서 관련 이슈를 생성하는 데 사용됩니다.
로컬에서 사용자 정의 규칙 활성화
Vale 3.0 및 이후 버전에서는 규칙을 위한 두 위치를 지원합니다. 이 변경 사항은 프로젝트에 포함된 규칙과 함께 사용자 정의 규칙을 생성하고 사용할 수 있게 해 줍니다.
macOS에서 로컬에서 사용자 정의 규칙을 생성하고 사용하려면:
-
Vale의 응용 프로그램 지원 폴더에 로컬 파일을 만듭니다:
touch ~/Library/Application\ Support/vale/.vale.ini
-
방금 생성한
.vale.ini
파일에 다음 줄을 추가하세요:[*.md] BasedOnStyles = local
-
~/Library/Application Support/vale/styles/local
폴더가 존재하지 않으면, 생성하세요:mkdir ~/Library/Application\ Support/vale/styles/local
-
원하시는 규칙을
~/Library/Application Support/vale/styles/local
에 추가하세요.
로컬 스타일 디렉토리의 규칙은 Vale 결과에서 gitlab
대신 local
로 접두사가 붙습니다. 예:
$ vale --minAlertLevel warning doc/ci/yaml/index.md
doc/ci/yaml/index.md
...[snip]...
3876:17 warning 미래 시제 'will gitlab.FutureTense
be' 대신 현재 시제를 사용하십시오.
3897:26 error 'documentation' 제거 local.new-rule
✖ 1 오류, 5 경고 및 0 제안이 1 파일에서 발생했습니다.