OPEN SOURCE/CKEditor4

CKEditor4 ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ, ๋‚ด ์†์œผ๋กœ ์ง์ ‘ ๊พธ๋ฏธ๊ธฐ

Junesker 2025. 6. 4. 22:33
๋ฐ˜์‘ํ˜•

 

 

 

 

 

์›น ๊ฐœ๋ฐœ์ž๋‚˜ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ์ž๋ผ๋ฉด ํ•œ ๋ฒˆ์ฏค ์‚ฌ์šฉํ•ด ๋ดค์„ WYSIWYG ์—๋””ํ„ฐ, CKEditor4์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•ต์‹ฌ์ธ '๋„๊ตฌ๋ชจ์Œ(Tollbar)'์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋„๊ตฌ ๋ชจ์Œ๋„ ํ›Œ๋ฅญํ•˜์ง€๋งŒ, ์šด์˜ ์ค‘์ธ ์›น ์‚ฌ์ดํŠธ๋‚˜ ์„œ๋น„์Šค์˜ ํŠน์„ฑ์— ๋งž์ถฐ ๊ผญ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๋„ฃ๊ฑฐ๋‚˜, ์ž์ฃผ ์“ฐ๋Š” ๊ธฐ๋Šฅ์„ ๋ˆˆ์— ๋„๊ฒŒ ๋ฐฐ์น˜ํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์ด ํ›จ์”ฌ ์ข‹์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

์™œ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•ด์•ผ ํ• ๊นŒ์š”?

 

ํ–ฅ์ƒ๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)

๋ถˆํ•„์š”ํ•œ ๋ฒ„ํŠผ์„ ์ œ๊ฑฐํ•˜๊ณ , ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ „๋ฉด์— ๋ฐฐ์น˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ๋ถˆํ•„์š”ํ•œ ํด๋ฆญ๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฒ„ํŠผ์˜ ์„œ์น˜ ๋ฒ”์œ„๋ฅผ ์ค„์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ํšจ์œจ์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ฐ„๊ฒฐํ•œ ์ธํ„ฐํŽ˜์ด์Šค

๋„ˆ๋ฌด ๋งŽ์€ ๋ฒ„ํŠผ์€ ์‚ฌ์šฉ์ž๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๋‚จ๊ฒจ๋‘๋ฉด ์—๋””ํ„ฐ๊ฐ€ ํ›จ์”ฌ ๊น”๋”ํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. 

 

 

ํŠน์ • ์„œ๋น„์Šค์— ์ตœ์ ํ™”

๊ฒŒ์‹œํŒ ์—๋””ํ„ฐ๋ผ๋ฉด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋‚˜ ํ‘œ ์‚ฝ์ž… ๊ธฐ๋Šฅ์ด ์ค‘์š”ํ•˜๊ณ , ๋‹จ์ˆœ ๋Œ“๊ธ€ ์—๋””ํ„ฐ๋ผ๋ฉด ๊ธฐ๋ณธ์ ์ธ ํ…์ŠคํŠธ ์Šคํƒ€์ผ๋ง๋งŒ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ๋ชฉ์ ์— ๋งž์ถฐ ๋„๊ตฌ ๋ชจ์Œ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์„ฑ๋Šฅ ํ–ฅ์ƒ(์„ ํƒ)

๋ถˆํ•„์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ฑฐํ•˜๋ฉด CKEditor์˜ ๋กœ๋”ฉ ์†๋„๋„ ์•ฝ๊ฐ„ ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

CKEditor4๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ WYSIWYG ํŽธ์ง‘๊ธฐ์ด์ง€๋งŒ, ๋ชจ๋“  ์˜ต์…˜์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํˆด๋ฐ” ์‚ฌ์šฉ์ž ์ •์˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ๋ฅผ ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ์ž ์ง€์ • ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , ํˆด๋ฐ”์— ์ถ”๊ฐ€๋˜๊ธฐ ์ „์— ์›์น˜ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ ๊ตฌ์„ฑ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ๋ฒ„ํŠผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •๋‹นํ•œ ์ด์œ  ์—†์ด ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๋กœ๋“œํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 


ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•

 

 

[ ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ ์‚ฌ์šฉํ•˜๊ธฐ ]

 

Toolbar Configurator

 

