μ΄ νμ΄μ§λ μλν° νμ₯ κΈ°λ₯μ μν μν κ΄λ¦¬μ λν μκ°λ₯Ό μ 곡ν©λλ€.
Note
μ΄ νμ΄μ§λ Obsidian νλ¬κ·ΈμΈ κ°λ°μλ₯Ό μν΄ κ³΅μ CodeMirror 6 λ¬Έμλ₯Ό μμ½ν κ²μ λλ€. μν κ΄λ¦¬μ λν λ μμΈν μ 보λ State and Updatesλ₯Ό μ°Έμ‘°νμΈμ.
μν λ³κ²½
λλΆλΆμ μ ν리μΌμ΄μ μμλ μμ±μ΄λ λ³μμ μ κ°μ ν λΉνμ¬ μνλ₯Ό μ λ°μ΄νΈν©λλ€. κ²°κ³Όμ μΌλ‘ μ΄μ κ°μ μμν μ¬λΌμ§λλ€.
let note = '';
note = 'Heading'
note = '# Heading'
note = '## Heading' // μ΄ λ³κ²½μ μ΄λ»κ² μ·¨μν κΉμ?
μ¬μ©μ μμ 곡κ°μ λν λ³κ²½ μ¬νμ μ€ν μ·¨μ/λ€μ μ€ννλ κΈ°λ₯μ μ§μνκΈ° μν΄ Obsidianκ³Ό κ°μ μ ν리μΌμ΄μ μ λμ λͺ¨λ λ³κ²½ μ¬νμ κΈ°λ‘μ μ μ§ν©λλ€. λ³κ²½ μ¬νμ μ·¨μνλ €λ©΄ λ³κ²½ μ μ μμ μΌλ‘ λμκ° μ μμ΅λλ€.
TypeScriptμμλ λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€:
const changes: ChangeSpec[] = [];
changes.push({ from: 0, insert: 'Heading' });
changes.push({ from: 0, insert: '# ' });
changes.push({ from: 0, insert: '#' });
νΈλμμ
ν
μ€νΈλ₯Ό μ ννκ³ ν°λ°μ΄ν "
λ₯Ό λλ¬ μ ν μμ μμͺ½μ λ°μ΄νλ₯Ό μΆκ°νλ κΈ°λ₯μ μμν΄ λ³΄μΈμ. μ΄ κΈ°λ₯μ ꡬννλ ν κ°μ§ λ°©λ²μ:
- μ ν μμ μμμ
"
μ½μ - μ ν μμ λμ
"
μ½μ
ꡬνμλ _λ κ°_μ μν λ³κ²½μ΄ ν¬ν¨λ©λλ€. μ΄λ₯Ό μ€ν μ·¨μ κΈ°λ‘μ μΆκ°νλ©΄ μ¬μ©μλ κ° λ°μ΄νμ λν΄ ν λ²μ© λ λ² μ€ν μ·¨μν΄μΌ ν©λλ€. μ΄λ₯Ό νΌνκΈ° μν΄ μ΄λ¬ν λ³κ²½ μ¬νμ κ·Έλ£Ήννμ¬ νλλ‘ νμν μ μλ€λ©΄ μ΄λ¨κΉμ?
μλν° νμ₯ κΈ°λ₯μμ ν¨κ» λ°μνλ μν λ³κ²½ κ·Έλ£Ήμ _νΈλμμ _μ΄λΌκ³ ν©λλ€.
μ§κΈκΉμ§ λ°°μ΄ λ΄μ©μ κ²°ν©νκ³ λ¨μΌ μν λ³κ²½λ§ ν¬ν¨νλ νΈλμμ μ νμ©νλ€λ©΄ μνλ₯Ό _νΈλμμ κΈ°λ‘_μΌλ‘ κ°μ£Όν μ μμ΅λλ€.
μμ μΈκΈν λ°μ΄ν κ°μΈκΈ° κΈ°λ₯μ μλν° νμ₯ κΈ°λ₯μΌλ‘ ꡬννλ €λ©΄ λ€μκ³Ό κ°μ΄ μλν° λ·°μ νΈλμμ μ μΆκ°(λλ μ λ¬)ν©λλ€:
view.dispatch({
changes: [
{ from: selectionStart, insert: `"` },
{ from: selectionEnd, insert: `"` }
]
});
λ€μ λ¨κ³
μ΄ νμ΄μ§μμλ μνλ₯Ό μΌλ ¨μ μν λ³κ²½μΌλ‘ λͺ¨λΈλ§νλ λ°©λ²κ³Ό μ΄λ₯Ό νΈλμμ μΌλ‘ κ·Έλ£Ήννλ λ°©λ²μ λν΄ λ°°μ μ΅λλ€.
μλν°μμ μ¬μ©μ μ μ μνλ₯Ό κ΄λ¦¬νλ λ°©λ²μ λ°°μ°λ €λ©΄ State fieldsλ₯Ό μ°Έμ‘°νμΈμ.