Squire è un editor di testo RTF HTML5 estremamente leggero, più adatto per i moduli di input ricchi di applicazioni e per la semplice creazione di documenti. Fornisce supporto per browser multipli ma evita deliberatamente la complessità del supporto dei browser meno recenti. Funziona meglio a partire da Opera 10, Firefox 3.5, Safari 4, Chrome 9 e IE8.
Squire non è pensato per creare e modificare pagine del sito Web WYSIWYG. Tuttavia, per molti rich text input e applicazioni web, Squire potrebbe essere proprio quello di cui hai bisogno. Fornisce la potenza senza il rigonfiamento. È anche MIT autorizzato per il riutilizzo flessibile.
In questo tutorial, ti mostrerò come scaricare Squire e compilare moduli di input di esempio. Se desideri vedere Squire in azione, visita la demo.
Il team di FastMail ha creato Squire per semplificare i requisiti dei propri editor webmail. FastMail è un'eccellente alternativa e-mail basata su cloud a Gmail: sono un utente FastMail quotidiano. Poiché è basato in Australia e opera in base a leggi diverse rispetto a quelle statunitensi, le protezioni della privacy sono leggermente migliorate per gli utenti di FastMail. Puoi leggere di più su questo qui: FastMail afferma che è privo di sorveglianza NSA.
Come il team di FastMail ha scritto sul proprio blog, in precedenza hanno utilizzato CKeditor:
Anche se non è una cattiva scelta, come la maggior parte degli altri editor là fuori è stato progettato per la creazione di siti Web, non per scrivere e-mail. Pertanto, inserendo semplicemente un'immagine per impostazione predefinita, è stata presentata una finestra di dialogo con tre schede e più opzioni di quelle che si potevano ritenere possibili ... Inoltre, disponeva di un proprio toolkit e framework UI, che avremmo dovuto personalizzare notevolmente per adattarsi al resto di la nuova interfaccia utente che stavamo costruendo; un dolore da mantenere.
Con la nostra attenzione alla velocità e alle prestazioni, eravamo anche preoccupati per le dimensioni del codice. La versione di CKEditor che usiamo per la nostra precedente (classica) UI, che include solo i plugin di cui abbiamo bisogno, è un download di 159 KB (quando compresso con gzip; non compresso è 441 KB). Questo è solo il codice, escludendo stili e immagini.
Hanno deciso di iniziare da zero e costruire Squire. A soli 11,5 KB di JavaScript dopo minification e gzip (34,7 KB non compressi) e senza dipendenze, Squire è estremamente leggero.
I risultati sono impressionanti. Il peso del codice combinato richiesto per caricare l'intero schermo di composizione, la libreria di base, il codice del modello di posta e contatti e tutto il codice dell'interfaccia utente per il rendering dell'intero schermo ora arriva a soli 149,4 KB (459,7 KB non compressi) -less rispetto a CKEditor da solo.
Squire non ha dipendenze. Non ci sono wrapper XHR, libreria di widget o overlay lightbox. Non c'è un'interfaccia utente per una barra degli strumenti, che elimina l'ingordigia di avere due toolkit UI caricati. È solo un semplice componente che può essere manipolato tramite JavaScript.
Squire manipola il DOM utilizzando le API di selezione e intervallo. Questo elimina comuni incompatibilità cross-browser. Di nuovo, dal blog FastMail:
Fare un editor di testo ricco è notoriamente difficile a causa del fatto che diversi browser sono estremamente incoerenti in quest'area. Le API sono state tutte introdotte da Microsoft nel periodo natalizio di IE e sono state quindi copiate dagli altri produttori in vari modi incompatibili ... la maggior parte degli editor di testo avanzato esegue un comando, quindi tenta di ripulire il disordine creato dal browser. Con Squire, evitiamo accuratamente questo.
La filosofia generale di Squire è quella di consentire al browser di fare tutto ciò che può (che sfortunatamente non è molto), ma assumere il controllo ovunque si allontani da ciò che è richiesto, o ci sono significative differenze tra i browser.
Installazione di Squire
Per prima cosa, visita la pagina Squire Github e clona o scarica il codice sorgente:
Secondo, copia il contenuto del file costruire/
directory nella tua applicazione.
Terzo, modifica il bloccare dentro
document.html
per aggiungere gli stili di default che vorresti usare per l'editor (o collegarli a un foglio di stile esterno).
Diamo un'occhiata all'applicazione demo inclusa con Squire. Quando si usa Squire, invece di a elemento, tu usi un
.
Nella demo che è:
Document.html
è una tela vuota con stili predefiniti e carica Squire:
Quando si usa Squire, si collega un listener di eventi all'evento load dell'iframe. Quando questo si attiva, puoi utilizzare un riferimento all'oggetto editor iframe.contentWindow.editor
. Ad esempio, l'iframe demo include:
onload = "top.editor = this.contentWindow.editor"
La demo ha due tipi di link per manipolare il contenuto all'interno di Squire. I comandi semplici che possono funzionare con qualsiasi testo selezionato hanno questo aspetto:
Grassetto
E i comandi complessi che richiedono un input utente aggiuntivo assomigliano a questo; aggiungono il prompt c:
Dimensione del font
Ecco come appare l'applicazione demo:
Il JavaScript nella parte superiore della pagina di dimostrazione ascolta eventuali clic su questi comandi di estensione. Se la classe prompt esiste, raccoglie più informazioni dall'utente:
Quindi, chiama l'editor di Squire con il comando e qualsiasi valore fornito dall'utente. Squire quindi applica il comando al testo attualmente selezionato:
editor [id] (valore);
Puoi saperne di più su Squire e vedere la sua documentazione completa sull'API nel Leggimi.
Ad esempio, aggiungiamo due comandi che leggono lo stato dell'editor di Squire. Aggiungeremo due link in fondo all'intestazione del comando della demo:
ottenere la selezione | ricevi un documento
Quando selezioni del testo e fai clic su di esso, la selezione comparirà nell'avviso come mostrato di seguito.
Esaminiamo la demo più esteticamente gradevole e la sua barra degli strumenti:
Il blocco di testa per questa pagina integra i fogli di stile per Bootstrap e uno chiamato Squire-UI
. Fornisce anche JavaScript per questo Squire-UI
.
possidente Offre anche HTML statico per una textarea nel corpoMa sul carico, il suo JQuery
$ (Document) .ready
la funzione sostituisce la statica#foo
textarea con la suaSquireUI
.La configurazione della barra degli strumenti è implementata con una configurazione abbastanza complessa di JQuery, AJAX, HTML5 e CSS. Sta caricando questa pagina HTML per visualizzare la maggior parte della barra degli strumenti: http://neilj.github.io/Squire/build/Squire-UI.html.
$ (div) .load (options.buildPath + 'Squire-UI.html', function () this.linkDrop = new Drop (target: $ ('# makeLink'). first () [0], contenuto: $ ('# drop-link'). html (), posizione: 'bottom center', openOn: 'click');Ecco un sottoinsieme del codice sorgente di Squire-UI.html in modo che tu possa vedere cosa viene caricato:
...Sarebbe stato bello se avessero fornito una barra degli strumenti Bootstrap semplificata nel codice di distribuzione come componente aggiuntivo, ma puoi sicuramente imparare da quello che hanno fatto nella loro demo sopra.
Spero che trovi Squire utile per le tue applicazioni. Non esitate a postare correzioni, domande o commenti qui sotto. Puoi anche raggiungermi su Twitter @reifman o mandarmi un'email direttamente.
Link correlati
- Squire: editor Rich Text di FastMail
- Pagina Dimostrazione Squire
- Squire Codebase su Github