Ok, j'ai donc créé un CMS principalement destiné aux Écoles Primaires. Il devient assez populaire en Nouvelle-Zélande, mais la seule chose que je déteste avec une passion est en grande partie sur la mauvaise qualité de la dans le navigateur des éditeurs WYSIWYG. J'ai été en utilisant KTML (faite par InterAKT qui a été acheté par Adobe il y a quelques années). À mon avis, cet éditeur fait beaucoup de grandes choses (retouche d'image/gestion, thumbnailing et un assez bon d'édition de contenu). Malheureusement, le temps a fait son méchant chemin avec ce produit et de nouveaux navigateurs commencent à briser les caractéristiques et généralement dégrader les performances de cet outil. C'est aussi assez effrayant de baser ma vie sur une défunte produit!
J'ai été à la chasse, en fait, j'ai régulièrement chasser autour pour voir si quelque chose a changé dans le WYSIWYG arène. La chose la plus proche que j'ai vu qui m'excite est le WYSIHAT cadre, mais ils ont décidé d'ignorer une jolie pertinentes de l'édition de paradigme que je vais décrire ci-dessous. C'est l'idée proposée pour mon éditeur, et je ne sais pas du tout les produits existants qui peuvent le faire correctement:
Droit, de sorte que le modèle traditionnel de l'édition, disons, d'une Page dans un CMS est de vous connecter à un 'back-end' et cliquez sur modifier dans la page. Ce sera ensuite de charger un autre écran avec l'éditeur et peut-être quelques autres domaines. Plus avancé de la CMS sera peut-être avoir plusieurs montage de boîtes à pour les différentes parties de la page. De toute façon, le gros problème avec cette façon de faire est que l'utilisateur est en train de modifier un document en dehors de la finale contexte, il apparaîtra dans. En termes simples, cela signifie que le modèle de page. Beaucoup de choses peuvent être mal, par exemple, le avec de la zone d'édition peut être différente de la largeur de la modèle de la zone. La hauteur est presque toujours fixe, parce que les éditeurs semblent toujours utiliser des IFRAMES pour la compatibilité descendante. Et il y a beaucoup d'autres renforce les fonctions dont je suis sûr que vous êtes tout à fait conscient de si vous êtes dans cette zone de développement.
Voici mon éditeur de l'utopie:
Vous cliquez sur "Modifier la Page": La page réelle (avec son modèle réel) s'affiche. Des parties de la page qui ont été marqués comme modifiable via un nom de classe. Vous cliquez sur l'un de ces domaines (dans mon cas, il avait juste être le grand "corps" de la zone au moyen du modèle) et une barre d'édition des gouttes vers le bas à partir du haut de l'écran avec toutes vos commandes standard (gras, italique, insérer une image, etc...). Iframes ne sont jamais utilisés, au lieu de cela, nous nous appuyons sur la définition de contentEditable de vrai sur le DIV en question. La version 2 de Firefox et IE6 peut aller loin, passons. Vous pouvez modifier la page, en sachant exactement à quoi il ressemblera quand vous l'enregistrez. Parce que tous les styles de ce modèle sont chargés, vos en-têtes de l'air correct, tout sera juste dandy. Est-ce un tel concept radical? Pourquoi sommes-nous toujours du contenu avec TinyMCE et que d'autres l'éditeur qui est trop embarrassant pour les utiliser parce qu'il sonne comme un gros mot!?
Regardons les choses en face:
Je suis un JavaScript novice. Je l'ai fait une fois jouer dans ce domaine à l'aide de Javascript Anthologie de SitePoint comme un guide. C'était assez cool expérience d'apprentissage, mais elles sont bien sûr utilisé les IFRAME pour leur rendre la vie plus facile. J'ai essayé d'aller un itinéraire différent et il suffit d'utiliser contentEditable et même essayé de contourner le natif d'édition de contenu routines (execCommand) et plutôt écrit mon propre. Elles ont travaillé, mais il y avait toujours des problèmes.
Maintenant, nous avons jQuery, et un peu de bibliothèques que les choses abstraites comme IE manque de support de la Fourchette. Je me demande, suis-je fou, ou est-ce réellement une bonne idée d'essayer de construire un éditeur autour de cette édition de paradigme à l'aide de jQuery et pertinentes plugins pour rendre le travail plus facile?
Mes questions:
- Où voulez-vous commencer?
- Quels sont les plugins savez-vous de qui aiderait l' la plupart des?
- Ça vaut le coup, ou est-il un magiques projet qui existe déjà que je devrais rejoindre?
- Quels sont les plus grands obstacles à surmonter dans un ce genre de projets?
- Suis-je fou?
J'espère que cette question a été posté sur le droit du conseil. J'ai pensé que c'est une question technique, car je suis désireux de savoir spécifique obstacles et les écueils à éviter et aussi si il est techniquement possible avec la technologie d'aujourd'hui.
Hâte d'entendre les peuples des pensées et des opinions.
Mise à JOUR
J'ai décidé que je vais avoir un aller à ce et va commencer un projet github pour ça quand j'ai quelque chose de cool à regarder. À partir de là, je serais tout à fait heureux pour toute aide que les gens ont à offrir. Il sera open source, bien sûr :)
Mise à JOUR 2
J'ai fait le projet et décrit les objectifs. Laissez-moi savoir si vous voulez vous joindre au groupe de projet en tant que contributeur, mais je vais commencer par les bases en premier donc il ya quelque chose pour commencer.
Voici le lien: http://github.com/brendon/SpikeEdit
Mise à jour 3
Wow! J'ai trouvé ce projet. Quelle bonne idée! Je reçois en contact avec lui pour voir si il a jamais eu n'importe où avec elle:
http://www.fluffy.co.uk/stediting
Mise à jour 4
Ok, je suis raisonnablement loin. Les problèmes les plus importants (comme chacun sait) comment garder le code généré dans un état raisonnable d'affaires. WYSIHAT semble prendre toute la part de non-IFRAME chose, donc je m'accroche pour voir dans quelle mesure ils se. Ils prennent l'approche de nettoyage le code à la fin de l'édition de cycle. Je pense qu'il devrait être nettoyé à la volée sinon, vous pouvez modifier vous-même dans un bourbier (je l'ai fait à quelques reprises). Quand j'ai le temps je vais enquêter sur une sorte d'homogénéisation moteur qui pourrait être relié à rendre le processus d'édition se comportent comme de la même manière que possible dans tous les navigateurs modernes.