2011-01-07 11 views
45

Oltre ai nuovi Google Docs, tutti gli altri editor di testo RTF web-based WYSIWYG (ckeditor, tinymce, vecchi documenti Google) che ho visto sono basati su contenteditable o designMode. Personalmente, odio usare questi editor. Non ci vuole molta formattazione o copia/incolla prima che l'intera esperienza si trasformi in un esercizio di frustrazione. I ritorni improvvisamente iniziare a ricevere con interlinea doppia, formattazione involontaria viene introdotto attraverso incolla da altre fonti HTML, undo delle/redo di sono completamente rotti, formattazione diventa terribilmente difficile da controllare, eccQualsiasi editor di testo RTF WYSIWYG che non usi HTML (contenteditable o designMode), a la (la nuova) Google Docs?

Credo che questo sia uno dei motivi per Google Docs ha introdotto il suo motore di formattazione non HTML molto più vincolato. Esiste una libreria open source che fornisce qualcosa di simile? Grazie in anticipo.

+11

Hah, qualcuno ha estratto il codice (offuscato) e ha creato una versione funzionante di Kix su github: https://github.com/benjamn/kix-standalone (fonte: http://stackoverflow.com/questions/ 3315520/google-closure-editor-wysiwyg/4709155 # 4709155) –

+1

Mi sono imbattuto in questo post del blog (http://bergie.iki.fi/blog/introducing_the_midgard_create_user_interface/) che menziona Aloha Editor (http: // aloha-editor .org /). Credo che usi contentEditable, ma sembra che si stiano allontanando da quello? Vale la pena dare un'occhiata. –

+0

riferimento alla risposta a [http://stackoverflow.com/questions/4358901/how-to-implement-google-doc-like-text-editor/9625160#9625160][1] [1 ]: http://stackoverflow.com/questions/4358901/how-to-implement-google-doc-like-text-editor/9625160#9625160 – 12345

risposta

17

Si potrebbe iniziare con il Ace editor (precedentemente Bespin e Skywriter). È finalizzato alla modifica del codice, quindi manca la formattazione e altre funzionalità, ma potresti trovare un utile nucleo di funzionalità su cui basare un editor di testo RTF.

In azione: http://ajaxorg.github.com/ace/build/editor.html

Codice: https://github.com/ajaxorg/ace

Aggiornamento: Come @theazureshadow sottolinea, l'editor corrente non usa canvas come ho inizialmente riferito. Bespin ha utilizzato canvas prima di fondersi con Ace, che utilizza il DOM. Sbirciando brevemente sotto il cofano, non sembra che stiano usando contentEditable o designMode, però. (C'è uno <textarea /> che segue il cursore intorno e si estende e div per mostrare il testo - un mucchio di JS personalizzato per collegarlo tutti insieme, mi sembra.)

Da ace.ajax.org> Storia:

Bespin è iniziato come parte di Mozilla Labs e si è basata sul tag <canvas>, mentre l'asso è la componente editor del Cloud9 IDE e sta usando il DOM per il rendering.

+1

Attualmente l'editor Ace non utilizza la tela. Non so se sia mai successo. Per confermare questo, usa questi comandi in una web inspector 'document.querySelectorAll ('. Ace_line')' e 'document.querySelectorAll ('canvas')' nell'URL: http://ace.ajax.org/build/kitchen -sink.html – theazureshadow

+0

@theazureshadow - In effetti sembra che le mie informazioni non fossero aggiornate. Ho aggiornato la risposta - grazie per avermi mantenuto onesto! – peteorpeter

+0

Devi mantenere buone le risposte! :) – theazureshadow

2

Hai ragione: è molto più bello.

Esiste una libreria open source che fornisce [un editor di documenti che non utilizza il browser per gestire il testo modificabile, utilizzando invece una superficie di modifica personalizzata e un motore di layout, interamente in JavaScript].

Dubbioso.

In primo luogo, l'editor è soprannominato "Kix". Non è non-HTML, ma non usa contentEditable perché fa schifo per quello che stanno facendo, come dici tu. Quello che fa è difficile e voluminoso fare bene, e sono sicuro che ci sono voluti un bel po 'di sforzi per crearlo.

Detto questo, perché Google open source Kix? Mina il loro sforzo di essere il tuo hub di documenti e significherebbe che devono fare un sacco di lavoro aggiuntivo per separare Kix dal resto di Google Documenti in un modo che non lo rende difficile da integrare. Il vantaggio? Non molto, visto che i progetti open source sponsorizzati da Google difficilmente vedranno un supporto sotto forma di partecipazione degli sviluppatori per migliorarlo.

Come per qualcuno che crea una libreria per farlo, sono dubbi che succederà nell'open source. Solitamente i progetti open source che rappresentano un'impresa significativa sono sponsorizzati dall'università o dalla società, e non è probabile in questo caso per le ragioni sopra esposte. Poi di nuovo, se uno sviluppatore ha un prurito per questo, non si sa dove potrebbe andare ...

+1

Sono confuso dalla tua "risposta". Non ho mai suggerito che pensavo che Google avesse un motivo convincente per l'open source Kix. Neanch'io proposi di pensare che un'implementazione open source dovesse sicuramente esistere. Stavo semplicemente chiedendo nella possibilità che qualcosa esista. Non fraintendermi - non sarei sorpreso se non fosse così. – Yang

+1

Piuttosto che dare un "No" breve e insoddisfacente, ho pensato di tirare un po 'di ragionamento sul perché non penso che ce ne sarà uno. Non ho dedotto che tu pensavi che uno dovrebbe sicuramente esistere, quindi le mie scuse se la mia risposta venisse fuori che ho fatto. – coreyward

+0

A meno che non venga visualizzato un concorrente serio nel prossimo futuro, l'approccio migliore sarebbe provare e correggere un editor esistente. TinyMCE migliora con ogni versione ed è molto configurabile. Il mio problema principale con contenteditable è la mancanza di interesse da parte dei contributori di Webkit nel correggere i difetti che riguardano il contenteditable + webkit. –

0

C'è HTE, sfortunatamente è lento e manca un sacco di funzionalità di selezione di base.