옵시디언 플러그인/커뮤니티 플러그인

문서 일관성과 가독성 향상시키는 Linter 플러그인

반응형

개요

옵시디언 사용자라면 누구나 문서 관리와 유지 보수의 중요성을 잘 알고 있습니다. Linter 플러그인은 이 과정을 자동화하여 문서의 일관성과 가독성을 높이는 데 중요한 역할을 합니다. Linter 플러그인을 활용하여 텍스트와 프론트매터(Frontmatter)를 규칙에 따라 자동으로 정리하는 방법을 소개합니다.

Plugin Info
플러그인 명 Linter
플러그인 설명 문서 일관성과 가독성 향상
플러그인 분류 lint, 문서정리
Github 링크 Github 링크
옵시디언 링크 플러그인 링크
별점 ⭐⭐⭐

기본 설정

  • Lint on save: 파일 저장(Ctrl+S) 시 자동으로 Linter가 실행됩니다.
  • Display message on lint: 린트 후 변경된 문자 수 출력합니다.

  • YAML aliases section style
  • YAML tags section style
    단일 라인(single-line)이 문제가 되지 않는다면 그대로 두어도 좋지만, 특정 플러그인을 고려하여 멀티 라인(multi-line)으로 변경할 수 있습니다.

  • Folders to ignore: Linter가 실행될 때 무시할 폴더를 지정할 수 있습니다. 템플릿 파일이 있는 폴더는 Linter 실행에서 제외시키는 것이 좋습니다.

사용 방법

Linter는 매우 강력한 도구이기 때문에 사용전 반드시 백업을 하시기 바랍니다.

사용 방법

  • 기본 설정에서 Lint on save을 활성화 했다면 파일 저장(Ctrl+S) 시 자동으로 린트(Lint)가 됩니다.

  • 현재 파일을 린트(lint)하려면 명령어 Lint the current file를 실행합니다(단축키 Ctrl+Alt+L).
  • 모든 파일을 린트하려면 명령어 Lint all files in the vault를 실행합니다.
  • 현재 폴더의 모든 파일을 린트하려면 명령어 Lint all files in the current folder를 실행합니다.

  • 파일 탐색기의 오른쪽 메뉴에서 Lint folder, Line file를 선택하여 린트할 수 있습니다.

비활성화 설정

비활성화 폴더 설정

기본 설정의 Folders to ignore에서 린트를 비활성화할 폴더를 설정합니다.

비활성화 노트 설정

---
disabled rules: [capitalize-headings, header-increment]
---

노트의 프론트매터로 비활성화할 규칙을 추가합니다.

---
disabled rules: [all]
---

모든 규칙을 비활성화할려면 프론트메터에 all을 추가합니다.

그 외 설정

YAML 설정

  • Escape special characters: 메타데이터에 :, ', ", []와 같은 특수 문자를 사용하고 싶을 때 활용할 수 있습니다.
변경 전:
---
Key1: value with ' a single quote present  
Key2: value with " a double quote present
---

변경 후:
---
Key1: "value with ' a single quote present"  
Key2: 'value with " a double quote present'
---
  • Format Tags in YAML: 잘못된 태그 구문을 변경합니다.
