рдкреЗрдЬрдХрд┐рдЯ - рд╕реНрд╡-рд╣реЛрд╕реНрдЯреЗрдб GrapesJS рд╕рд╛рдЗрдЯ рдмрд┐рд▓реНрдбрд░, рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрдЪрд╛ рдЧрдпрд╛ред рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЕрдВрдХ #494ЁЯТм рдЙрддреНрддрд░ рджрд┐рдпрд╛рдЦреЛрд▓рд╛ рдЧрдпрд╛ 8 рдирд╡рдореНрдмрд░ 2017рджреНрд╡рд╛рд░рд╛ z-vr0 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ

рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗрдВ

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░рджреНрд╡рд╛рд░рд╛ z-vr

рдУрд╣, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ - editor.addComponents({ type: 'MyComponent' }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдХреНрдпрд╛ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╣реА рдЗрдВрдбреЗрдХреНрд╕ рдХреИрд╕реЗ рдвреВрдВрдвреВрдВрдЧрд╛?

рдиреАрдЪреЗ рдкреВрд░рд╛ рдЙрддреНрддрд░ рдкрдврд╝реЗрдВ тЖУ

рдкреНрд░рд╢реНрди

рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдмреНрд▓реЙрдХ рдмрдирд╛рдпрд╛ рд╣реИ

DomComponents.addType('MyComponent', { ... });
BlockManager.add('Component', { content: { type: 'MyComponent' } });

рдХреНрдпрд╛ рдЗрд╕реЗ рдирд╛рдо рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдзреНрдпрдо рд╕реЗ DomComponents рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореИрдВ рд╣рд░ рдмрд╛рд░ рдмреНрд▓реЙрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреНрд░реИрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдзрдиреНрдпрд╡рд╛рджред

рдЬрд╡рд╛рдм (3)

z-vrтАв 8 рдирд╡рдореНрдмрд░ 2017

рдУрд╣, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ - editor.addComponents({ type: 'MyComponent' }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдХреНрдпрд╛ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╣реА рдЗрдВрдбреЗрдХреНрд╕ рдХреИрд╕реЗ рдвреВрдВрдвреВрдВрдЧрд╛?

z-vrтАв 8 рдирд╡рдореНрдмрд░ 2017

рдареАрдХ рд╣реИ рддреЛ рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдЯреНрд░реА рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА - рдореИрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдкреАрдЖрд░ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред рдЪреАрдпрд░реНрд╕!

artfтАв 8 рдирд╡рдореНрдмрд░ 2017

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ view.$el.data('model') рдХреЗ рд╕рд╛рде рдирдХрдж рддрддреНрд╡ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдореЙрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдХрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

wrapper.view.$el.find('#hero .text').each((el, i, $el) => 
    console.log($el.data('model'))
)

рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░

рдЗрд╕реА рддрд░рд╣ рдХреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реЛрдз рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдЕрдВрдХ #1255

рдХрд╕реНрдЯрдо рдШрдЯрдХ рд╕реЗ рд╕рдВрдкрд╛рджрдХ HTML рд╕рд╛рдордЧреНрд░реА рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ?

рдореБрдЭреЗ grapes рд╕рдВрдкрд╛рджрдХ рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ HTML рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдмреНрд▓реЙрдХ + рдШрдЯрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 17 рд╕рд┐рддрдореНрдмрд░ 2019

рдЕрдВрдХ #1325

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд▓реЙрдХреЛрдВ/рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрдк рдХреЛ рдЕрдХреНрд╖рдо рдХреИрд╕реЗ рдХрд░реЗрдВ

рдирдорд╕реНрдХрд╛рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣рдо рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдЕрдиреНрдп рдШрдЯрдХ (рдмреНрд▓реЙрдХ) рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ ...: рд╣рдо рдпрд╣ рдЗрдВрдЧ...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 17 рд╕рд┐рддрдореНрдмрд░ 2019

рдЕрдВрдХ #1696

рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдкрд░ рд▓рдХреНрд╖рдг рдкрд╣рд▓реА рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ

рд╣рд╛рдп artf , рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрдм рдЗрд╕ рдШрдЯрдХ рдХреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЪреБрдирддреЗ рд╣реИрдВ рддреЛ рд╕реЗрдЯрд┐рдВрдЧ рд▓рдХреНрд╖рдг рд╕рд╣реА рдв...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 15 рдЕрдкреНрд░реИрд▓ 2020

рдЕрдВрдХ #1432

рдХрд╕реНрдЯрдо DomComponent рдФрд░ рдмреНрд▓реЙрдХ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рджреЗрдВ

рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдмреНрд▓реЙрдХ рдмрдирд╛рдпрд╛: рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо рдбреЛрдордШрдЯрдХ: рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо рдХрдорд╛рдВрдб (рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдВ рд╣реЛ рд░рд╣реА рд╣реИ): рдЬрдм рдореИрдВ рдЪрд╛рдЗрд▓реНрдб рдЖрдИрдПрдордЬреА рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд▓рд┐...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 20 рд╕рд┐рддрдореНрдмрд░ 2019

рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ

рд╕рдорд╕реНрдпрд╛ рдХреАрд╡рд░реНрдб рдФрд░ рд▓реЗрдмрд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрдпреВрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рд╢рд┐рдк рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред

рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреЗрдЦреЗрдВ

рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрди рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ ...

рдирд┐рдГрд╢реБрд▓реНрдХ рд╡рд┐рдХрд▓реНрдк

рдУрдкрди-рд╕реЛрд░реНрд╕ GrapesJS рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ GitHub рдпрд╛ рд╣рдорд╛рд░реЗ рдореБрдлреНрдд рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдЪрд▓рд╛рдПрдВред

рдореБрдлреНрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТ
рдкреНрд░реАрдорд┐рдпрдо рд╡рд┐рдХрд▓реНрдк

рдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдорд░реНрдерди, рдирд┐рдпрдорд┐рдд рдЕрдкрдбреЗрдЯ рдФрд░ рдЙрддреНрдкрд╛рджрди-рддреИрдпрд╛рд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрддреЗ рд╣реИрдВ - рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рджрд┐рдиреЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред

рдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТ

рд╕рдВрдмрдВрдзрд┐рдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

рдПрдХ рд╣реА рд╡рд┐рд╖рдп рдкрд░ рдЧрд╣рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБред

рд╕рднреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ тЖТ

рдмреНрд░рд╛рдЙрдЬрд╝ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ

рд╕реАрдзреЗ рдмрд╛рдЬрд╝рд╛рд░ рдкрд░ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгреА рдХреЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдПрдБред