![]() |
![]() |
![]() |
Dans les Coulisses de CityDesk Dans cet article, le fondateur de Fog Creek Software Joel Spolsky dévoile les coulisses de ce que CityDesk fait et comment il fonctionne. Cet article est destiné aux développeurs web expérimentés et aux programmeurs. Préambule La première chose à regarder quand vous lancez CityDesk est une fenêtre révélant l'arborescence de votre site. ![]()
Elle ressemble à un groupe de dossiers, avec des articles, des fichiers HTML et des images dedans -- et oui, c'est bien ça. Mais tout cet ensemble est stocké en un seul fichier unique sur votre disque dur en utilisant Microsoft Jet, exactement dans le même format que Microsoft Access. Si vous avez Access sur votre système, vous pouvez ouvrir un fichier CityDesk et le décortiquer (peep under the hood ?) La manière la plus simple d'utiliser CityDesk est d'extraire votre site existant, avec tous ses fichiers et documents, à l'intérieur de cette fenêtre. Vous pouvez les réarranger, éditer les fichiers HTML dans un éditeur WYSIWIG ou éditer n'importe quel fichier en utilisant n'importe quel éditeur que vous avez installé. Voilà à quoi ressemble l'éditeur HTML intégré. ![]() Il est complètement WYSIWYG et très facile à utiliser pour des personnes habituées à utiliser un traitement de texte. Il y a un vérificateur d'orthographe, une fonction "glisser-déposer", un compteur de mots, etc. Insérer une image est aussi simple que de la glisser à un endroit. Un clic de souris et votre site est publié. CityDesk copie les fichiers en utilisant FTP ou la copie de fichier sur n'importe quel serveur que vous spécifiez. Après qu'un fichier ait été copié une fois, il ne le recopiera plus à nouveau à moins qu'il n'ait changé. (Vous pouvez outrepasser cette optimisation et republier l'intégralité du site en cochant une boîte). Bien sûr, si vous le désirez, vous pourriez utiliser CityDesk comme un utilitaire très cher de transfert de fichier. Mais laissez-moi d'abord vous dévoiler ce qui rend le concept CityDesk des milliards de fois plus puissant. Un concept simple Si vous avez un site web avec plus de 3 pages, vous avez toutes les chances que la plupart de ces pages se ressemblent. Pensez à un site populaire d'actualités comme CNN. Cliquez sur n'importe quel article, et vous obtenez une page qui est à 90% la même que n'importe quel autre article. Les pages pourraient toutes contenir les mêmes éléments en haut et en bas, les mêmes polices de caractère et les mêmes couleurs. La seule chose qui les différencie sont les mots au milieu. Au coeur de CityDesk existe un concept très simple : le Masque. Au lieu de créer des milliers de pages avec la même mise en page et des contenus différents, vous créez un masque avec un trou en son milieu où vous pouvez coller différents contenus pour créer chacune des pages. A quoi ressemblent les masques CityDesk ? A rien d'inhabituel. Ce sont juste des pages HTML qui contiennent des gardiens de place au lieu du texte actuel. Voilà un masque simple et grossier : <html><head> {$ .headline$} <h1>{$.headline $}</h1> {$ .body $} </body> </html> Comme vous pouvez le constate les gardiens de places sont encadrés par des accolades {$ and $}. Maintenant imaginez que vous ayez une base de données simple qui ressemble à ça :
En remplaçant chacune des lignes de cette base de données à l'intérieur du masque, nous pourrions générer trois pages web complètes et joliment mises en page. (Bien sûr, si le masque est horrible, les pages le seraient aussi, mais vous savez ce que je veux dire par là !) Voilà à quoi cela ressemble pour éditer un masque dans CityDesk : ![]() Même si CityDesk a un éditeur WYSIWYG simple, pour obtenir exactement ce que vous voulez beaucoup de concepteurs les éditeront en Vue HTML : ![]() En fait nous nous attendons à ce que les concepteurs de masque travaillent avec leurs éditeurs HTML favoris et nous leur facilitons la tâche : ![]() Table des Matières Automatique La première chose dont a besoin chaque site est une table des matières -- quelquechose qui liste les articles disponibles et les relient à elle. Dans CityDesk vous pouvez créer une table des matières à l'endroit où vous voulez en écrivant un petit peu de code simple CityScript : ici un exemple : <html> Il y a une petite boucle ici encadrée par foreach et next. Ce qui veut dire en anglais "pour chaque article qui est dans le dossier appelé news, imprime le titre, et place un lien vers l'article lui-même". Si le dossier "news" contenait trois articles, cela produirait une table des matières comme suit :
Au cas où vous effacez, renommez, bougez ou ajoutez un article, la table des matières sera automatiquement mise à jour. Vous pouvez changer la mise en page de la table des matières en modifiant le HTML. Une fonctionnalité populaire est d'inclure un message teaser après le nom de l'article. Il y a une place pour entrer cela dans l'éditeur d'article. Ensuite votre table des matières ressemblera à cela :
Vous pouvez avoir autant de tables des matières que vous voulez dans tout votre site. En modifiant les conditions de la boucle foreach, vous pouvez vraiment faire des choses intéressantes, par exemple :
Si vous voulez une table des matières qui liste "les 10 premiers articles du dossier opinions écrit par John Q. Editor en 2002, classée par ordre alphabétique et excluant tout article qui serait destiné uniquement aux utilisateurs expérimentés, c'est possible. Vous le préféreriez cuit ou frit La puissance des masques dépend du contenu que vous cuisinez dedans. La plupart des éditeurs HTML comme FrontPage ont des masques, mais une fois que vous mettez du contenu dedans, la page est figée. Le contenu est cuit dedans. Si vous voulez changez le masque sur des centaines de pages différentes, vous devez éditer des centaines de pages différentes. Les systèmes de gestion de contenu puissants font frire les masques à chaque fois qu'un utilisateur réclame une page. Le contenu de la page et le masque ne sont pas assemblés jusqu'à ce que quelqu'un réclame la page. Le problème de cette approche est que cela ne peut être fait à moins que vous n'installiez un logiciel spécial sur le serveur web, quelquechose que peu de maître-toiliers peuvent faire. La majorité d'entre nous ont un site web quelquepart avec un accès FTP. Ainsi CityDesk adopte une approche intermédiaire. Nous gardons le contenu dans une base de données, séparée des masques, jusqu'à ce que vous appuyez sur le bouton Publish danc CityDesk. A cet instant, CityDesk remplace le contenu à l'intérieur des masques et télécharge tous les fichiers modifidés sur votre serveur web. Rien sur le serveur La raison pour laquelle CityDesk est si pratique pour tant de personnes est que vous n'avez rien de spécial à placer sur le serveur web. CityDesk utilise juste le protocole FTP pour copier les fichiers vers un répertoire que vous choisissez. Quand vous avez fini, votre site Web ressemble et fonctionne exactement comme un site web où vous auriez laborieusement codé à la main toutes les pages. Chaque fois que vous publiez, CityDesk a une fonctionnalité de Prévisualisation qui vous laisse voir exactement à quoi votre site web ressemble avant de le propulser dans le monde. Si votre serveur web ne supporte pas le protocole FTP, CityDesk pourra, à la demande, créer une copie complète de votre site web entier sur votre disque dur (ou sur n'importe quel disque connecté sur le réseau). Ensuite vous pouvez utiliser d'autres mécanismes (cvs, scp, rdist, sneaker-net or carrier-pigeon) pour placer les fichiers en cours sur le serveur. Quand CityDesk copie votre site vers le serveur, il publie aussi un fichier XML avec une liste des fichiers et de leurs "checksum" (Qu'est-ce qu'un checksum ? ). La prochaine fois que vous essayez de publier, CityDesk peut rapidement savoir exactement lesquels de ces fichiers ont changé. Ainsi si vous aviez changé une toute petite chose dans un fichier, ce fichier seulement doit être copié sur le serveur Web. Facile La philosophie de CityDesk est qu'il devrait être super
facile pour des débutants de mettre à jour leurs
sites web en utilisant CityDesk. Une fois que vous avez
verrouillé le mode concepteur CityDesk, il y a seulement
quatre boutons sur la barre d'outils. Même l'écrivain le plus hostile aux ordinateurs qui pourrait être rebuté par un programme plein de fonctionnalités, peut se laisser former sur comment ajouter, éditer ou enlever des articles. Editer des articles devient aussi facile qu'utiliser un traitement de texte standard. Ajouter des images est une simple question de "glisser déposer". Fonctionnalités Avancées Parce que dans CityDesk, tout réside dans une base de données, vous pouvez pratiquer toutes sortes de choses avec cette gestion de contenu. Ci-après rapidement une liste de fonctionnalités :
CityDesk is a trademark of Fog Creek Software, Inc. Windows, FrontPage, Jet, and Access are trademarks of Microsoft Corp. All other trademarks belong to their respective holders. ![]() ![]()
|