λ·° νλ¬κ·ΈμΈ(View plugin)μ μλν° λ·°ν¬νΈμ μ κ·Όν μ μλ μλν° νμ₯ κΈ°λ₯μ λλ€.
Note
μ΄ νμ΄μ§λ Obsidian νλ¬κ·ΈμΈ κ°λ°μλ₯Ό μν΄ κ³΅μ CodeMirror 6 λ¬Έμλ₯Ό μμ½ν κ²μ λλ€. μν κ΄λ¦¬μ λν λ μμΈν μ 보λ Affecting the Viewλ₯Ό μ°Έμ‘°νμΈμ.
νμ 쑰건
- λ·°ν¬νΈ κΈ°λ³Έ μ΄ν΄
λ·° νλ¬κ·ΈμΈ μμ±
λ·° νλ¬κ·ΈμΈμ λ·°ν¬νΈκ° μ¬κ³μ°λ νμ μ€νλλ μλν° νμ₯ κΈ°λ₯μ λλ€. μ΄λ λ·°ν¬νΈμ μ κ·Όν μ μμμ μλ―Ένμ§λ§, λμμ λ·° νλ¬κ·ΈμΈμ λ·°ν¬νΈμ μν₯μ λ―ΈμΉλ λ³κ²½ μ¬νμ λ§λ€ μ μμμ μλ―Έν©λλ€. μλ₯Ό λ€μ΄ λ¬Έμμ λΈλ‘μ΄λ μ€ λ°κΏμ μ½μ νλ λ±μ μμ μ λΆκ°λ₯ν©λλ€.
Tip
λΈλ‘μ΄λ μ€ λ°κΏμ μ½μ νλ λ± μλν°μ μμ§ λ μ΄μμμ μν₯μ μ£Όλ λ³κ²½μ μνλ€λ©΄ μν νλλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
λ·° νλ¬κ·ΈμΈμ μμ±νλ €λ©΄ PluginValueλ₯Ό ꡬννλ ν΄λμ€λ₯Ό λ§λ€κ³ ViewPlugin.fromClass() ν¨μμ μ λ¬νμΈμ.
import {
ViewUpdate,
PluginValue,
EditorView,
ViewPlugin,
} from '@codemirror/view';
class ExamplePlugin implements PluginValue {
constructor(view: EditorView) {
// ...
}
update(update: ViewUpdate) {
// ...
}
destroy() {
// ...
}
}
export const examplePlugin = ViewPlugin.fromClass(ExamplePlugin);
λ·° νλ¬κ·ΈμΈμ μΈ κ°μ§ λ©μλλ λΌμ΄νμ¬μ΄ν΄μ μ μ΄ν©λλ€:
constructor()
: νλ¬κ·ΈμΈμ μ΄κΈ°νν©λλ€.update()
: μ¬μ©μκ° ν μ€νΈλ₯Ό μ λ ₯νκ±°λ μ ννλ λ± λ³κ²½ μ¬νμ΄ μμ λ νλ¬κ·ΈμΈμ μ λ°μ΄νΈν©λλ€.destroy()
: νλ¬κ·ΈμΈ μ 리 μμ μ μνν©λλ€.
μμ μ λ·° νλ¬κ·ΈμΈμ λμνμ§λ§ λ§μ κΈ°λ₯μ νμ§ μμ΅λλ€. νλ¬κ·ΈμΈμ΄ μ
λ°μ΄νΈλλ μμΈμ λ μ μ΄ν΄νλ €λ©΄ update()
λ©μλμ console.log(update);
μ€μ μΆκ°νμ¬ λͺ¨λ μ
λ°μ΄νΈλ₯Ό μ½μμ μΆλ ₯ν μ μμ΅λλ€.
λ€μ λ¨κ³
λ·° νλ¬κ·ΈμΈμμ λ°μ½λ μ΄μ μ μ 곡νμ¬ λ¬Έμ νμ λ°©μμ λ³κ²½νμΈμ.