μλν° νμ₯ κΈ°λ₯(Editor extensions)μ μ¬μ©νλ©΄ Obsidianμμ λ ΈνΈλ₯Ό νΈμ§νλ κ²½νμ 컀μ€ν°λ§μ΄μ¦ν μ μμ΅λλ€. μ΄ νμ΄μ§μμλ μλν° νμ₯ κΈ°λ₯μ΄ λ¬΄μμΈμ§, μΈμ μ¬μ©ν΄μΌ νλμ§ μ€λͺ ν©λλ€.
Obsidianμ λ§ν¬λ€μ΄ μλν°λ₯Ό ꡬλνκΈ° μν΄ CodeMirror 6(CM6)μ μ¬μ©ν©λλ€. Obsidianκ³Ό λ§μ°¬κ°μ§λ‘ CM6μλ _νμ₯ κΈ°λ₯(extensions)_μ΄λΌλ μ체 νλ¬κ·ΈμΈμ΄ μμ΅λλ€. μ¦, Obsidianμ _μλν° νμ₯ κΈ°λ₯_μ _CodeMirror 6 νμ₯ κΈ°λ₯_κ³Ό λμΌν©λλ€.
μλν° νμ₯ κΈ°λ₯μ ꡬμΆνκΈ° μν APIλ μ½κ° λ νΉνλ©° μμνκΈ° μ μ κΈ°λ³Έμ μΈ μν€ν μ² μ΄ν΄κ° νμν©λλ€. μ΄ μΉμ μ μμνκΈ°μ μΆ©λΆν 컨ν μ€νΈμ μμ λ₯Ό μ 곡νκΈ° μν κ²μ λλ€. μλν° νμ₯ κΈ°λ₯ ꡬμΆμ λν΄ λ λ°°μ°κ³ μΆλ€λ©΄ CodeMirror 6 λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
μλν° νμ₯ κΈ°λ₯μ΄ νμνκ°μ?
μλν° νμ₯ κΈ°λ₯μ ꡬμΆνλ κ²μ λμ μ μΌ μ μμΌλ―λ‘, ꡬμΆμ μμνκΈ° μ μ μ λ§λ‘ νμνμ§ κ³ λ €νμΈμ.
- μ½κΈ° λͺ¨λμμ λ§ν¬λ€μ΄μ HTMLλ‘ λ³ννλ λ°©μμ λ³κ²½νλ €λ©΄ λ§ν¬λ€μ΄ νμ²λ¦¬κΈ°λ₯Ό ꡬμΆνλ κ²μ κ³ λ €νμΈμ.
- λΌμ΄λΈ ν리뷰μμ λ¬Έμμ λͺ¨μκ³Ό λλμ λ³κ²½νλ €λ©΄ μλν° νμ₯ κΈ°λ₯μ ꡬμΆν΄μΌ ν©λλ€.
μλν° νμ₯ κΈ°λ₯ λ±λ‘
CodeMirror 6(CM6)μ μΉ κΈ°μ μ μ¬μ©νμ¬ μ½λλ₯Ό νΈμ§νκΈ° μν κ°λ ₯ν μμ§μ λλ€. ν΅μ¬μ μΌλ‘ μλν° μ체λ μ΅μνμ κΈ°λ₯ μΈνΈλ₯Ό κ°μ§κ³ μμ΅λλ€. νλμ μΈ μλν°μμ κΈ°λν μ μλ λͺ¨λ κΈ°λ₯μ μ νν μ μλ _νμ₯ κΈ°λ₯_μΌλ‘ μ 곡λ©λλ€. Obsidianμ μ΄λ¬ν νμ₯ κΈ°λ₯ μ€ λ§μ κ²μ κΈ°λ³ΈμΌλ‘ μ 곡νμ§λ§, μμ λ§μ νμ₯ κΈ°λ₯μ λ±λ‘ν μλ μμ΅λλ€.
μλν° νμ₯ κΈ°λ₯μ λ±λ‘νλ €λ©΄ Obsidian νλ¬κ·ΈμΈμ onload
λ©μλμμ registerEditorExtension()μ μ¬μ©νμΈμ:
onload() {
this.registerEditorExtension([examplePlugin, exampleField]);
}
CM6λ μ¬λ¬ μ νμ νμ₯ κΈ°λ₯μ μ§μνμ§λ§, κ°μ₯ μΌλ°μ μΈ λ κ°μ§λ View pluginsμ State fieldsμ
λλ€.