μ΄ λ¬Έμλ μλν°μ κΈ°λ³ΈκΈ°λ₯ ꡬν λλ νμ₯μ μν λ¬Έμμ λλ€.
μλν°λ₯Ό μ€ννκΈ° μν΄μλ λ¨Όμ νλ‘μ νΈλ₯Ό fork ν΄μ£ΌμΈμ. κ·Έλ° λ€μ clone μ λ°μμ μ€νν΄μ€λλ€.
git clone https://github.com/easylogic/editor
cd editor
npm install
npm run dev
λΉλμμ€ν μ vitejs κ° νμν©λλ€.
μ΄ 3κ°μ§ ννλ‘ μ€νμ ν©λλ€.
- vite.config.js - λ‘컬 κ°λ°μ© μ€μ νμΌ
- vite.dist.config.js - npm λ°°ν¬μ© μ€μ νμΌ
- vite.prod.config.js - github pages λ°°ν¬μ© μ€μ νμΌ
νλ‘μ νΈλ κ°λ¨νκ² ν μ€νΈλ₯Ό μνν μ μμ΅λλ€.
npm test
λ΄λΆμ μΌλ‘λ vitest λ₯Ό μ¬μ©ν΄μ ν μ€νΈ ν©λλ€.
xxx.test.js ννλ‘ ν μ€νΈ νμΌμ μμ±νλ©΄ λ©λλ€. (μ¬κΈ°λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.)
Sapa λ μλν°λ₯Ό κ°λ°νκΈ° μν UI μμ€ν κ³Ό μ΄λ²€νΈ μμ€ν μ΄ ν©μ³μ Έ μλ λΌμ΄λΈλ¬λ¦¬μ λλ€.
Sapa μ λν κ°λ΅ν μκ°λ μ¬κΈ° λ₯Ό λ΄μ£ΌμΈμ. νκΈμ κ°λ°μ, UIλΌμ΄λΈλ¬λ¦¬λ₯Ό λ§λ€λ€λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
κΈ°λ³Έμ μΌλ‘ μλν°μ λͺ¨λ UI μ μ΄λ²€νΈλ Sapa λ₯Ό ν΅ν΄μ ꡬνλμ΄ μ§λλ€.
μλν°λ js νμΌμ μ¬μ©ν΄μ μμ±ν μ μκ³ λμ λ°λΌμλ jsx λ¬Έλ²μ μ¬μ©ν μ μμ΅λλ€. jsx μμ λ²μλ ν νλ¦Ώμ λͺ¨λ html λ¬Έμμ΄λ‘ λ체λ©λλ€.
μ΄μ μ€μ λ‘ μλν°λ₯Ό νμ₯ν΄λ³Ό μκ°μ λλ€. μλν°λ μλμ κ°μ λͺκ°μ§ ννλ‘ νμ₯μ΄ κ°λ₯ν©λλ€.
μλν°λ ν¬κ² λ λλ§ μμμ νννλ λͺ¨λΈκ³Ό λ λλ¬ κ° μ‘΄μ¬νκ³ μλν° μ체λ₯Ό ꡬμ±νλ μμμΌλ‘ λλ©λλ€.
μμ λμ΄ν λͺ¨λ λ΄μ©λ€μ νλ¬κ·ΈμΈ ννλ‘ νμ₯μ ν μ μμ΅λλ€.
src/plugins/ λ₯Ό μ°Έκ³ νμΈμ.
νλ¬κ·ΈμΈμ λ§λ€κΈ° μν΄μλ μ¬κΈ°μ μ°Έκ³ νμΈμ.
editor.command('setAttributeForMulti', 'change property', editor.selection.packByValue({
'background-color': 'red'
}))
this.command('setAttributeForMulti', 'change property', this.$selection.packByValue({
'background-color': 'red'
}))const layer = editor.selection.current;
// or
const layer = this.$selection.current;