web-resources.aalzza.com

 

ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ๋Š” CKEditor 4.5์—์„œ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ณต์‹ CKEditor4 ์„ค์น˜ ํŒจํ‚ค์ง€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

CKEditor4 ๋ฐฐํฌ ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ์ƒˆ๋กœ์šด ํˆด๋ฐ” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๊ทผ์„ฑ ์žˆ๋Š” ํˆด๋ฐ”๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ์ง‘๊ธฐ ํˆด๋ฐ”๋ฅผ ์„ค์ •ํ•˜๋Š” '๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•'์ž…๋‹ˆ๋‹ค. ํˆด๋ฐ” ๊ทธ๋ฃน ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ๋ฒ„ํŠผ์„ ์„ ํƒ ๋ฐ ์„ ํƒ ํ•ด์ œํ•˜๊ณ , ํˆด๋ฐ”๋ฅผ ํ–‰์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ตฌ์„ฑ์€ ์ฒจ๋ถ€๋œ ํŽธ์ง‘๊ธฐ ์ธ์Šคํ„ด์Šค์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํˆด๋ฐ”์˜ ๋ชจ์–‘๊ณผ ๋А๋‚Œ์— ๋Œ€ํ•œ ์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์ •์— ๋งŒ์กฑํ•˜๋ฉด ์ƒ์„ฑ๋œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํŽธ์ง‘๊ธฐ ๊ตฌ์„ฑ์— ๋ถ™์—ฌ ๋„ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘์ ์ธ ๊ตฌ์„ฑ์œผ๋กœ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” '๊ธฐ๋ณธ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ๊ธฐ'์™€ ํ•ญ๋ชฉ๋ณ„ ๊ตฌ์„ฑ์„ ํ†ตํ•ด ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ •์˜๋œ ๋„๊ตฌ ๋ชจ์Œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” '๊ณ ๊ธ‰ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ๊ธฐ'์ž…๋‹ˆ๋‹ค. ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ์— ํ‘œ์‚ฌ๋˜๋Š” ํŽธ์ง‘๊ธฐ์—๋Š” ํŠน์ • CKEditor4 ๋นŒ๋“œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ๊ณผ ๋ฒ„ํŠผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

๊ธฐ๋ณธ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ๊ธฐ

 

 

๊ธฐ๋ณธ ํˆด๋ฐ” ๊ตฌ์„ฑ๊ธฐ๋Š” ํŽธ์ง‘๊ธฐ ํˆด๋ฐ”๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐ ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ์‹์ธ 'ํˆด๋ฐ” ๊ทธ๋ฃน' ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์œ„์ชฝ ๋ฐ ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํˆด๋ฐ” ๊ทธ๋ฃน์˜ ์ˆœ์„œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ , ํ™•์ธ๋ž€์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์„ ํƒ ์ทจ์†Œํ•˜์—ฌ ๋ฒ„ํŠผ ํ‘œ์‹œ ์—ฌ๋ถ€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 'ํ–‰ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ ์ถ”๊ฐ€' ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํˆด๋ฐ” ํ–‰์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

ํˆด๋ฐ” ์„ค์ •์ด ๋งˆ์Œ์— ๋“ค๋ฉด 'ํˆด๋ฐ” ์„ค์ • ๊ฐ€์ ธ์˜ค๊ธฐ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒ์„ฑ๋œ ํˆด๋ฐ” ์„ค์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํˆด๋ฐ” ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘๊ธฐ ์„ค์ •์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„ค์ • ์˜ต์…˜์„ ์ด๋ฏธ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ๋‘ ์„ค์ •์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง๊ณ  ์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

๊ณ ๊ธ‰ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ๊ธฐ

 

 