변경 전:
---
tags: [#one, #two, #three]
---

변경 후:
---
tags: [one, two, three]
---
  • Format YAML Array: YAML 구문 오류를 수정합니다.
  • Insert YAML attributes: 모든 노트에 특정 메타데이터를 입력합니다.
변경 전:
---
animal: cat
---

변경 후:
---
aliases:
tags: doc
animal: cat
---
  • Move Tags to YAML: 노트 본문에 태그가 있는 경우, YAML로 이동할 수 있습니다.
변경 전:

Text has to do with #test and #markdown

#test content here

변경 후: 
---
tags: [test, markdown]
---
Text has to do with #test and #markdown

#test content here
  • Remove YAML keys: 사용하지 않는 메타데이터를 제거합니다.
변경 전:
---
language: Typescript
type: programming
tags: computer
keywords:
  - keyword1
  - keyword2
status: WIP
date: 02/15/2022
---

변경 후:
---
language: Typescript
type: programming
tags: computer
---
  • YAML Key Priority Sort Order: 특정 키를 우선하여 정렬합니다.
변경 전:
---
language: Typescript
type: programming
tags: computer
keywords: []
status: WIP
date: 02/15/2022
---

변경 후:
---
date: 02/15/2022
type: programming
language: Typescript
tags: computer
keywords: []
status: WIP
---
  • YAML Timestamp: 생성/수정 날짜 메타데이터를 추가합니다.
변경 전:
# Obsidian

변경 후:
---
created: Wednesday, January 1st 2020, 12:00:00 am
modified: Thursday, January 2nd 2020, 12:00:05 am
---
# Obsidian
  • YAML Title Alias: 파일 이름과 다른 헤딩를 사용하는 경우, 파일의 최상위 헤딩가 별칭으로 추가됩니다.
변경 전:
# Obsidian

변경 후:
---
aliases:
  - Obsidian
---
# Obsidian
  • YAML Title: 파일 제목을 YAML의 선택한 키에 삽입합니다.

Header 설정

  • Capitalize Headings: 헤딩의 대문자 사용을 조정합니다. 'Title Case'를 선택할 경우, 각 단어의 첫글자가 대문자로 시작합니다.
변경 전:
# this is a heading 1
## THIS IS A HEADING 2
### a heading 3

변경 후:
# This is a Heading 1
## This is a Heading 2
### A Heading 3
  • File Name Heading: 노트에 헤딩이 없는 경우, 노트 제목을 헤딩으로 삽입할 수 있습니다.
변경 전:
This is a line of text

변경 후:
# File Name
This is a line of text
  • Header Increment: 헤딩의 논리적 순서가 이어지도록 변경합니다. 예를 들어, H1 다음에 H3이 온 경우, H3은 H2로 조정이 됩니다.
변경 전:
# H1
### H3
### H3
#### H4
###### H6

변경 후:
# H1
## H3
## H3
### H4
#### H6
  • Headings Start Line: 제목 앞의 공백을 제거합니다.
변경 전:
    ## Other heading preceded by 2 spaces

변경 후:
## Other heading preceded by 2 spaces
  • Remove Trailing Punctuation in Heading: 설정에 따라 제목 끝의 특정 구두점을 제거합니다.
변경 점:
# Heading ends in a period.
## Other heading ends in an exclamation mark!

변경 후:
# Heading ends in a period
## Other heading ends in an exclamation mark

Footnote 설정

  • Footnote after Punctuation: 각주 참조가 구두점 뒤에 오도록 보장합니다.
변경 전:
Lorem[^1]. Ipsum[^2], doletes.

변경 후: 
Lorem.[^1] Ipsum,[^2] doletes.
  • Move Footnotes to the Bottom: 만약 각주 아래에 실수로 내용을 추가하거나, 노트 중간에 각주를 추가한 경우, 이 설정은 각주를 문서의 하단으로 자동으로 이동시킵니다.
변경 전:
Lorem ipsum, consectetur adipiscing elit. [^1] Donec dictum turpis quis ipsum pellentesque.

[^1]: first footnote

Quisque lorem est, fringilla sed enim at, sollicitudin lacinia nisi.[^2]
[^2]: second footnote

Maecenas malesuada dignissim purus ac volutpat.

변경 후:
Lorem ipsum, consectetur adipiscing elit. [^1] Donec dictum turpis quis ipsum pellentesque.

Quisque lorem est, fringilla sed enim at, sollicitudin lacinia nisi.[^2]
Maecenas malesuada dignissim purus ac volutpat.

[^1]: first footnote
[^2]: second footnote
  • Re-Index Footnotes: 각주가 순서대로 나타나지 않을 때, 예를 들어 파일의 하단에 각주를 추가한 후 다른 하나를 파일 중간에 추가하는 경우, 각주의 순서가 뒤죽박죽될 수 있습니다. Linter는 이러한 문제를 자동으로 해결해 줍니다.
변경 전:
Lorem ipsum at aliquet felis.[^3] Donec dictum turpis quis pellentesque,[^5] et iaculis tortor condimentum.

[^3]: first footnote
[^5]: second footnote

변경 후:
Lorem ipsum at aliquet felis.[^1] Donec dictum turpis quis pellentesque,[^2] et iaculis tortor condimentum.

[^1]: first footnote
[^2]: second footnote

내용 설정

  • Auto-correct Common Misspellings: Obsidian의 내장 맞춤법 검사기를 사용하여 오류를 직접 수정해야 합니다. 이 설정을 활성화하면 Linter가 자동으로 오타를 수정해 줍니다.
  • Blockquote 스타일: > 문자 후의 공백을 추가하거나 제거하여 인용문의 일관성을 유지합니다.
  • Convert Bullet List Markers: 다른 곳에서 복사한 목록을 Obsidian에 붙여넣을 때 유용합니다. 실제 불릿 포인트를 사용하는 목록을 올바른 Markdown 문법으로 변환합니다.
  • Emphasis Style: Markdown에서는 내용을 기울임꼴로 표시하기 위해 밑줄(_) 또는 별표(*) 두 가지 방법을 사용할 수 있습니다. 이 설정을 통해 선호하는 스타일을 지정하거나, 노트에서 처음 발견된 스타일을 Linter가 자동으로 적용하게 할 수 있습니다.
  • No Bare URLs: Markdown에서 URL을 각각의 각 괄호(<>)로 둘러싸야 하는 기술적 요구사항을 자동으로 충족시켜 줍니다. 여러 Markdown 도구를 사용하는 경우, 이 설정이 유용할 수 있습니다.
  • Ordered List Style: 정렬된 목록의 일관된 서식을 보장합니다. Linter는 목록 번호가 올바르게 증가하도록 도와줍니다.
  • Proper Ellipsis: 세 개의 점을 줄임표로 자동 교체합니다. 이는 텍스트의 전문성을 높이는 데 기여할 수 있습니다.
  • Quote Style: 문서에서 올바른 “스마트 인용 부호”를 사용하는 것이 유용합니다.
  • Remove Consecutive List Markers: 복사하여 붙여넣기를 할 때 - - list item- list item으로 변환합니다.
  • Remove Empty List Markers: 빈 목록 마커 제거합니다.
  • Remove Hyphenated Line Breaks: 하이픈이 있는 줄바꿈 제거 합니다.
  • Remove Multiple Spaces: 문서 내의 연속된 공백을 제거합니다. 들여쓰기는 무시됩니다.
  • Strong Style: 볼드 텍스트가 일관된 문법을 사용하도록 보장합니다.
  • Two Spaces Between Lines with Content: 단일 텍스트 줄의 끝에 공간을 추가하여, 렌더링 시 적절한 간격으로 표시됩니다.
  • Unordered List Style: 정렬되지 않은 목록이 일관된 스타일을 사용하도록 보장합니다.
  • Two Spaces Between Lines with Content: 내용이 있는 라인의 끝에 공백 두 칸을 추가합니다.

공백 설정

  • Compact YAML: YAML 설정 주변의 공백을 제거합니다.
  • Consecutive Blank Lines: 연속된 빈 줄을 하나만 남기고 제거하여, 문서의 구조를 깔끔하게 유지합니다.
  • Convert Spaces to Tabs: 문단 앞의 공백 문자를 탭으로 변환합니다. 또한 탭 크기를 구성할 수 있습니다.
  • Empty Line around Blockquotes: 인용문 주변에 빈 줄을 추가합니다.
  • Empty Line around Code Fences: 코드 블록 주변에 빈 줄을 추가합니다.
  • Empty Line around Math Blocks: 수학 블록 주변에 빈 줄을 추가합니다.
  • Empty Line around Tables: 표 주변에 빈 줄을 추가합니다.
  • Heading blank lines: 제목 주변의 공백을 구성할 수 있게 해주어, 문서의 구조를 더 명확하게 합니다.
  • Line Break at Document End: 모든 노트의 끝에 정확히 하나의 줄 바꿈이 있도록 합니다.
  • Move Math Block Indicators to Their Own Line: 수학 블록 지시자를 해당 줄로만 이동시킵니다.
  • Paragraph Blank Lines: 각 단락이 정확히 하나의 빈 줄로 시작하고 끝나도록 합니다.
  • Remove Empty Lines Between List Markers and Checklists: 리스트와 체크리스트의 가독성을 향상시킵니다.
  • Remove Link Spacing: 링크 텍스트 주변의 공백을 제거합니다.
  • Remove Space around Characters: 특정 문자 주변의 공백을 제거합니다.
  • Remove Space Before or After Characters: 특정 문자 전후의 공백을 제거합니다.
  • Space after list markers: 목록 마커와 체크박스 뒤에 단일 공간이 존재하도록 합니다.
  • Space between Chinese Japanese or Korean and English or numbers: 한국어, 일본어, 중국어와 영어나 숫자 사이의 공간을 조정합니다.
  • Trailing spaces: 모든 줄 끝의 여분의 공간을 제거합니다.

붙여넣기 설정

  • Add Blockquote Indentation on Paste: 인용문 안에 텍스트를 붙여넣을 때, 이 기능은 포맷을 자동으로 수정합니다.
  • Prevent Double Checklist Indicator on Paste: 이미 체크마크가 있는 항목에 체크마크를 붙여넣을 경우, 중복을 제거합니다.
  • Prevent Double List Item Indicator on Paste: 리스트를 리스트 안에 붙여넣을 때, 중복된 리스트 지시자를 제거합니다.
  • Proper Ellipsis on Paste: 세 개의 연속된 점을 줄임표로 교체합니다.
  • Remove Hyphens on Paste: 붙여넣기를 할 때, 하이픈을 제거합니다.
  • Remove Leading or Trailing Whitespace on Paste: 붙여넣은 텍스트의 앞뒤 공백을 제거합니다.
  • Remove Leftover Footnotes from Quote on Paste: 외부 출처에서 복사한 인용문에서 각주를 제거합니다.
  • Remove Multiple Blank Lines on Paste: 붙여넣은 내용에서 과도한 빈 줄을 정리합니다.

Custom Commands

Linter 실행 후 Obsidian 명령을 호출하거나, 정규 표현식을 사용하여 텍스트를 교체하는 등의 고급 기능을 제공합니다. 이는 보다 세밀한 문서 관리를 원하는 고급 사용자를 위한 기능입니다.

Debug 설정

Linter가 복잡한 플러그인인 만큼, 가끔씩 문제가 발생할 수 있습니다. Linter와 관련된 문제가 발생했을 때, 디버그 설정을 활성화하고 프로그램이 제공하는 정보를 확인하는 것이 문제 해결에 도움이 될 수 있습니다.

 

마치며

Linter 플러그인을 통해 옵시디언에서 문서를 더욱 체계적이고 일관되게 관리할 수 있습니다. 설정 옵션을 적절히 조정하면, 작성하는 모든 문서가 정해진 규칙에 따라 자동으로 정리되어, 효율적인 문서 관리를 실현할 수 있습니다.

관련 글

 

옵시디언의 노트를 정리하고 일관성 유지하기 위한 플러그인

노트의 일관성과 체계를 유지하기 위한 옵시디언 플러그인에 대해 살펴보겠습니다. 이들 플러그인은 학술 연구와 같은 복잡한 노트 테스킹 작업에 효과적인 구조와 일관성을 제공합니다. Linter

kaminik.tistory.com


 

반응형