Squire gebruiken, een lichtgewicht HTML5 Rich Text Editor

Wat je gaat creëren

Wat is Squire?

Squire is een uiterst lichte HTML5-rich text-editor die het best geschikt is voor de rijke invoerformulieren van uw applicaties en voor eenvoudige documentcreatie. Het biedt ondersteuning voor meerdere browsers, maar voorkomt opzettelijk de complexiteit van het ondersteunen van oudere browsers. Het werkt het beste vanaf Opera 10, Firefox 3.5, Safari 4, Chrome 9 en IE8.

Squire is niet bedoeld voor het maken en bewerken van WYSIWYG-webpagina's. Voor veel rich-textinvoer en webtoepassingsdoeleinden is Squire misschien precies wat u nodig hebt. Het levert de kracht zonder de bloat. Het is ook MIT-licentie voor flexibel hergebruik.

In deze zelfstudie laat ik je zien hoe je Squire download en er voorbeeldinvoervormen mee kunt maken. Als je Squire in actie wilt zien, bezoek dan de demo.

Waar komt Squire vandaan?

Het FastMail-team heeft Squire gebouwd om de vereisten voor de webmaileditor te vereenvoudigen. FastMail is een uitstekend e-mailalternatief in de cloud voor Gmail: ik ben een dagelijkse FastMail-gebruiker. Omdat het in Australië is gevestigd en onder andere wetten werkt dan in de Verenigde Staten, zijn er enigszins verbeterde privacybescherming voor FastMail-gebruikers. U kunt hier meer over lezen: FastMail zegt dat het vrij is van NSA-bewaking.

Zoals het FastMail-team op hun blog schreef, gebruikten ze eerder CKeditor:

Hoewel het geen slechte keuze was, zoals de meeste andere editors, was het bedoeld voor het maken van websites en niet voor het schrijven van e-mails. Als zodanig presenteerde simpelweg het standaard invoegen van een afbeelding een dialoog met drie tabbladen en meer opties dan je voor mogelijk hield ... Het kwam ook met zijn eigen UI-toolkit en -raamwerk, die we enorm moesten aanpassen om in te passen in de rest van de nieuwe gebruikersinterface die we aan het bouwen waren; een pijn om te onderhouden.
Met onze focus op snelheid en prestaties waren we ook bezorgd over de codeafmeting. De versie van CKEditor die we gebruiken voor onze vorige (klassieke) gebruikersinterface, die alleen de plug-ins bevat die we nodig hebben, is een download van 159 KB (wanneer gzipped; ongecomprimeerd is dit 441 KB). Dat is alleen de code, met uitzondering van stijlen en afbeeldingen.

Ze besloten om helemaal opnieuw te beginnen en Squire te bouwen. Met slechts 11,5 KB JavaScript na minificatie en gzip (ongecomprimeerd 34,7 KB) en zonder afhankelijkheden, is Squire extreem licht. 

De resultaten zijn indrukwekkend. Het gecombineerde codegewicht dat vereist is om hun gehele samenstellingsscherm, basisbibliotheek, e-mail en contactenmodelcode en alle UI-code te laden om het volledige scherm te renderen, komt nu slechts uit op 149,4 KB (459,7 KB niet-gecomprimeerd), tenzij CKEditor alleen.

Squire heeft geen afhankelijkheden. Er is geen XHR-wrapper, widgetbibliotheek of lightbox-overlays. Er is geen gebruikersinterface voor een werkbalk, waardoor de druk van het laden van twee UI-toolkits wordt geëlimineerd. Het is gewoon een simpel

Maar bij het laden, zijn JQuery $ (Document) .ready functie vervangt de statische #foo textarea met zijn SquireUI.

  

De werkbalkconfiguratie is geïmplementeerd met een vrij complexe configuratie van JQuery, AJAX, HTML5 en CSS. Het laadt deze HTML-pagina om het grootste deel van de werkbalk weer te geven: 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], inhoud: $ ('# drop-link'). html (), positie: 'bottom center', openOn: 'click');

Hier is een subset van de broncode voor Squire-UI.html, zodat je kunt zien wat er wordt geladen:

...

Het zou leuk geweest zijn als ze een vereenvoudigde Bootstrap-werkbalk in de distributiecode als een add-on hadden verstrekt, maar je kunt zeker leren van wat ze in hun eigen demo hierboven hebben gedaan.

Ik hoop dat je Squire nuttig vindt voor je eigen toepassingen. Aarzel niet om correcties, vragen of opmerkingen hieronder te plaatsen. Je kunt me ook bereiken via Twitter @reifman of mij rechtstreeks een e-mail sturen.

Gerelateerde Links