Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[Résolu] Rassembler plusieurs pages HTML en une seule


Messages recommandés

Posté(e)

Bonsoir à tous,

soit une page HTML (appelons là index.htm), contenant plusieurs liens pointant vers d'autres pages (x.htm, y.htm, etc...).

Je souhaiterais pouvoir faire une seule page index.htm contenant toutes ces pages, mais sous formes de sections, avec les liens pointant maintenant vers ces sections ((par ex. #x, #y...)...

Excusez-moi par avance si je n'emploie pas les bon termes techniques, mais je ne suis pas un "pro" de l'édition web ;)

Pouvez-vous m'indiquer comment procéder ?

Merci par avance.

  • Modérateurs
Posté(e)

Bonsoir Pilou,

 

J'ai déplacé ton sujet dans la section Programmation, où il a toute sa place ;)

 

En théorie, la chose est simple, il suffit d'utiliser des « ancres », et je t'en décrirai le fonctionnement plus bas. Mais auparavant, il va te falloir regrouper harmonieusement les codes de toutes tes pages HTML en un code unique correctement structuré.

 

Tu sais qu'une page HTML est composée de deux blocs, l'entête (head) et le corps (body). Très succinctement,

<html>
<head>
<title>Titre de ma page</title>
</head>
<body>
Contenu de ma page
</body>
</html>

Donc ta page unique (regroupant les autres) aura elle aussi cette forme finale, avec une seule entête et un seul corps.

 

L'entête de la page globale aura un titre unique, ça c'est plutôt facile. Pour la feuille de style,

  • si toutes tes pages se référaient à une feuille de style unique (externe = fichier CSS, ou interne = recopiée dans chaque entête), pas de problème,
  • sinon, si les feuilles de style étaient externes, dans l'entête globale il va falloir toutes les appeler (ou si elles étaient internes, il va falloir toutes les regrouper, en une ou plusieurs balises <style>). Mais attention, l'ensemble devra être cohérent. Par exemple, pour une classe nommée "maclasse" présente dans deux pages avec des attributs différents, lors du regroupement le mixage pourra être "douloureux" : pour chaque attribut, c'est la dernière valeur qui primera sur les autres. Exemple,
    <style type="text/css">
    .maclasse {background-color:black;color:white} /* venant de la page index */
    [blablabla]
    .maclasse {background-color:white} /* venant de la page suite*/
    </style>

    Finalement, la couleur de fond sera le blanc, et la couleur de la police sera le blanc (car pas redéfinie dans la seconde définition) : on n'y verra pas grand-chose…

Le corps de la page globale, très simplement, sera la somme de tous les corps de pages, dans l'ordre où tu veux qu'elles s'enchaînent sur ce gigantesque "drap de lit".

 

Quant aux ancres, c'est très exactement l'équivalent des "signets" de Word (si tu connais). On pose une étiquette à chaque endroit où l'on veut pouvoir aboutir, et on appelle cette étiquette à chaque endroit d'où l'on veut l'atteindre.

Exemple "complet"

<html>
<head>
<title>Titre de ma page globale</title>
<style type="text/css">
/* ici toutes les clauses de style */
</style>
</head>
<body>
<h1><a name="top">Titre de ma page globale</a></h1>
/* ici le corps de la page index */
Sommaire :
<a href="#suite1">Aller au premier sujet</a>
<a href="#suite2">Aller au second sujet</a>
<a href="#suite3">Aller au 3ème sujet</a>
<h2><a name="suite1">Premier sujet</a></h2>
/* ici le corps de la 1ère ex-page suite */
<a href="#top">Retour haut de page</a>
<h2><a name="suite2">Second sujet</a></h2>
/* ici le corps de la 2nde ex-page suite */
<a href="#top">Retour haut de page</a>
<h2><a name="suite3">3ème sujet</a></h2>
/* ici le corps de la 3ème ex-page suite */
<a href="#top">Retour haut de page</a>
</body>
</html>

Poser une ancre, c'est utiliser la balise <a> avec l'attribut name qui la qualifiera.

Atteindre cette ancre, c'est adresser cette ancre en tant que cible avec l'attribut href qui la désignera.

Dans l'exemple ci-dessus,

  • "top" est le haut de page, où l'on pourra retourner à partir de la fin de chaque ex-page,
  • "suite1", "suite2, "suite3" sont les hauts des ex-pages suites, qu'on pourra respectivement atteindre à partir du sommaire dans l'ex-page index.

Pour conclure, la difficulté ne se trouve pas où l'on croyait. Les adressages sont faciles à réaliser, mais le regroupement des entêtes peut provoquer quelques effets collatéraux si on ne disposait pas au départ d'une feuille de style générale applicable à toutes les ex-pages…

 

icon13.gif Néanmoins, ton idée de regrouper les pages ne me semble pas pertinente. Elle aboutit à un code HTML gigantesque, qui sera plus difficile à manipuler lorsque tu voudras y effectuer des mises à jour

 

:deal: Pour plus de détails, tu peux consulter Définir des ancres et des liens à des ancres (SELFHTML)

Posté(e)

Bonjour Dylav,

je crois que là je ne peux avoir meilleur réponse ;)

Je te remercie pour cette description détaillée !

Je vais étudier la question ce soir, là je file au boulot ;)

Mille mercis !

 

Pascal

Posté(e)

Bonjour à nouveau Dylav,

en fait mon but était d'imprimer tout le contenu d'un fichier d'aide "CHM"...

Au début j'ai "décompilé" le fichier avec 7-ZIP (donc plusieurs pages HTML...), mais par la suite j'ai trouvé un shareware en version d'essai qui fait ça en pdf. Le seul incovénient c'est qu'il marque une banière sur chaque page, mais c pas bien génant.

Merci encore!

  • Modérateurs
Posté(e)

Le problème semble avoir trouvé sa solution.

Ainsi, afin de signaler clairement à ceux qui ont un problème similaire qu'ils ont peut-être une solution toute trouvée (s'ils pensent à utiliser la fonction Recherche en indiquant le mot-clé "résolu" auparavant), et afin de signaler aux autres contributeurs qu'il est inutile de continuer à se creuser la tête sur le problème (à moins d'avoir des suppléments d'informations à apporter pour mieux comprendre ce qui posait problème), un modérateur a préfixé le titre du topic avec la mention [résolu].

Merci, à l'avenir, de bien vouloir prendre à votre charge cette mise à jour quand vous estimez que votre problème a été résolu de manière satisfaisante (et parallèlement, si le problème a disparu "mystérieusement", inutile d'induire les gens en erreur ;-)) Pour cela, modifier.gif votre premier message :-)

Posté(e)

Bonsoir Dylav,

oui c vrai, j'aurais du mettre "résolu" dans mon sujet...

Et pour ceux que ça interresse, voici le programme que j'ai utilisé : CHM To PDF Converter - Convert Compiled help Files to PDF Format

Petit bémol, c'est que la mise en page du fichier généré est un peu différente du fichier d'origine...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...