Até agora, temos estes protótipos técnicos:
1- https://wordpress.github.io/gutenberg/tinymce-per-block/
2- https://wordpress.github.io/gutenberg/tinymce-single/ (TinyMCE único, não controlado, sem gramática, análise de HTML)
tinymce.getContent
(Sinta-se à vontade para adicionar qualquer outro protótipo técnico aqui)
Estou criando este problema para que possamos comparar os prós / contras de cada abordagem para nos ajudar a decidir qual abordagem escolhemos implementar.
Aqui estão meus sentimentos sobre esses dois protótipos:
Prós:
Contras:
Prós:
Contras
Com base neste protótipo experimental https://github.com/WordPress/gutenberg/pull/113 tentei trabalhar em uma abordagem mista, onde usamos o TinyMCE como um wrapper, mas renderizamos seu conteúdo com base nas mudanças de estado. Depois de alguma exploração, essa abordagem parece tentar recriar DraftJS ou ProseMirror. E não acho que seja a maneira certa de usar o TinyMCE.
Obrigado por criar este tíquete.
Ao comparar, devemos também pensar no nº 3, já que parece dependente da abordagem que escolhermos.
Eu acho que o Protótipo 2 é o caminho a percorrer, embora possa ser mais doloroso porque envolverá muito mais trabalho do TinyMCE; em última análise, provavelmente seria a melhor abordagem por enquanto.
Mais difícil reutilizar os blocos fora do editor?
Acho que isso não seria um contra para o Prototype 2, contanto que a API para definir os tipos de bloco e os tipos de controle forneça dados suficientes para algo diferente do TinyMCE usar. Acho que devemos desenvolver um tipo de bloco / tipo de controle definindo API que será usado para alimentar uma instância TinyMCE altamente personalizada. Os dados do tipo de bloco / tipo de controle também podem ser usados para alimentar algo potencialmente no futuro.
Por mais que provavelmente não seja palatável, o Prototype 2 espelha ao máximo como o WordPress já funciona e o TinyMCE faz muito, o que para mim o torna um caminho muito sensato a seguir.
Comentários muito úteis
Aqui estão meus sentimentos sobre esses dois protótipos:
Protótipo 1:
Prós:
Contras:
Protótipo 2:
Prós:
Contras
Com base neste protótipo experimental https://github.com/WordPress/gutenberg/pull/113 tentei trabalhar em uma abordagem mista, onde usamos o TinyMCE como um wrapper, mas renderizamos seu conteúdo com base nas mudanças de estado. Depois de alguma exploração, essa abordagem parece tentar recriar DraftJS ou ProseMirror. E não acho que seja a maneira certa de usar o TinyMCE.