CKEditor4 ์ธ์Šคํ„ด์Šค์™€ ํ˜„์žฌ ํˆด๋ฐ” ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์—์„œ ํˆด๋ฐ” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ ํˆด๋ฐ” ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘๊ธฐ ๊ตฌ์„ฑ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํˆด๋ฐ” ํ•ญ๋ชฉ์€ ์˜ค๋ฅธ์ชฝ์— ๋‚˜์—ด๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•„์š”ํ•  ๋•Œ ์‰ฝ๊ฒŒ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํˆด๋ฐ” ์„ค์ •์ด ๋งˆ์Œ์— ๋“ค๋ฉด ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์—์„œ ์ˆ˜์ •๋œ ํˆด๋ฐ” ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํˆด๋ฐ” ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘๊ธฐ ์„ค์ •์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค๋ฅธ ์„ค์ • ์˜ต์…˜์„ ์ด๋ฏธ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ๋‘ ์„ค์ •์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ๊ธฐ๋ณธ ๋„๊ตฌ ๋ชจ์Œ ์„ค์ •๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ๋ฅผ ๊ผญ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŽฏ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ์˜ ํ•ต์‹ฌ, config.js ํŒŒ์ผ
CKEditor4์˜ ๋„๊ตฌ ๋ชจ์Œ ๊ตฌ์„ฑ์€ ์ฃผ๋กœ config.js ํŒŒ์ผ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.  ํ•ด๋‹น ํŒŒ์ผ์€ CKEditor ์„ค์น˜ ํด๋” ์•ˆ์— ์žˆ์œผ๋ฉฐ, ์—๋””ํ„ฐ์˜ ์ „๋ฐ˜์ ์ธ ๋™์ž‘์„ ์„ค์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

CKEDITOR.editorConfig = function( config ) {
    // ์—ฌ๊ธฐ์— ํˆด๋ฐ” ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
};โ€‹

 

 

 

 

 

1.  Toolbar Configurator๋กœ ๋“ค์–ด๊ฐ€ ์›ํ•˜๋Š” ํˆด๋ฐ”์˜ ํ˜•ํƒœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํ›„, ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” 'Get Toolbar config' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

 

2.  ํ‘œ์‹œ๋œ ์†Œ์Šค๋ฅผ ์ „์ฒด ์„ ํƒ ํ›„, ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

 

3.  CKEditor ํด๋” ๋‚ด, config.js ํŒŒ์ผ์„ ์—ด๊ณ  ๋ณต์‚ฌํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

 

 

์„œ๋ฒ„๋ฅผ ์‹คํ–‰ ํ›„, ์„ค์ •๋œ ํˆด๋ฐ” ํ˜•ํƒœ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 


ToolbarGroups vs Toolbar๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

 

CKEditor 4์—์„œ ํˆด๋ฐ”๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ toolbarGroups์™€ toolbar ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ์„ค์ • ๋ฐฉ์‹์€ ํˆด๋ฐ”์˜ ๊ตฌ์„ฑ๊ณผ ๋ฒ„ํŠผ์˜ ๋ฐฐ์น˜์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์‚ฌ์šฉ ๋ชฉ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

 

CKEditor 4๋Š” ๊ฐ•๋ ฅํ•œ WYSIWYG ํŽธ์ง‘๊ธฐ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ํ’๋ถ€ํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ํˆด๋ฐ” ์„ค์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํˆด๋ฐ”๋Š” ํŽธ์ง‘๊ธฐ์˜ ํ•ต์‹ฌ์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. CKEditor 4์—์„œ ํˆด๋ฐ”๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์š” ๋ฐฉ์‹์€ toolbarGroups์™€ toolbar ๋‘ ๊ฐ€์ง€์ด๋ฉฐ, ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

ToolbarGroups๋ž€?

 

toolbarGroups๋Š” ํˆด๋ฐ”์˜ ๋ฒ„ํŠผ๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. CKEditor4๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ฒ„ํŠผ๋“ค์„ ๋ฏธ๋ฆฌ ๊ทธ๋ฃนํ™”ํ•ด ๋†“์•˜์œผ๋ฉฐ, toobarGroups ์„ค์ •์„ ํ†ตํ•ด ์–ด๋–ค ๊ทธ๋ฃน๋“ค์„ ํˆด๋ฐ”์— ํฌํ•จํ• ์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์ˆœ์„œ๋กœ ๋ฐฐ์น˜ํ• ์ง€๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ์‹์€ ํŠน์ • ๊ธฐ๋Šฅ ๊ทธ๋ฃน์„ ํ†ต์งธ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๋ฉฐ, ํˆด๋ฐ”์˜ ์ „๋ฐ˜์ ์ธ ๊ตฌ์„ฑ์„ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•  ๋•Œ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. 

 

์„ค์ •๋ฐฉ๋ฒ•

toolbarGroups๋Š” config.js ํŒŒ์ผ ๋˜๋Š” CKEDITOR.replace(), CKEDITOR.inline() ํ˜ธ์ถœ ์‹œ ์„ค์ • ๊ฐ์ฒด ๋‚ด์—์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ทธ๋ฃน์€ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ •์˜๋˜๋ฉฐ, name ์†์„ฑ์œผ๋กœ ๊ทธ๋ฃน์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  groups ์†์„ฑ์œผ๋กœ ํ•ด๋‹น ๊ทธ๋ฃน์— ํฌํ•จ๋  ํ•˜์œ„ ๊ทธ๋ฃน ๋˜๋Š” ๊ฐœ๋ณ„ ๋ฒ„ํŠผ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

// config.js ๋˜๋Š” CKEDITOR.replace() ์˜ต์…˜
CKEDITOR.editorConfig = function( config ) {
    config.toolbarGroups = [
        { name: 'document',    groups: [ 'mode', 'document', 'doctools' ] },
        { name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
        { name: 'editing',     groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
        { name: 'links' },
        { name: 'insert' },
        { name: 'forms' },
        { name: 'tools' },
        { name: 'others' },
        { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
        { name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph' ] },
        { name: 'styles' },
        { name: 'colors' },
        { name: 'about' }
    ];
};

 

์œ„ ์˜ˆ์‹œ๋Š” ๊ธฐ๋ณธ์ ์ธ ํˆด๋ฐ” ๊ทธ๋ฃน ๊ตฌ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ ๊ทธ๋ฃน ๊ฐ์ฒด๋Š” name ์†์„ฑ์„ ํ•„์ˆ˜๋กœ ๊ฐ€์ง€๋ฉฐ, groups ์†์„ฑ์„ ํ†ตํ•ด ํ•ด๋‹น ๊ทธ๋ฃน ๋‚ด์˜ ์„ธ๋ถ€ ๊ทธ๋ฃน ๋˜๋Š” ๋ฒ„ํŠผ๋“ค์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. groups ์†์„ฑ์„ ์ƒ๋žตํ•˜๋ฉด, ํ•ด๋‹น name์„ ๊ฐ€์ง„ ๊ธฐ๋ณธ ๊ทธ๋ฃน์˜ ๋ชจ๋“  ๋ฒ„ํŠผ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

 

config.toolbarGroups๋Š” ๋„๊ตฌ ๋ชจ์Œ์„ ๊ตฌ์„ฑํ•˜๋Š” "๊ทธ๋ฃน"์˜ ์ˆœ์„œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ทธ๋ฃน์€ ํŠน์ • ๊ธฐ๋Šฅ ๋ฒ”์ฃผ์— ์†ํ•˜๋Š” ๋ฒ„ํŠผ๋“ค์„ ๋ฌถ์–ด๋†“์€ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

  • document : ๋ฌธ์„œ ๊ด€๋ จ ์ž‘์—… (์˜ˆ: ์†Œ์Šค ๋ณด๊ธฐ, ๋ฏธ๋ฆฌ ๋ณด๊ธฐ, ์ €์žฅ, ์ƒˆ ๋ฌธ์„œ ๋“ฑ)
    - ํ•˜์œ„ ๊ทธ๋ฃน : mode, document, doctools
  • clipboard :  ํด๋ฆฝ๋ณด๋“œ ์ž‘์—… ๋ฐ ๋˜๋Œ๋ฆฌ๊ธฐ / ๋‹ค์‹œ ์‹คํ–‰
    - ํ•˜์œ„ ๊ทธ๋ฃน : clipboard, undo
  • editing : ์ฐพ๊ธฐ, ๋ฐ”๊พธ๊ธฐ, ์„ ํƒ, ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ ๋“ฑ ํŽธ์ง‘ ๊ด€๋ จ ๊ธฐ๋Šฅ
    - ํ•˜์œ„ ๊ทธ๋ฃน : find, selection, spellchecker
  • forms : HTML ํผ ์š”์†Œ ์‚ฝ์ž… (์˜ˆ: ํ…์ŠคํŠธ ํ•„๋“œ, ์ฒดํฌ๋ฐ•์Šค, ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๋“ฑ)
  • basicstyles : ๊ธฐ๋ณธ์ ์ธ ํ…์ŠคํŠธ ์Šคํƒ€์ผ (์˜ˆ: ๊ตต๊ฒŒ, ๊ธฐ์šธ์ž„, ๋ฐ‘์ค„, ์ทจ์†Œ์„  ๋“ฑ)
    - ํ•˜์œ„ ๊ทธ๋ฃน : basicstyles, cleanup (ํฌ๋งท ์ œ๊ฑฐ)
  • paragraph : ๋‹จ๋ฝ ์„œ์‹ (์˜ˆ: ๋ชฉ๋ก, ๋“ค์—ฌ ์“ฐ๊ธฐ / ๋‚ด์–ด ์“ฐ๊ธฐ, ์ธ์šฉ, ์ •๋ ฌ, ํ…์ŠคํŠธ ๋ฐฉํ–ฅ ๋“ฑ)
    - ํ•˜์œ„ ๊ทธ๋ฃน : list, indent, blocks, align, bidi
  • links : ํ•˜์ดํผ๋งํฌ ๊ด€๋ จ ๊ธฐ๋Šฅ (์˜ˆ: ๋งํฌ ์‚ฝ์ž… / ์ œ๊ฑฐ, ์•ต์ปค)
  • insert : ๋‹ค์–‘ํ•œ ๊ฐ์ฒด ์‚ฝ์ž… (์˜ˆ: ์ด๋ฏธ์ง€, ํ‘œ, ๊ฐ€๋กœ์ค„, ํŠน์ˆ˜ ๋ฌธ์ž, ์ด๋ชจํ‹ฐ์ฝ˜, ํŽ˜์ด์ง€ ๋‚˜๋ˆ„๊ธฐ, iframe ๋“ฑ)
  • styles : ์Šคํƒ€์ผ ์ ์šฉ (์˜ˆ: ๋‹จ๋ฝ ์Šคํƒ€์ผ, ๊ธ€๊ผด, ๊ธ€๊ผด ํฌ๊ธฐ)
  • colors : ํ…์ŠคํŠธ ์ƒ‰์ƒ ๋ฐ ๋ฐฐ๊ฒฝ์ƒ‰
  • tools : ์œ ์šฉํ•œ ๋„๊ตฌ (์˜ˆ: ์ตœ๋Œ€ํ™”, ๋ธ”๋ก ํ‘œ์‹œ ๋“ฑ)
  • others : ๊ธฐํƒ€ ๊ธฐ๋Šฅ
  • about : CKEditor ์ •๋ณด

 

์ฐธ๊ณ 

  • ' / ' : ์ด ๊ธฐํ˜ธ๋ฅผ toolbarGroups ๋ฐฐ์—ด ์•ˆ์— ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ์œ„์น˜์—์„œ ๋„๊ตฌ ๋ชจ์Œ์ด ์ƒˆ๋กœ์šด ์ค„๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.
  • ์œ„ ๊ทธ๋ฃน๋“ค์€ CKEditor์˜ 'Full' ๋นŒ๋“œ์— ์ผ๋ฐ˜์ ์œผ๋กœ ํฌํ•จ๋œ ๊ทธ๋ฃน๋“ค์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ CKEditor ๋นŒ๋“œ๋‚˜ ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋”ฐ๋ผ ๋ชฉ๋ก์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

Toolbar๋ž€?

 

toolbar๋Š” ํˆด๋ฐ”์— ํ‘œ์‹œ๋  ๊ฐœ๋ณ„ ๋ฒ„ํŠผ๋“ค์„ ์ง์ ‘ ๋‚˜์—ดํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ toolbarGroups๋ณด๋‹ค ๋” ์„ธ๋ฐ€ํ•œ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ํˆด๋ฐ”์˜ ๊ฐ ๋ฒ„ํŠผ์„ ์›ํ•˜๋Š” ์ˆœ์„œ์™€ ์œ„์น˜์— ์ •ํ™•ํžˆ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฒ„ํŠผ๋งŒ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ๋˜๋Š” ํˆด๋ฐ”์˜ ๋ ˆ์ด์•„์›ƒ์„ ์™„์ „ํžˆ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์„ค์ •๋ฐฉ๋ฒ•

toolbar๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ config.js ํŒŒ์ผ ๋˜๋Š” CKEDITOR.replace(), CKEDITOR.inline() ํ˜ธ์ถœ ์‹œ ์„ค์ • ๊ฐ์ฒด ๋‚ด์—์„œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

// config.js ๋˜๋Š” CKEDITOR.replace() ์˜ต์…˜
CKEDITOR.editorConfig = function( config ) {
    config.toolbar = [
        { name: 'document', items: [ 'Source', '-', 'Save', 'NewPage', 'Preview', 'Print', '-', 'Templates' ] },
        { name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
        { name: 'editing', items: [ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ] },
        { name: 'forms', items: [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] },
        '/', // ๋‹ค์Œ ์ค„๋กœ ์ด๋™
        { name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat' ] },
        { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language' ] },
        { name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] },
        { name: 'insert', items: [ 'Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak', 'Iframe' ] },
        '/', // ๋‹ค์Œ ์ค„๋กœ ์ด๋™
        { name: 'styles', items: [ 'Styles', 'Format', 'Font', 'FontSize' ] },
        { name: 'colors', items: [ 'TextColor', 'BGColor' ] },
        { name: 'tools', items: [ 'Maximize', 'ShowBlocks' ] },
        { name: 'others', items: [ 'About' ] }
    ];
};

 

์œ„ ์˜ˆ์‹œ๋Š” toolbar ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํˆด๋ฐ”์— ํฌํ•จ๋  ๊ฐœ๋ณ„ ๋ฒ„ํŠผ๋“ค์„ ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ฐ์ฒด๋Š” name ์†์„ฑ์œผ๋กœ ๊ทธ๋ฃน์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ , items ์†์„ฑ์œผ๋กœ ํ•ด๋‹น ๊ทธ๋ฃน์— ์†ํ•  ๋ฒ„ํŠผ๋“ค์˜ ๋ฐฐ์—ด์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. '/'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํˆด๋ฐ”์˜ ์ค„ ๋ฐ”๊ฟˆ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, '-'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน ๋‚ด์—์„œ ๊ตฌ๋ถ„์„ ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

config.toolbar๋Š” ๊ฐ ๊ทธ๋ฃน ๋‚ด์— ํ‘œ์‹œ๋  ๋ฒ„ํŠผ์˜ ์ˆœ์„œ์™€ ์ข…๋ฅ˜๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฒ„ํŠผ์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

 

 

Document ๊ทธ๋ฃน ๊ด€๋ จ

  • Source : HTML ์†Œ์Šค ์ฝ”๋“œ ๋ณด๊ธฐ / ํŽธ์ง‘
  • Save : ์ €์žฅ (๋ณ„๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š”)
  • NewPage : ์ƒˆ ๋ฌธ์„œ
  • Preview : ๋ฏธ๋ฆฌ ๋ณด๊ธฐ
  • Print : ์ธ์‡„
  • Templates : ํ…œํ”Œ๋ฆฟ ์‚ฝ์ž…

 

Clipboard / Undo ๊ทธ๋ฃน ๊ด€๋ จ

  • Cut : ์ž˜๋ผ๋‚ด๊ธฐ
  • Copy : ๋ณต์‚ฌ
  • Paste : ๋ถ™์—ฌ ๋„ฃ๊ธฐ
  • PasteText : ํ…์ŠคํŠธ๋กœ ๋ถ™์—ฌ ๋„ฃ๊ธฐ
  • PasteFromWord : Word์—์„œ ๋ถ™์—ฌ ๋„ฃ๊ธฐ
  • Undo : ๋˜๋Œ๋ฆฌ๊ธฐ
  • Redo : ๋‹ค์‹œ ์‹คํ–‰

 

Editing ๊ทธ๋ฃน ๊ด€๋ จ

  • Find : ์ฐพ๊ธฐ
  • Replace : ๋ฐ”๊พธ๊ธฐ
  • SelectAll : ๋ชจ๋‘ ์„ ํƒ
  • Scayt : ์‹ค์‹œ๊ฐ„ ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ (Spell Check As You Type)

 

Forms ๊ทธ๋ฃน ๊ด€๋ จ

  • Form : ํผ ํƒœ๊ทธ ์‚ฝ์ž…
  • Checkbox : ์ฒดํฌ ๋ฐ•์Šค
  • Radio : ๋ผ๋””์˜ค ๋ฒ„ํŠผ
  • TextField : ํ…์ŠคํŠธ ํ•„๋“œ
  • Textarea : ํ…์ŠคํŠธ ์˜์—ญ
  • Select : ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก
  • Button : ๋ฒ„ํŠผ
  • ImageButton : ์ด๋ฏธ์ง€ ๋ฒ„ํŠผ
  • HiddenField : ์ˆจ๊ฒจ์ง„ ํ•„๋“œ

 

Basic Styles ๊ทธ๋ฃน ๊ด€๋ จ

  • Bold: ๊ตต๊ฒŒ
  • Italic: ๊ธฐ์šธ์ž„ ๊ผด
  • Underline: ๋ฐ‘์ค„
  • Strike: ์ทจ์†Œ์„ 
  • Subscript: ์•„๋ž˜ ์ฒจ์ž
  • Superscript: ์œ„ ์ฒจ์ž
  • RemoveFormat: ์„œ์‹ ์ œ๊ฑฐ

 

Paragraph ๊ทธ๋ฃน ๊ด€๋ จ

  • NumberedList: ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ ๋ชฉ๋ก
  • BulletedList: ๊ธ€๋จธ๋ฆฌ ๊ธฐํ˜ธ ๋ชฉ๋ก
  • Outdent: ๋‚ด์–ด ์“ฐ๊ธฐ
  • Indent: ๋“ค์—ฌ ์“ฐ๊ธฐ
  • Blockquote: ์ธ์šฉ ๋ธ”๋ก
  • CreateDiv: Div ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
  • JustifyLeft: ์™ผ์ชฝ ์ •๋ ฌ
  • JustifyCenter: ๊ฐ€์šด๋ฐ ์ •๋ ฌ
  • JustifyRight: ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ
  • JustifyBlock: ์–‘์ชฝ ์ •๋ ฌ
  • BidiLtr: ํ…์ŠคํŠธ ๋ฐฉํ–ฅ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ
  • BidiRtl: ํ…์ŠคํŠธ ๋ฐฉํ–ฅ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ
  • Language: ์–ธ์–ด ์„ค์ • (๋‹ค๊ตญ์–ด ์ง€์› ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š”)

 

Links ๊ทธ๋ฃน ๊ด€๋ จ

  • Link: ๋งํฌ ์‚ฝ์ž…/์ˆ˜์ •
  • Unlink: ๋งํฌ ์ œ๊ฑฐ
  • Anchor: ์•ต์ปค ์‚ฝ์ž…/์ˆ˜์ •

 

Insert ๊ทธ๋ฃน ๊ด€๋ จ

  • Image: ์ด๋ฏธ์ง€ ์‚ฝ์ž…
  • Flash: Flash ์‚ฝ์ž…
  • Table: ํ‘œ ์‚ฝ์ž…
  • HorizontalRule: ๊ฐ€๋กœ์ค„ ์‚ฝ์ž…
  • Smiley: ์ด๋ชจํ‹ฐ์ฝ˜ ์‚ฝ์ž…
  • SpecialChar: ํŠน์ˆ˜ ๋ฌธ์ž ์‚ฝ์ž…
  • PageBreak: ์ธ์‡„์šฉ ํŽ˜์ด์ง€ ๋‚˜๋ˆ„๊ธฐ
  • Iframe: IFrame ์‚ฝ์ž…
  • CodeSnippet: ์ฝ”๋“œ ์Šค๋‹ˆํŽซ ์‚ฝ์ž… (Code Snippet ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š”)
  • Mathjax: ์ˆ˜ํ•™ ๊ณต์‹ ์‚ฝ์ž… (MathJax ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š”)
  • CreatePlaceholder: ํ”Œ๋ ˆ์ด์Šคํ™€๋” ์‚ฝ์ž… (Placeholder ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š”)

 

Styles ๊ทธ๋ฃน ๊ด€๋ จ

  • Styles: CSS ์Šคํƒ€์ผ ์ ์šฉ (๋“œ๋กญ๋‹ค์šด)
  • Format: ๋‹จ๋ฝ ํฌ๋งท (์˜ˆ: Normal, Heading 1, Heading 2 ๋“ฑ)
  • Font: ๊ธ€๊ผด ์„ ํƒ (๋“œ๋กญ๋‹ค์šด)
  • FontSize: ๊ธ€๊ผด ํฌ๊ธฐ ์„ ํƒ (๋“œ๋กญ๋‹ค์šด)

 

Colors ๊ทธ๋ฃน ๊ด€๋ จ

  • TextColor: ํ…์ŠคํŠธ ์ƒ‰์ƒ
  • BGColor: ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ

 

Tools ๊ทธ๋ฃน ๊ด€๋ จ

  • Maximize: ํŽธ์ง‘๊ธฐ ์ตœ๋Œ€ํ™”/๋ณต์›
  • ShowBlocks: HTML ๋ธ”๋ก ์š”์†Œ ํ‘œ์‹œ/์ˆจ๊ธฐ๊ธฐ
  • About: CKEditor ์ •๋ณด

 

์ถ”๊ฐ€์ ์ธ ๊ธฐํ˜ธ

  • -: ๊ฐ™์€ ๊ทธ๋ฃน ๋‚ด์—์„œ ๋ฒ„ํŠผ๋“ค ์‚ฌ์ด์— ๊ตฌ๋ถ„์„ ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • '/': toolbar ๋ฐฐ์—ด ๋‚ด์—์„œ ์ƒˆ๋กœ์šด ์ค„๋กœ ๋„๊ตฌ ๋ชจ์Œ์„ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

 

 

 

 

 


์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ ๋ชจ์Œ ๋ฒ„ํŠผ ๋ชฉ๋ก

 

  • ํ…์ŠคํŠธ ์„œ์‹ :
    - BoldItalicUnderlineStrikeRemoveFormatStylesFormatFontFontSizeTextColorBGColor
  • ๋‹จ๋ฝ / ์ •๋ ฌ :
    - NumberedListBulletedListOutdentIndentBlockquoteJustifyLeftJustifyCenterJustifyRightJustifyBlock
  • ๋งํฌ / ์‚ฝ์ž… : 
    - LinkUnlinkImageTableHorizontalRuleSmileySpecialCharIframe
  • ๊ธฐํƒ€ : 
    - SourceMaximizeUndoRedoCopyPastePasteTextPasteFromWord
โš ๏ธ ์ค‘์š”
์—ฌ๊ธฐ์— ์—†๋Š” ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜, ํŠน์ • ๋ฒ„ํŠผ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ•ด๋‹น ๋ฒ„ํŠผ์ด ํฌํ•จ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด CKEditor ๋นŒ๋“œ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ:CodeSnippet ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด codesnippet ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์žˆ์–ด์•ผ ํ•จ)

 

 

 

 

 


ํŠน์ • ์—๋””ํ„ฐ ์ธ์Šคํ„ด์Šค์—๋งŒ ๋‹ค๋ฅธ ํˆด๋ฐ” ์ ์šฉํ•˜๊ธฐ

 

CKEditor4 ์„ค์ • ํŒŒ์ผ์ธ config.js ๋Š” ์ „์—ญ ์„ค์ •์ด์ง€๋งŒ, ๋งŒ์•ฝ ํŠน์ • <textarea>์—๋งŒ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ชจ์Œ์„ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, CKEDITOR.replace() ๋˜๋Š” CKEDITOR.inline() ํ˜ธ์ถœ ์‹œ ์„ค์ • ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

// HTML ์ฝ”๋“œ
// <textarea id="editor1"></textarea>
// <textarea id="editor2"></textarea>

// JavaScript ์ฝ”๋“œ
CKEDITOR.replace('editor1', {
    toolbar: [
        { name: 'basicstyles', items: [ 'Bold', 'Italic' ] },
        { name: 'links', items: [ 'Link' ] }
    ]
});

CKEDITOR.replace('editor2', {
    toolbar: [
        { name: 'document', items: [ 'Source' ] },
        { name: 'insert', items: [ 'Image', 'Table' ] }
    ]
});

 

editor1์€ ๊ฐ„๋‹จํ•œ ํˆด๋ฐ”๋ฅผ ๊ฐ€์ง€๊ณ , editor2๋Š” ๋‹ค๋ฅธ ํˆด๋ฐ”๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

@Junesker


 

๋ฐ˜์‘ํ˜•