Overblog Tous les blogs Top blogs Photographie
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Paris, photo, humeurs, un peu de HTML/CSS pour faire sérieux. Feinte innocence et vraie naïveté (ou vice-versa). Encore un blog qui agite ses petits bras en couinant "Viens me lire !"

Publicité

Ordre et méthode - 5 : Zi end !

détail du 'Dragon' de Max Escher

Note de novembre 2008 : cet article cumule les qualités : il est trop long, trop fouillé et pas à jour puisqu'il dépiaute du HTML de la version 1 d'OverBlog. En attendant une refonte complète j'ai au moins tenté de le rendre plus court et plus clair.

Ce fut un long pensum, cette fois on termine.

Le propos est d'utiliser Notepad++ sur nos fichiers HTML locaux pour

  1. retoucher la disposition du code HTML en jouant sur son indentation, ce qui permettra de…
  2. …comprendre son organisation et y circuler sans nous noyer. Ainsi…
  3. …nous pourrons enfin faire joujou à coup à peu près sûr.

Si vous avez déjà réindenté du code, cet article ne vous apprendra rien. L'exemple utilisé est ancien, de la version 1.94 d'OverBlog. Avec d'autres designs ou la version 2, les détails changent mais le principe reste le même.

Dernière précision : cet article est LONG (trèèèès long) à cause des nombreuses figures et parce que je vais dans le détail des manipulations, mais je ne le crois pas très difficile. Et puis, je ne saurai pas faire court avant qu'il y ait des dentistes pour la volaille…


1 - Récapitulation et remise en jambes

Si vous m'avez suivi jusqu'ici, il y a sur votre micro-ordinateur

  • outils : l'éditeur de texte NotePad++, un navigateur Web évidemment, et au moins un autre pour les comparaisons ;
  • fichiers HTML : au moins une copie d'une page de votre blog – probablement la page d'accueil – et, idéalement, une copie de chaque type de page possible. Je vous suggère de modifier les title de tous ces fichiers, par exemple en y ajoutant le mot  LOCAL  ou  TEST  – question évoquée dans le deuxième article au § 2.2.
  • fichiers non HTML : une copie de votre ou vos fichiers CSS et deux versions de sauvegarde de chacun de ces fichiers ; peut-être une copie de vos images de fond ; pour (très) bien faire, une copie de common.css et des autres fichiers que seul OB peut faire évoluer. Vous ne pouvez pas toucher à ces fichiers mais ils peuvent fournir la solution de certains problèmes tordus (voir "Les liens en fin d'article" pour un exemple).

Toutes ces copies locales permettent de travailler sans dépendre de la disponibilité d'OverBlog, et de n'y remonter que des modifications convenablement testées.

