Construire ses propres squelettes SPIP (cours n°8)

, par Patrice HARDOUIN

Avant de continuer le travail sur le design des pages article.html, rubrique.html... faisons une pause pour traiter de points somme toutes importants : le filtrage parental, les méta-tags et le référencement du site dans les moteurs de recherche.

Filtrage parental

Pour mettre en place une procédure de reconnaissance du site par les systèmes de contrôle parentaux, rien de tels que les fichiers RDF de la W3C.

Il suffit de suivre la procédure indiquée ici (générateur automatique de fichier RDF) : http://www.icra.org/label/generator/.

Pour mettre tous vos oeufs dans le même panier, vous placerez le fichier labels.rdf.xml généré à l’adresse ci-dessus dans le répertoire /squelettes/labels.rdf.xml.

Ensuite, vous placerez l’appel à ce fichier dans l’en-tête /squelettes/inc-biohead.html.

Notre appel généré est le suivant (ici il est donné corrigé pour aller chercher le fichier labels.rdf.xml dans le bon répertoire) :

[(#REM) appel au fichier d'étiquetage ICRA a inserer juste apres ; http://www.icra.fr ]
<link rel="meta" href="#URL_SITE_SPIP/[(#CHEMIN{labels.rdf.xml}|direction_css)]" type="application/rdf+xml" title="ICRA labels" />

<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://biotechno.fr" r (n 0 s 0 v 0 l 0 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 1) gen true for "http://www.biotechno.fr" r (n 0 s 0 v 0 l 0 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 1))' />

Nous pouvons vérifier la bonne interprétation de ce fichier RDF par un simple clic sur le lien http://www.icra.org/cgi-bin/rdf-tes....

Meta-tags et référencement du site

Dans le but de pouvoir référencer efficacement les articles produits dans SPIP, nous allons compléter automatiquement les métadonnées de chaque page du site.

Des explications complémentaires sont disponibles sur : http://openweb.eu.org/articles/dubl... et http://www.bibl.ulaval.ca/DublinCor....

Afin de faire cesser les mails et remarques critiques sur la liste des meta-tags suivante, je tiens à signaler qu’il n’est pas du tout dommageable pour le référencement sur les moteurs de recherche d’avoir "trop" de méta-tags. Ceux qui ne seront pas utiles ne seront tout simplement pas utilisés. L’avantage de ces méta-tags c’est qu’ils vont permettre au contenu d’être automatiquement référencé en tant que document XML (pour des outils propres au développeur, et pas uniquement les moteurs de recherche web grand public). Et c’est bien le but de SPIP : produire de la documentation ou du contenu qui ne sera véritablement efficace que si on le référence correctement.

Voici un exemple de fichier /squelettes/inc-biohead.html compatible quelle que soit la page affichée (sommaire, article, rubrique...) :

#CACHE{86400}
[(#REM)Meta quelles que soient les pages visitées]
[<meta http-equiv="Content-Type" content="text/html; charset=(#CHARSET)" />]
<meta http-equiv="Content-Style-Type" content="text/css" />
[<meta http-equiv="Content-Language" content="(#LANG)" />]
[<meta name="reply-to" content="(#EMAIL_WEBMASTER|antispam)" />]
<meta name="rating" content="General" />
[(#REM) modifier la categorie avec celle correspondant a votre site]
<meta name="category" content="Education" />
<meta name="distribution" content="global" />
<meta name="revisit-after" content="7 days" />
[<meta name="author" lang="#LANG" content="(#NOM_SITE_SPIP|textebrut|attribut_html)" />]
[<meta name="copyright" content="(#NOM_SITE_SPIP|textebrut|attribut_html)" />]
<meta name="expires" content="never" />
<meta name="generator" content="Bluefish 1.0.7"/>
[(#REM) completer ici avec les mots-cles decrivants le site, remplacer tout le [(#NOM_SITE_SPIP|textebrut|attribut_html)] par vos mots-cles ]
<meta name="keywords" lang="#LANG" content="[(#NOM_SITE_SPIP|textebrut|attribut_html)]" />
[(#REM) Lien vers l'icone destinee a la barre de bookmarks ]
[<link rel="shortcut icon" type="images/x-icon" href="(#CHEMIN{images/favicon.ico})" />]
[(#REM) Lien vers le flux RSS du site ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="#URL_PAGE{backend}" />
[(#REM) version textuelle du site (pour les navigateurs en braille)]
<link rel="alternate" title="Version texte" href="#URL_SITE_SPIP/oo" media="aural, braille, tty" />
[(#REM) Feuille de style par defaut pour le code genere par SPIP ]
<link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_spip_style.css}|direction_css)]" type="text/css" media="all" />
[(#REM) Feuille de style CSS pour l'affichage du site a l'ecran ]
<link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage.css}|direction_css)]" type="text/css" media="projection, screen, tv" />
[(#REM) Feuille de style CSS pour l'impression ]
<link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_impression.css}|direction_css)]" type="text/css" media="print" />






<link rel="copyright"  title="Licence Creative Commons" href="http://creativecommons.org/licenses/by-sa/2.0/" /> 
<link rel="toc"        href="#URL_PAGE{plan}" title="<:plan_site:>" /> 
[(#REM) Dublin core]
<link rel="schema.DC"      href="http://purl.org/dc/elements/1.1/" /> 
<meta name="DC.Type" content="text" /> 
<meta name="DC.Format" content="text/html" /> 
[<meta name="DC.Language" scheme="RFC3066" content="(#LANG)" />] 
<meta name="DC.Rights" content="Licence Creative Commons Share Alike http://creativecommons.org/licenses/by-sa/2.0/" /> 
[<meta name="DC.Publisher" content="(#NOM_SITE_SPIP|textebrut)" />] 
<meta name="DC.Audience.educationLevel" content="student, teatcher" />
[<meta name="DC.Source" content="(#URL_SITE_SPIP|abs_url)" />]

[(#REM)Meta pour les ARTICLES]
<BOUCLE_article_en_cours(ARTICLES){id_article}>
	[<base href="(#URL_ARTICLE|abs_url)" />]
	[<meta name="DC.Relation.references" content="(#URL_SITE|abs_url)" />]
	[<meta name="DC.Relation.requires" content="(#URL_SITE|abs_url)" />]
	[<meta name="DC.Identifier" content="(#URL_ARTICLE|abs_url)" />]
	[<meta name="DC.Title" lang="#LANG" content="(#TITRE|textebrut|supprimer_numero)" />] 
	[<meta name="DC.Subject" lang="#LANG" content="(#CHAPO|textebrut|supprimer_numero)" />]
	[<meta name="DC.Description" lang="#LANG" content="(#INTRODUCTION|textebrut|couper{150})" />]
	<B_auteurs2>
	<meta name="DC.Creator" content="<BOUCLE_auteurs2(AUTEURS){id_article}{"; "}>#NOM, [mailto:(#EMAIL|antispam)]</BOUCLE_auteurs2>" />
	</B_auteurs2>
	[<meta name="DC.Date.issued" scheme="W3CDTF" content="(#DATE|affdate{'Y-m-d'})" />] 
	[<meta name="DC.Date.dateCopyrighted" scheme="W3CDTF" content="(#DATE|affdate{'Y-m-d'})" />]
	[<meta name="DC.Date.dateSubmitted" scheme="W3CDTF" content="(#DATE_REDAC|affdate{'Y-m-d'})" />] 
	[<meta name="DC.Date.created" scheme="W3CDTF" content="(#DATE_REDAC|affdate{'Y-m-d'})" />]
	[<meta name="DC.Date.modified" scheme="W3CDTF" content="(#DATE_MODIF|affdate{'Y-m-d'})" />]
	[<meta name="description" content="(#INTRODUCTION|textebrut|couper{150})" />]
	[<meta name="author" lang="#LANG" content="(#LESAUTEURS|textebrut)" />]
	[<meta name="Date-Creation-yyyymmdd" content="(#DATE|affdate{'Ymd'})" />]
	[<meta name="Date-Revision-yyyymmdd" content="(#DATE_MODIF|affdate{'Ymd'})" />]
	[(#REM) syndication]
	<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="#URL_SITE_SPIP/spip.php?rubrique#ID_RUBRIQUE" />
</BOUCLE_article_en_cours>

[(#REM)Meta pour les RUBRIQUES]
<BOUCLE_rubrique_en_cours(RUBRIQUES){id_rubrique}>
	[<base href="(#URL_RUBRIQUE|abs_url)" />]
	[<meta name="DC.Identifier" content="(#URL_RUBRIQUE|abs_url)" />] 
	[<meta name="DC.Title" lang="#LANG" content="(#TITRE|textebrut|supprimer_numero)" />] 
	[<meta name="DC.Subject" lang="#LANG" content="(#TITRE|textebrut|supprimer_numero)" />]
	[<meta name="DC.Description" lang="#LANG" content="(#INTRODUCTION|textebrut|couper{150})" />]
	[<meta name="DC.Creator" content="mailto:(#EMAIL_WEBMASTER|antispam)" />]
	<BOUCLE_dernier_article1(ARTICLES){!par date}{id_rubrique}{0,1}>
		[<meta name="Date-Creation-yyyymmdd" content="(#DATE|affdate{'Ymd'})" />]
	</BOUCLE_dernier_article1>
	<BOUCLE_dernier_modif1(ARTICLES){!par date_modif}{id_rubrique}{0,1}>
		[<meta name="Date-Revision-yyyymmdd" content="(#DATE_MODIF|affdate{'Ymd'})" />]
	</BOUCLE_dernier_modif1>
	[<meta name="description" content="(#INTRODUCTION|textebrut|couper{150})" />]
	[(#REM) syndication]
	<link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="#URL_SITE_SPIP/backend.php3?id_rubrique=#ID_RUBRIQUE" />
</BOUCLE_rubrique_en_cours>

[(#REM)Meta pour les non-RUBRIQUES et non-ARTICLES : plan...]
[<meta name="DC.Relation.references" content="(#URL_SITE_SPIP|abs_url)" />]
[<meta name="DC.Relation.requires" content="(#URL_SITE_SPIP|abs_url)" />]
<BOUCLE_dernier_article(ARTICLES){!par date}{0,1}>
[<meta name="Date-Creation-yyyymmdd" content="(#DATE|affdate{'Ymd'})" />]
</BOUCLE_dernier_article>
<BOUCLE_dernier_modif(ARTICLES){!par date_modif}{0,1}>
[<meta name="Date-Revision-yyyymmdd" content="(#DATE_MODIF|affdate{'Ymd'})" />]
</BOUCLE_dernier_modif>
[<meta name="DC.Identifier" content="(#URL_SITE_SPIP|abs_url)" />] 
[<meta name="DC.Title" lang="#LANG" content="(#NOM_SITE_SPIP|textebrut)" />] 
[<meta name="DC.Subject" lang="#LANG" content="(#NOM_SITE_SPIP|textebrut)" />]
[<meta name="DC.Description" lang="#LANG" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
[<meta name="DC.Creator" content="mailto:(#EMAIL_WEBMASTER|antispam)" />]
<//B_rubrique_en_cours>
<//B_article_en_cours>



[(#REM) Balise permettant aux plugins d'inserer des appels javascript ou css ]
#INSERT_HEAD





[(#REM)
	Entete standard de toutes les pages ; les elements specifiques
	(title, description) figurent dans le squelette article.html
]
[(#REM) Preciser le charset ]
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />

[(#REM) Fierement fabrique avec SPIP ]
<meta name="generator" content="Bluefish 1.0.7"/>

[(#REM) Lien vers l'icone destinee a la barre de bookmarks ]
[<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />]

[(#REM) Lien vers le flux RSS du site ]
<link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="#URL_PAGE{backend}" />

[(#REM) Feuille de style par defaut pour le code genere par SPIP ]
<link rel="stylesheet" href="[(#CHEMIN{css/bio_spip_style.css}|direction_css)]" type="text/css" media="all" />

[(#REM) Feuille de style CSS pour l'affichage du site a l'ecran ]
<link rel="stylesheet" href="[(#CHEMIN{css/bio_habillage.css}|direction_css)]" type="text/css" media="projection, screen, tv" />

[(#REM) Feuille de style CSS pour l'impression ]
<link rel="stylesheet" href="[(#CHEMIN{css/bio_impression.css}|direction_css)]" type="text/css" media="print" />

[(#REM) appel au fichier d'étiquetage ICRA a inserer juste apres ; http://www.icra.fr ]
<link rel="meta" href="#URL_SITE_SPIP/[(#CHEMIN{labels.rdf.xml}|direction_css)]" type="application/rdf+xml" title="ICRA labels" />

<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://biotechno.fr" r (n 0 s 0 v 0 l 0 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 1) gen true for "http://www.biotechno.fr" r (n 0 s 0 v 0 l 0 oa 0 ob 0 oc 0 od 0 oe 0 of 0 og 0 oh 0 c 1))' />



[(#REM) correctifs MSIE]
<!--[if gte IE 5.0]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_gte_IE_5.css}|direction_css)]" type="text/css" media="all" /><![endif]-->
<!--[if gte IE 5.5000]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_gte_IE_5_5.css}|direction_css)]" type="text/css" media="all" /><![endif]-->
<!--[if gte IE 6]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_gte_IE_6.css}|direction_css)]" type="text/css" media="all" /><![endif]-->
<!--[if lt IE 6]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_lt_IE_6.css}|direction_css)]" type="text/css" media="all" /><![endif]-->
<!--[if lt IE 7]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_lt_IE_7.css}|direction_css)]" type="text/css" media="all" /><![endif]-->
<!--[if IE 5.0]><link rel="stylesheet" href="#URL_SITE_SPIP/[(#CHEMIN{css/bio_habillage_IE_5.css}|direction_css)]" type="text/css" media="all" /><![endif]-->

Améliorer le référencement Google : Plugin Site-Map

Tout d’abord, il faut enregistrer son site sur http://www.google.com/webmasters/si....

Puis on installe le plugin disponible sur la Zone Spip-contrib : Google Site Map.

P.-S.

J’arrête là les tutoriels sur l’utilisation de SPIP car je n’ai plus le temps matériel de les gérer. J’ai décidé d’utiliser SarkaSPIP même si celui-ci ne me convient pas tout à fait (pas encore assez respectueux des standards, trop de DIVs dans les squelettes, pas complètement compatible avec tous les navigateurs CSS...) mais c’est le plus efficace des squelettes développés actuellement disponible et gageons qu’il mûrira pour corriger les défauts cité ci-dessus.