Génération automatique de numérotation, table des matières et références - comments Génération automatique de numérotation, table des matières et références 2006-05-26T16:58:35Z https://files.spip.org/Generation-automatique-de#comment386248 2006-05-26T16:58:35Z <p>Désolé pour le flood... petit bug chez moi.</p> Génération automatique de numérotation, table des matières et références 2006-05-26T16:45:12Z https://files.spip.org/Generation-automatique-de#comment386247 2006-05-26T16:45:12Z <p>Ca marche plutot pas mal, si ce n'est quelques petits bugs.</p> <p><strong>1er :</strong><br class="autobr" /> Probleme avec l'ordre des balises ul et li qui se chevauchent et qui font donc un code non standard et parfois maltraitent un peu le design de la page web.</p> <p>Faudrait modifier un peu le code mais je n'ai pas le temps pour l'instant...</p> <p><strong>2e :</strong><br class="autobr" /> C'est pas vraiment un bug mais il y a une balise ins dont je ne vois pas l'utilité ?</p> <p><strong>3e :</strong><br class="autobr" /> Pas non plus un bug dû à ce code mais il y a toujours un problème dû au code qui s'inclus dans un paragraphe généré par spip (p class=“spip”)</p> <p><strong>4e :</strong> <br class="autobr" /> Intertitres de niveaux différents, c'est bien mais du point de vue de l'accessibilité ça reste tous des titres de niveau h3 alors que ça devrait etre h3 puis h4 puis h5 puis h6.</p> <p>Voilà, quelques conseils pour améliorer ce code :)</p> Génération automatique de numérotation, table des matières et références 2006-05-26T16:44:57Z https://files.spip.org/Generation-automatique-de#comment386246 2006-05-26T16:44:57Z <p>Ca marche plutot pas mal, si ce n'est quelques petits bugs.</p> <p><strong>1er :</strong><br class="autobr" /> Probleme avec l'ordre des balises ul et li qui se chevauchent et qui font donc un code non standard et parfois maltraitent un peu le design de la page web.</p> <p>Faudrait modifier un peu le code mais je n'ai pas le temps pour l'instant...</p> <p><strong>2e :</strong><br class="autobr" /> C'est pas vraiment un bug mais il y a une balise ins dont je ne vois pas l'utilité ?</p> <p><strong>3e :</strong><br class="autobr" /> Pas non plus un bug dû à ce code mais il y a toujours un problème dû au code qui s'inclus dans un paragraphe généré par spip (p class=“spip”)</p> <p><strong>4e :</strong> <br class="autobr" /> Intertitres de niveaux différents, c'est bien mais du point de vue de l'accessibilité ça reste tous des titres de niveau h3 alors que ça devrait etre h3 puis h4 puis h5 puis h6.</p> <p>Voilà, quelques conseils pour améliorer ce code :)</p> Génération automatique de numérotation, table des matières et références 2006-05-26T16:43:54Z https://files.spip.org/Generation-automatique-de#comment386245 2006-05-26T16:43:54Z <p>Ca marche plutot pas mal, si ce n'est quelques petits bugs.</p> <p><strong>1er :</strong><br class="autobr" /> Probleme avec l'ordre des balises</p> <ul></ul> <p>et</p> <p>qui se chevauchent et qui font donc un code non standard et parfois maltraitent un peu le design de la page web.</p> <p>Faudrait modifier un peu le code mais je n'ai pas le temps pour l'instant...</p> <p><strong>2e :</strong><br class="autobr" /> C'est pas vraiment un bug mais il y a une balise <ins></ins> dont je ne vois pas l'utilité ?</p> <p><strong>3e :</strong><br class="autobr" /> Pas non plus un bug dû à ce code mais il y a toujours un problème dû au code qui s'inclus dans un paragraphe généré par spip</p> <p><strong>4e :</strong> <br class="autobr" /> Intertitres de niveaux différents, c'est bien mais du point de vue de l'accessibilité ça reste tous des titres de niveau h3 alors que ça devrait etre h3 puis h4 puis h5 puis h6.</p> <p>Voilà, quelques conseils pour améliorer ce code :)</p> Génération automatique de numérotation, table des matières et références 2006-04-20T14:22:40Z https://files.spip.org/Generation-automatique-de#comment386014 2006-04-20T14:22:40Z <p>Bonjour</p> <p>très bonne contrib, mais quand je place la “balise” #TABLEMATIERES au début de l'article (champ texte) tout le texte de l'article apparait souligné!!</p> <p>ceci disparaît quand je place la “balise” à la fin du texte ????</p> <p>mystère, qui peut m'aider<br class="autobr" /> merci</p> <p>Jean</p> Génération automatique de numérotation, table des matières et références 2006-01-28T14:01:31Z https://files.spip.org/Generation-automatique-de#comment385281 2006-01-28T14:01:31Z <p>Ca marche ! Et merci pour la rapidité de votre réponse.<br /> Il me reste juste un problème (je ne suis pas un champion des css) : tout le texte qui suit la balise #TABLEMATIERES se retrouve en souligné. Si vous pouvez encore m'aider ... <br /> JFD</p> Mes petites modifs à cette super contrib' ! 2006-01-27T21:02:59Z https://files.spip.org/Generation-automatique-de#comment385279 2006-01-27T21:02:59Z <p>Bravo pour cette contrib' très utile (à condition d'utiliser l'astuce des «trim», voir le <strong>message 6</strong>)...</p> <p>Pour ma part je viens de la mettre en «production» avec une petite modification. D'abord, il me paraissait plus logique que le raccourci pour un titre numéroté soit <code>{{{#</code> plutôt que <code>{{{*</code>, c'est plus compatible avec le système de puces hiérarchisées (-* pour les puces non numérotées et -# pour les puces numérotées). D'autre part, je voulais permettre à mes rédacteurs d'intégrer des titres numérotés (avec des #) et des titres non numérotés ou avec des numérotations personnelles genre a, b, c... (avec des *).</p> <p>Je suis ultra-débutant en php (et en programmation en général) ce qui m'a amené à faire les modifs suivantes:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>// on cherche les noms de section commençant par des * et # //j'ai rajouté le # dans l'expression régulière [\\*#]+ à la place de \\*+ $my_debut_intertitre=trim($debut_intertitre); //merci à fleg ! :o) $my_fin_intertitre=trim($fin_intertitre); $count = preg_match_all("(($my_debut_intertitre([\\*#]+)(.*?)(<(.*?)>)?$my_fin_intertitre))",$texte,$matches);</code></pre></div> <p>et plus bas:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>//on génère le titre et le numéros $numeros = ++$cnt[0]; //on teste si le(s) caractère(s) matché est # pour savoir si l'on affiche les //numéros avec le titre ou non (#->numéros affichés) if(preg_match("/#+/",$matches[2][$j])) {$titre = $numeros.' '.$titre;}</code></pre></div> <p>et encore plus bas:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> $numeros = $numeros.(++$cnt[$i]); //on génère le titre //on teste si le(s) caractère(s) matché est # pour savoir si l'on affiche les //numéros avec le titre ou non (#->numéros affichés) if(preg_match("/#+/",$matches[2][$j])) {$titre = $numeros.' '.$titre;}</code></pre></div> <p>La première modif permet de détecter les # comme les *; les deux modifs suivantes permettent de ne mettre la numérotation que si le raccourci contient #</p> <p>Compte tenu de l'intégration très sale de ma modif, il n'est pas conseillé —du tout— d'utiliser des # et des * dans le même article, car des numérotations étranges seraient à prévoir (des fois ça donne des trucs vraiment très drôles ! :o))</p> <p>Pour finir je trouvais plus propre que les titres soient de la forme <code><hx class="spip"></code> avec x>2 (comme l'écrit Triangle dans le <strong>message 5</strong>) donc voici ce que j'ai changé:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> //pour que les raccourcis soient remplacés par des headlines (<hx>) $css_debut_intertitre = "\n<h%num% class=\"spip\">"; $css_fin_intertitre = "</h%num%>\n";</code></pre></div> <p>et plus bas:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> //on ajoute 2 à $lastlevel pour avoir des <hx> qui commencent à <h3> et plus $mdebut_intertitre = str_replace('%num%',$lastlevel+2,$css_debut_intertitre); $mfin_intertitre = str_replace('%num%',$lastlevel+2,$css_fin_intertitre);</code></pre></div> <p>Merci encore pour cette belle contrib' !</p> > Génération automatique de numérotation, table des matières et références 2006-01-27T20:39:08Z https://files.spip.org/Generation-automatique-de#comment385278 2006-01-27T20:39:08Z <p>Très bonne idée ces trim, celà s'avère assez vite indispensable !</p> <p>Merci !</p> Génération automatique de numérotation, table des matières et références 2006-01-27T17:51:34Z https://files.spip.org/Generation-automatique-de#comment385274 2006-01-27T17:51:34Z <p>Non, avec le code fournit ici, la balise pour générer la table des matières doit être placée quelque part dans le texte de l'article et pas dans le squelette.</p> <p>James à produit un code différent qui permet de placer la balise n'importe où dans le squelette. Il y a une version <a href="http://trac.spip.org/trac/spip-zone/browser/_plugins_/ancres_intertitres" class="spip_out" rel='nofollow external'>là</a> mais je crois qu'elle ne marche qu'avec la version de dévelopement.</p> Génération automatique de numérotation, table des matières et références 2006-01-27T14:33:18Z https://files.spip.org/Generation-automatique-de#comment385272 2006-01-27T14:33:18Z <p>Bonjour,<br /> Cette contribution m'interresse bien, mais je n'arrive pas à l'installer correctement (j'utilise Windows XP et Spip V 1.8.2 e avec le squelette Epona). <br /> Dans mes articles, J'obtiens bien les différents niveaux de titres numérotés, mais je n'ai pas la table des matières (j'ai pourtant installé la balise #TABLEMATIERES dans mon squelette, et l'id tablematiere dans ma feuille de style).<br /> Quelqu'un pourrait-il m'aider ? D'avance merci. JFD</p> > Génération automatique de numérotation, table des matières et références 2005-09-06T08:13:54Z https://files.spip.org/Generation-automatique-de#comment383302 2005-09-06T08:13:54Z <p>il faut mettre la fonction <i>apres_propre</i> dans le fichier <strong>ecrire/mes_options.php3</strong> (à créer si nescessaire)</p> > Génération automatique de numérotation, table des matières et références 2005-09-06T06:50:12Z https://files.spip.org/Generation-automatique-de#comment383301 2005-09-06T06:50:12Z <p>Ce qui n'allait pas, c'est que je ne savais pas que le fichier mes_options.php3 devait aussi se trouver dans le répertoire ecrire !</p> <p>Pascal</p> > Génération automatique de numérotation, table des matières et références 2005-09-06T06:43:03Z https://files.spip.org/Generation-automatique-de#comment383300 2005-09-06T06:43:03Z <p>Bonjour,</p> <p>Je voudrais savoir savoir où il faut mettre le code:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>function apres_propre($texte) { $new_texte = table_des_matieres($texte); return $new_texte; }</code></pre></div> <p>Personnellement, je l'ai mis à la fin su fichier ecrire/inc_texte.php mais j'obtiens alors un message d'erreur me disant qu'il y a un appel à une fonction non définie.</p> <p>J'ai donc du oublier quelque chose.</p> <p>Merci d'avance</p> <p>Pascal</p> > Génération automatique de numérotation, table des matières et références 2005-08-26T08:55:04Z https://files.spip.org/Generation-automatique-de#comment383092 2005-08-26T08:55:04Z <p>Salut,<br class="autobr" /> Très bien cette contrib. <br class="autobr" /> La seule chose est que dans certains cas complexes (par ex une chapitre qui n'est composé<br class="autobr" /> que d'une liste énuméré, ou l'appel à des filtres qui changent un peu la mise en page), <br class="autobr" /> il y a des petits problèmes de titres de chapitres qui ne sont pas reconnus.<br class="autobr" /> Pour ma part, j'ai résolu ce problème en insérant les trim suivants:<br class="autobr" /> Je remplace la ligne:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>$count = preg_match_all("(($debut_intertitre(\\*+)(.*?)(<(.*?)>)?$fin_intertitre))",$texte,$matches);</code></pre></div> <p>par</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> $my_debut_intertitre=trim($debut_intertitre); $my_fin_intertitre=trim($fin_intertitre); $count = preg_match_all("(($my_debut_intertitre(\\*+)(.*?)(<(.*?)>)?$my_fin_intertitre))",$texte,$matches);</code></pre></div> <p>Si ça peut en aider certains.</p> <p>F.</p> > Proposition d'ajout d'une balise permettant de revenir à la table des matières 2005-07-28T01:11:17Z https://files.spip.org/Generation-automatique-de#comment382513 2005-07-28T01:11:17Z <p>Bonjour,<br class="manualbr" />personnellement, dans des articles longs, j'aime pouvoir revenir à la table des matières par un petit lien de retour vers celle-ci.</p> <p>À cette fin, j'ai donc modifier la fin de votre code de la manière suivante :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>//on place la table des matières dans le texte $table_ancre = '<a name="tablematieres"></a>'.$table; $texte = str_replace('#TABLEMATIERES',$table_ancre,$texte); //On remplace la balise de Retour à la table des matières $retour = '<div class="retourtable"><a href="#tablematieres">Retour à la table des matières</a></div>'; $texte = str_replace('#RETOUR',$retour,$texte); return $texte; }</code></pre></div> <p>En utilisant une nouvelle balise #RETOUR dans le texte de l'article, cette dernière est remplacée par un lien vers la table des matières. Le texte est dans une boite div avec l'attribut CSS class='retourtable'. On peut ainsi le faire s'afficher à droite si on le désire, et le masquer dans le cas d'une impression (si on utilise une feuille de style spécifique).</p> <p>Le texte est en français. Je suppose qu'il doit être possible de l'adapter à un squelette multilingue à l'aide des balises de langues, mais je ne sais pas si SPIP procède au remplacement des balises de langues avant ou après avoir appliqué le filtre.</p> <p>D'autre part, je n'ai pas encore regardé comment intégrer cette contrib dans la génération automatique de PDF (<a href="http://www.spip-contrib.net/Generation-amelioree-de-fichiers" class="spip_out" rel='nofollow external'>Génération améliorée de fichiers PDF</a>). Peut-être le plus simple consiste à écrire un second filtre qui au lieu de remplacer par des balises h3 avec des class CSS différentes, remplace par des balises h3, h4, h5... puisque FPDF ne gère que du code HTML et pas le CSS.</p> <p>Si vous avez une meilleure idée.</p> <p>Cordialement,</p> > Génération automatique de numérotation, table des matières et références 2005-05-14T09:59:09Z https://files.spip.org/Generation-automatique-de#comment381085 2005-05-14T09:59:09Z <p>Je viens d'installer cet contri, et je n'ai rencontré aucun problème ;-)<br class="autobr" /> Un grand merci pour le travail !!!</p> <p>==xtof</p> > Génération automatique de numérotation, table des matières et références 2005-04-10T15:38:29Z https://files.spip.org/Generation-automatique-de#comment380231 2005-04-10T15:38:29Z <p>c'est de la bidouille, mais cela marche pour être conforme avec w3c<br class="autobr" /> j'ai remplacé (en ayant aussi enlevé la balise ouvrante p class=“spip”):</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> $table .= "</li>\n</ul>";</code></pre></div> <p>par</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> $table .= "</li>\n</ul><p>";</code></pre></div> <p>le site <a href="http://infohound.net/tidy" class="spip_out" rel='nofollow external'>tidy online</a> m'a un peu aidé.</p> > Génération automatique de numérotation, table des matières et références 2005-04-10T15:37:26Z https://files.spip.org/Generation-automatique-de#comment380230 2005-04-10T15:37:26Z <p>c'est de la bidouille, mais cela marche pour être conforme avec w3c<br class="autobr" /> j'ai remplacé (en ayant aussi enlevé la balise ouvrante p class=“spip”):<br class="autobr" /> $table .= “</p> <p>\n</p> <p>”;<br class="autobr" /> par<br class="autobr" /> $table .= “</p> <p>\n</p> <p>”;</p> <p>le site <a href="http://infohound.net/tidy" class="spip_out" rel='nofollow external'>tidy online</a> m'a un peu aidé.</p> > Génération automatique de numérotation, table des matières et références 2005-04-08T15:37:58Z https://files.spip.org/Generation-automatique-de#comment380182 2005-04-08T15:37:58Z <p>Oui,</p> <p>pour l'histoire du ul, il faut remplacer enlever le <code><p class="spip"></code> avant <code><ul id='tablematiere'></code></p> <p>Pour l'histoire du</p> <p>, je comprend pas...</p> > Génération automatique de numérotation, table des matières et références 2005-04-08T14:38:41Z https://files.spip.org/Generation-automatique-de#comment380177 2005-04-08T14:38:41Z <p>Bonjour,<br class="autobr" /> tout d'abord, merci pour cette contribe vraiment sympa.<br class="autobr" /> juste une question.</p> <p>À priori l'encapsulation de la table de matière entraine une non conformité avec les exigences w3c. (problème avec la dernière balise fermante ul et celle de fermeture du paragraphe).</p> <p>J'ai essayé plusieurs modifs sans succés, d'autant plus que je ne vois pas en quoi le code généré est non conforme.</p> <p>quelqu'un a t il rencontré des problèmes similaires.</p> <p>merci encore.</p> > > Génération automatique de numerotation, table des matières et références 2005-03-08T10:31:43Z https://files.spip.org/Generation-automatique-de#comment379426 2005-03-08T10:31:43Z <p>Pour utiliser le fichier plugin:</p> <ol class="spip"><li> mettre le fichier à la racine du site</li><li> ajouter les lignes: <div class="precode"><pre dir="ltr" style="text-align: left;"><code>if(!file_exists(_$DIR_RESTREINT_ABS.'inc_version.php3')) { include(../plug_table_matiere.php); } else { include(./plug_table_matiere.php); }</code></pre></div></li><li> modifier apres_propre comme indiqué dans l'article.</li></ol> > > Attention, les plugins ont été retirés de la v. 1.8 !! 2005-03-07T16:23:35Z https://files.spip.org/Generation-automatique-de#comment379412 2005-03-07T16:23:35Z <p><strong>Il ne faut pas dire n'importe quoi non plus!</strong></p> <p>Ceci n'est pas un plugin, mais juste l'utilisation d'un point d'entrée. Cela marche très bien avec la 1.7.2 et marchera très bien avec la version 1.8 finale.</p> <p>Ce qui a été enlevé de la 1.8, c'est ce qui est décrit ici:<br class="autobr" /> <a href="http://spip-contrib.net/spikini/SystemeDePlugin" class="spip_url spip_out" rel='nofollow external'>http://spip-contrib.net/spikini/Sys...</a></p> > Attention, les plugins ont été retirés de la v. 1.8 !! 2005-03-07T15:48:29Z https://files.spip.org/Generation-automatique-de#comment379410 2005-03-07T15:48:29Z <p>Donc après la pr1, ceci ne marchera plus.</p> > Génération automatique de numerotation, table des matières et références 2005-03-01T18:08:13Z https://files.spip.org/Generation-automatique-de#comment379266 2005-03-01T18:08:13Z <p>Le fichier plugin est utilisable sans placer de filtre dans les squelettes et marche aussi du côté admin du site.</p>