semanticeditor è un plugin Django CMS per la modifica del testo. & Nbsp; Permette di modificare un sito web in un modo semantica, e poi assegnare presentazione e di layout dettagli per ogni sezione del testo. Esso supporta i layout delle colonne complessi utilizzando una semplice serie di controlli (nuova riga, nuova colonna).
Classi CSS sono memorizzati nel database, e possono essere limitate ad alcuni elementi (p, ul, li, ecc) e per alcuni modelli.
Questo progetto viene utilizzato come parte di Arkestra da Cardiff University School di Medicina, che ha concepito il sistema.
Panoramica
L'obiettivo è quello di avere un editor in cui il contenuto è semanticamente modificato, e sia il layout di colonna e lo stile sono applicati separatamente. Tuttavia, nel database viene memorizzato solo il HTML combinato. Quindi, abbiamo la seguente situazione:
Contenuto HTML viene memorizzato nel database di qualcosa di simile:
& Nbsp;
& Nbsp;
Titolo
& Nbsp;
Del testo
& Nbsp;
& Nbsp;
& Nbsp;
Qualche altro testo
& Nbsp;
Questo viene caricato in un editor personalizzato nel browser, che poi fa subito un po 'di chiamate AJAX al server per decomporsi in HTML semplificato:
Titolo
Del testo
Qualche altro testo
e una serie di oggetti che specificano presentazione ad esempio:
[
& nbsp; {'h1_1': ['fantasia']}, # stili per l'H1
& nbsp; {'P_1': ['nota', 'delimitato']}, # stili per la P
& Nbsp; {'newrow_h1_1': 'newRow'}, # specifica riga prima h1_1
& Nbsp; {'newrow_p_2': 'newcolum'},
]
Queste due parti sono poi modificati a parte, cioè l'utente non vede l'HTML combinato durante l'editing. Prima di salvare nel database, l'editor non un AJAX chiamata a unire le due parti. Si noti l'uso degli attributi 'id' sono aggiunti per aiutare a identificare quali informazioni styling appartiene - questi saranno rimossi prima di salvare nel database.
A seconda della GUI per modificare le informazioni di presentazione, l'utente può essere necessario premere un 'rinfrescare' il pulsante in modo che possano assegnare informazioni presentazione ai punti appena immesse e intestazioni, ecc paragrafi neo entrato e intestazioni non avrà ovviamente il 'id' attributi , così il codice HTML potrebbe dover essere aggiornati a questo punto e, in modo tutto ha un id.
Estensioni WYMeditor
L'applicazione Editor Semantic fornisce la propria versione di WYMeditor. Questo deriva dalle pelli / templates trovate in django-cms2, con le seguenti personalizzazioni:
& Nbsp; * nome della pelle cambiato da 'Django' a 'semanticeditor'. Ciò è necessario se si vuole consentire a due versioni differenti di WYMeditor sulla stessa pagina, uno utilizzando i normali controlli WYMeditor + CMS, un altro con i comandi completi 'semantico' editore, per lunghi pezzi di contenuto.
& Nbsp; * Il file skin.js rimuove il pannello 'classi', dal momento che questo non è necessario e viene sostituito da elementi dinamici.
& Nbsp; * skins.css - ha aggiunto styling per i controlli presentazione supplementare
& Nbsp; * è stato aggiunto un plugin WYMeditor denominata 'semantica'. Questo implementa maggior parte della logica lato client per questa applicazione.
& Nbsp; * il modello editorwidget.html è stato modificato. In particolare:
- La pelle è stato cambiato in 'semanticeditor'
- Una chiamata a wymeditor.semantic () è stato aggiunto per configurare il plugin.
& Nbsp; * un nuovo widget Django 'SemanticEditor' è stato creato che eredita dalla Django widget di 'WYMEditor' in django-cms2. Ciò è necessario in modo che:
- 'Semantica' plug-in il WYMeditor javascript file può essere aggiunto a Media
- Il nostro modello editorwdiget.html può essere utilizzato
Cosa c'è di nuovo in questa versione:
- Compatibilità con Django-cms 2.3. e 2.4
- Raggruppamento di classi CSS per categoria
- Tasto per aprire l'editor in una nuova scheda
- miglioramenti dell'interfaccia utente
- errore di battitura che causava il fallimento completo di plug-semantico sotto jQuery 1.4.2
- Altre correzioni di bug
Cosa c'è di nuovo nella versione 0.2.1:
- Risolto bug imballaggio (nessun modello o supporti statici)
Requisiti
- Python
- django-cms
I commenti non trovato