Quelques conseils avant de nous y mettre vraiment  :

  • Traitez complètement un fichier (par exemple celui de la page d'accueil) avant de passer aux suivants. Vous ne risquerez pas de vous perdre entre les fichiers, et de plus une grande partie du travail fait sur ce premier fichier pourra se recycler.
  • Si en cours de route vous vient une idée géniale de modification à tester de toute urgence (ça peut arriver), notez-la soigneusement pour plus tard mais n'essayez SURTOUT PAS de tout faire à la fois. L'urgence attendra.
  • En effet, nous ne voulons changer que la mise en page du code HTML et rien d'autre. À la fin de l'exercice, la page devra s'afficher EXACTEMENT comme au début.

Allons-y (Alonzo, si vous connaissez vos classiques).

Ouvrez le fichier HTML avec Notepad++. Dans le menu "Affichage", faites "Afficher tous les caractères", "Retour automatique à la ligne" (il y a aussi des boutons pour ça sur la barre d'outils – trouvez-les !) et enfin "Replier tous les blocs" (pas de bouton pour celui-là). Résultat (déjà vu dans le précédent article) :

Remarquez la mention des CR-LF ou LF (retour chariot-saut de ligne) à la fin des enregistrements (= des lignes de HTML). Quel intérêt ? Ce sont de bons repères visuels. Ils montrent, par exemple, que la ligne DOCTYPE, bien qu'affichée sur deux lignes d'écran, est contenue dans un seul enregistrement. C'est confirmé par la présence d'un espace entre les numéros 1 et 2 : ils sont bien des numéros d'enregistrement (du fichier) et pas de lignes (de l'écran).

Sans le retour automatique à la ligne, nous n'aurions vu que le début des enregistrements. Et sans l'affichage de tous les caractères, rien ne nous aurait indiqué qu'ils se poursuivaient au-delà du bord droit de l'écran – parce que, franchement, qui fait attention à la présence d'une barre de défilement horizontale en bas d'une fenêtre ? Morale : il est important de tout voir à l'écran pour ne rien négliger.

Progressons : dépliez l'élément html. Le niveau immédiatement inférieur dans la hiérarchie apparaît, il ne comporte que head et body. Nous avons assez trituré le head auparavant et le laisserons désormais tranquille. Dépliez le body. Résultat déjà vu :

Et ensuite :

Innovons : dépliez aussi le div main3 (ou autre) qui apparaît. Résultat :

L'organisation du fichier commence à sauter aux yeux :

  • le bloc html contient deux blocs : head et body. C'est vrai n'importe de quelle page HTML bien construite.
  • body ne contient que le div main3. À partir de là, on entre dans les choses propres à OverBlog.
  • main3, à son tour, se décompose en deux : la table dotée de l'id (identifiant unique, son nom en somme) MainTab, et un div anonyme (= sans identifiant), où vous avez peut-être reconnu le bandeau OverBlog affiché tout en bas des pages.

Rappel : main3 et MainTab sont des noms propres à certains designs, pas de panique s'ils s'appellent autrement chez vous.

2 - Premières retouches : présentation détaillée

Questions : on voit deux balises ouvrantes <div> pour une seule fermante </div>. Et où est passé le </head> de fermeture alors qu'on voit le </body> et le </html> ? Bonnes questions, les réponses arrivent.

Déplions le bandeau OverBlog :

Voilà le </div> qui manquait ! Voilà aussi un (petit) tas de choses sur lesquelles nous allons nous faire la main. Insérez un retour chariot (= tapez sur la touche Enter) aux endroits suivants :

  • avant chaque <a qui n'est pas déjà au début d'un enregistrement ;
  • avant l'avant-dernier </div> que nous venons de faire apparaître
  • et, pour faire bon poids, avant le </html> .

L'idée est de ne pas laisser sur une même ligne des balises de niveaux hiérarchiques différents. Résultat :

Maintenant, l'alignement des marges. Sélectionnez le contenu du div et aussi sa balise de fin (enregistrements 420 - 425 sur la figure). Faites tout glisser vers la gauche par plusieurs pressions sur Maj+Tab. Puis sélectionnez seulement le contenu du div (enregistrements 420 - 424) et faites-le glisser d'un cran vers la droite avec Tab.

Pour juger de l'effet produit, vous pouvez annuler l'affichage de tous les caractères et le retour automatique à la ligne, vous devriez voir ceci :

N'est-ce pas qu'on voit mieux qui contient qui ? Petit plaisir ultime, repliez le bandeau OB et regardez :

Cette fois les balises, au moins les plus élevées dans la hiérarchie, se répondent "harmonieusement". Jouez à plier et déplier pour vous en convaincre : quand un bloc est plié sa balise de fin est cachée dedans, quand il est déplié elle apparaît. Si vous voulez, rajoutez un commentaire tel que <--fin de main 3--> après le </div> de l'enregistrement 426, ça ne peut pas faire de mal.

Dernière remarque : on pourrait être puriste et vouloir mettre sur trois enregistrements successifs la balise <a (etc.) > qui ouvre un lien, puis le texte du lien, puis la balise de fermeture </a>. Mais si le texte du lien n'est pas très long, et même s'il contient d'autres balises, à quoi bon ? Notre but n'est que de gagner en lisibilité pour un œil humain.

Toute la suite obéit aux mêmes principes, et à ceux-là seulement :

  • si un élément HTML n'est pas trop long, le mettre sur un seul enregistrement ;
  • sinon, mettre sur des enregistrements isolés la balise de début et celle de fin, pour que le jeu de plier/déplier ne nous induise pas en erreur.
  • il n'est pas nécessaire de comprendre tout le code HTML que vous lisez ! Il suffit de savoir reconnaître qu'une balise est ouvrante <labalise (des trucs) > et qu'alors il lui faut la fermante qui correspond </labalise>, ou bien qu'elle est "auto-contenue" : <autrebalise (d'autres trucs) />. C'est le "/" qui fait la différence.
  • de toute manière, tant que vous ne faites qu'ajouter ou supprimer des retours chariot et des espaces, le fichier HTML reste identique pour le navigateur.

C'est simple et je souhaite que ça vous paraisse sensé. C'est juste "un peu"  long à mettre en œuvre…

Je pourrais vous lâcher là en vous indiquant que vous en savez assez pour continuer tout seul : ce serait vrai mais un peu cruel. Allez, je vous accompagne encore un peu…

3 - Mettre de l'ordre dans MainTab
3.1 - Haut et bas de page

Il faut maintenant passer à MainTab, le principal composant de main3.

Une table HTML (en très gros) se décompose d'abord en plusieurs lignes ("row", rangée) encadrées par <tr> et </tr> (tr = table row). Chaque ligne se décompose à son tour en une ou plusieurs cellules encadrées par <td> et </td> (td = table data), soit deux niveaux hiérarchiques d'un coup.

En dépliant les blocs au fur et à mesure de leur découverte, et en supprimant au passage les lignes vides, vous verrez apparaître un premier <tr> où il est question de top, puis sa balise fermante et le <tr> suivant. Arrêtez-vous là :

En procédant comme tout à l'heure, on arrive à :

Notez la symétrie des balises ouvrantes et femantes, notez aussi les deux commentaires qui encadrent le texte écrit par vous, pour l'isoler du texte "sacré" produit par OverBlog.

Manipulation analogue pour le pied de page : pour le confort, on replie le top désormais fini, on pose un signet (une pastille) à la ligne 434, et on passe de ceci…

… à cela :

Haut et bas, c'est fini ! On les replie.

3.2 - Corps de la page : premiers pas prudents

Pourquoi prudents ? Sur la figure précédente, le corps de la page est tout entier replié dans le modeste tr de la ligne 42, et il se termine au pied de page, en ligne 434 : ça fait presque 400 lignes !

Posons une pastille sur cette ligne 42, ajoutons un commentaire à tout hasard, et déplions :

Déplions chacun des deux td qui apparaissent (dans notre exemple, aux lignes 44 et 344 ; chez vous, il peut y en avoir entre un et trois selon le nombre de colonnes de modules) et seulement ceux-là ! sans quoi ça deviendra illisible. Supprimons les lignes vides, déplions leftnav, encore un peu de ménage dans les lignes vides et ça nous donne :

… où nous reconnaissons des noms évocateurs.

Si vous utilisez un autre design, la table est remplacée par un emboîtement de plusieurs div. Dépliez-les jusqu'à faire apparaître leftnav et les modules, d'une part, et content d'autre part.

 leftnav c'est la colonne de modules de gauche, rightnav (absente de l'exemple) la colonne de droite et content le contenu propre de la page, autrement dit les articles.

3.3 - Corps de la page : un module

Attaquons-nous à RightPart, module de texte libre. Déplions-le jusqu'à faire apparaître box-content :

La série de huit div intermédiaire entre box et box-content n'existe que dans les designs 100, elle permet un contrôle fin de l'encadrement des modules. Nous n'approfondirons pas la question ici ; remarquez seulement la série de huit balises fermantes qui correspond. Elle est suivie par la fermeture de box. Quant à la fermeture de box-content, elle est pour le moment cachée dans les lignes repliées. Autrement dit : le code est déjà proprement organisé, toujours ça de gagné.

On déplie box-content et attention les yeux :

Heureusement pour la longueur de la figure, il y a encore 40 lignes masquées ! On aperçoit le titre du module, suivi du texte proprement dit.

Notez que ce texte est prolongé par un div class="clear" utilitaire ajouté par OverBlog. Isolons-le sur une ligne et, comme tout à l'heure, marquons le début et la fin du texte par des commentaires.

Sélectionnons le texte ainsi délimité :

Pourquoi ? Pour le copier/coller dans un nouveau fichier, que j'ai appeléFRAGMENT - Rightpart.html qui sera tout prêt à resservir ensuite :

Pourquoi ce nom ?

  • "FRAGMENT" parce que ce n'est pas une page complète, qu'il ne faut pas la confondre avec les "LOCAL" déjà créés,
  • ".html" pour que ce bout de HTML, bien qu'incomplet, soit affiché comme du HTML par Notepad++, c'est tout de même moins déroutant que du texte pur,
  • et "RightPart", ben… restons simple.
3.4 - Corps de la page : le reste

Yapuka.

Plus qu'à faire la même chose pour l'éventuel autre module de texte libre et le module de liens : ce sont les seuls modules contenant du texte écrit par vous. Laissez les autres modules tranquilles. Pensez à créer les fichiers fragments correspondants.

De même, créez FRAGMENT - top.html et FRAGMENT - footer.html à partir du texte clairement repéré par les commentaires dont vous l'avez encadré.

Tant qu'on y est, dans le fichier correspondant à votre page d'accueil, mettez des commentaires analogues autour du texte du message d'accueil et créez le fichier fragment qui correspond.

Dernière touche : toujours dans ce fichier, mettez des commentaires autour du texte du premier article, mais il est cette fois inutile de créer un fragment.

Enfin, ouvrez le fichier dans votre navigateur :si vous avez proprement bossé, RIEN n'a changé.

Ça y est : vous avez toutes les pièces détachées de la page d'accueil de votre blog.

3.5 - Recyclage dans les autres fichiers locaux

On a presque terminé. Ouvrez maintenant dans Notepad++ TOUS les fichiers locaux. Là, on apprécie vraiment d'avoir des onglets… À titre indicatif, quand je fais ça chez moi, ça ressemble à ça :

Dans le fichier que vous venez de "peigner", repliez les colonnes de modules, le haut et le bas de page. Sélectionnez carrément tout le div id="#top" et recopiez-le dans tous les fichiers ouverts. Faites de même avec les colonnes de module et le pied de page. Évidemment, abstenez-vous de propager de la même manière le div id="#content" !

Pour la bonne règle, vérifiez au navigateur que rien n'a changé pour aucun fichier.

C'est fini, l'atelier local est prêt à servir.

4 - Comment on s'en sert ?

Le plus simple est de vous donner quelques exemples, non ?

Travaillons sur la page d'accueil : ouvrez-la dans le navigateur ainsi que dans Notepad++. Tant qu'on y est, ouvrez aussi custom.css dans l'éditeur, ça va forcément servir.

4.1 - Mettre au point le haut ou le bas de page

Tapez le texte qui vous convient au bon endroit, clairement repéré par les commentaires. Sauvegardez, rafraîchissez le navigateur, jugez du résultat, et recommencez jusqu'à ce que vous soyiez content. Quand c'est fait, enregistrez le texte mis au point dans le fichier fragment qui correspond. Le texte seulement : ni les commentaires d'encadrement, ni surtout le balisage d'emballage. Copiez-collez le fragment au bon endroit d'OverBlog, en utilisant le mode source de FCKedit. C'est tout !

4.2 - Mettre au point un module de texte libre

Ben… c'est pareil.

4.3 - Mettre au point le module de liens

En temps normal, il n'y a pas besoin de passer en local, les outils OB suffisent largement. Mais je voulais ajouter une partie en italiques, et ce n'est pas prévu dans le contrat. En travaillant sur le module de liens d'un fichier local, j'ai fini par déterminer le balisage convenable, qu'il a "suffi" (euphémisme) de copier/coller ensuite, ligne à ligne, dans le champ "Nom du lien" de l'écran OB – parce que ce champ peut recevoir aussi du balisage HTML, faites l'essai en ajoutant un tout simple <br /> dans un de vos liens.

4.4 - Mettre au point l'ordre des modules

Là, ça devient vraiment commode : au lieu de jongler dans tous les sens avec l'interface d'OverBlog et de payer vos hésitations par des temps de réponse… variables, affichez le squelette de la ou des colonnes de modules comme nous l'avons fait au § 3.2. Maintenant, déplacez les modules vous-même autant que vous voulez, y compris d'une colonne à l'autre. Toujours sauvegarder/rafraîchir pour se rendre compte, et annuler (Ctrl+Z) si ça cafouille.

Quand vous êtes au point, il n'y a rien à remonter sur OverBlog, et il faut toujours déplacer les modules avec l'interface d'administration, mais au moins vous savez où vous allez.

4.5 - Ajouter un nouveau module

Où se procurer le code source ? Ajoutez le module dans votre blog, affichez votre blog avec le nouveau module en place. Affichez le code source de la page, repérez le nouveau box, copiez tout son code et collez-le dans votre page locale, entre deux modules déjà présents. Et nous sommes ramenés au problème précédent.

4.6 - Mettre au point un article complexe

Tiens, celui-là par exemple…

Une de mes pages locales, reprise de l'affichage d'un article court, ne me sert qu'à ça. Au repos, son div class="contenuArticle" ne contient que les commentaires d'encadrement et une ligne de texte.

D'abord poser une pastille sur le commentaire de début, pour y revenir commodément, puis remplacer la ligne-bidon par le nouveau texte. Je le complète tranquillement : ajout des images (juste une ligne "image numéro tant", en fait – voir cet article au §8 pour une explication), ajout du JavaScript des "lire la suite", bref tout le toutim, et je juge du résultat aussi précisément qu'avec la prévisualisation d'OB.

Quand j'aurai terminé, je vais d'abord remonter les illustrations ( 17 en tout, sans compter celles reprises d'un précédent article ! ), copier/coller en mode source le HTML ainsi mis au point, rajouter les images avec le bouton approprié de FCKedit, et me préparer une tasse de thé.

4.7 - Ajouter un album photo

Encore un exemple vécu et récent.

D'abord ajouter le module "album photo" (cf § 4.5), puis afficher les nouvelles pages : le sommaire de l'album et une page quelconque. Sauvegarder ces deux pages en local, peigner le HTML comme je viens de le décrire, et me mettre au travail. Comprendre la structure du HTML, ajuster le CSS… en un petit après-midi c'était au point.

4.8 - Jouer avec du JavaScript

Alors là…

Le JavaScript, contrairement au HTML et au CSS, est un langage de programmation . Pas plus compliqué qu'un autre mais pas plus simple : on doit décrire pas à pas tout ce qu'on veut faire faire, pas seulement le résultat désiré – la programmation, ce n'est pas autre chose. Pour le mettre au point, il faut inévitablement tâtonner, faire afficher les points où l'on passe, les variables que l'on modifie. Le grand jeu, quoi – parfaitement impensable d'y jouer à même son "vrai" blog. Donc : travail local et café noir.

Un mot pour conclure

Pas fâché de boucler la série. J'aurais pu tout résumer en une seule phrase telle que : avec un bon éditeur de texte, tester les modifs sur des copies locales. Grrr ! Cinq pavés pour dire ça ? Du calme.

Pour un professionnel de la profession, cette phrase suffit largement en effet – et d'ailleurs il n'en a pas besoin car il travaille déjà comme ça.

Mais pour tous ceux qui ajustent leur CSS avec le bloc-notes Windows ou, pire encore, Word ? Qui patientent trente secondes (mini) après chaque changement parce que le serveur est chargé ce soir-là ? Qui perdent un article pour des raisons mystérieuses ?

J'ai voulu m'adresser à ceux-là, et je n'avais pas bien mesuré l'ampleur du domaine à couvrir : un peu d'éditeur, un peu de CSS, un peu de HTML en général, un peu de HTML OverBlog, un peu de méthode de travail, etc. Pas simple, je ne pouvais rien supposer connu.

Si cette série a rendu service à au moins un lecteur, je n'aurais pas tout à fait perdu ma peine. Espérons…


Toujours aussi recommandables :


Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
Tu devrais mettre les liens externe en "_blank" pour ne pas perdre ton site quand on va voir ailleur …
Répondre
A
<br /> Je me suis en effet posé la question un temps, puis j'ai préféré laisser le choix au lecteur et n'y ai plus pensé. Mais "nouveau site=nouvelle fenêtre" ne manque pas de logique, c'est une idée qui<br /> tombe au bon moment, en pleine saison de nettoyage des liens :-)<br /> Ps : je vois que ce comm figure sur un article de facture assez médiocre et, de plus, périmé : loué soit ton pudique silence...<br /> <br /> <br />
J
Bon...a priori le fil que je te donne en lien a été supprimé...j'attends une explication des modos OB, donc pour le moment tu ne pourras pas le consulter...j'espère qu'ils ont une bonne raison de l'avoir shooté en tout cas...biz.
Répondre
A
Je découvre tes deux comms après quelques jours d'absence : du caaaaaaalme, intrépide amazone ! :-D (mais je suis cependant très touché de ton geste). Bien possible que le fil ait été considéré comme publicité pour un blog, ce qui est un motif de suppression parfaitement licite. D'autant que,après réflexion sereine et avec l'expérience de la migration en v2, cette série d'articles a besoin d'être un peu actualisée-v2 et surtout réorganisée : il y des marches très abruptes dans tout ce que je raconte, des étapes fastidieuses que j'introduis trop tôt ... bref, des repoussoirs à néophytes que je dois éliminer( les repoussoirs, pas les néophytes ...). PS : je suis allé voir, apparemment le fil n'a pas été supprimé mais 1)il a seulement changé de numéro, il est désormais là 2) il a droit à une promotion dans les fils d'aide, 3) il m'a attiré des visiteurs ! Je ne vais plus savoir où me mettre ...
J
Et pour que, comme le dit Axi juste au dessus, ca aide pas mal de gens, je me suis permise de poster ans le forum OB un message de tutoriel, avec un lien vers chacun des articles de la série "ordre et méthode". Tu peux le consulter ici. Ca diminuera peut etre un peu les messages de bloggeurs sur le forum du type "au s'couuuuuuurs!!! mon blog est tout cassééééééé!!!"... Bises.
Répondre
A
Bon, un mot ici pour te dire que c'est impressionnant un article aussi détaillé, les conseils sont excellents. Bon, le public ciblé est assez délimité : ceux qui ont à tremper dans la gestion d'un site ou d'un blog et qui n'ont pas encore de bonnes pratiques pour le faire. Ça devrait donc aider pas mal de gens.
Répondre
A
"Impressionnant", comme tu y vas ! :-D Mais merci tout de même.Le raisonnement était :1 - j'ai commencé, donc je termine2 - le travail inutile est aussi fatigant que le travail utile, autant faire utile ou ne rien faire.2 - que je fasse long ou court, ce que j'explique est bateau pour des gens un peu habitués. Pour les autres : si je fais long, je les effraie,si je fais court je ne leur apprends rien et leur fais perdre leur temps.3 - tenant compte de ces 3 points, il ne restait plus qu'à faire long ................................
C
alors je vote en touche louche !
Répondre
A
C'est sympa mais ça ne me renseigne pas sur l'intérêt de mon topo ... ;-)
L
un mot : GASP !!!
Répondre
A
Weuuuhhhh lui, hé ... C'est long juste paskegnya des images partout, mais sans ça c'est plutôt doux pour les neurones ....Non ?