L'objectif de cette scéance de TP est de découvrir le langage HTML au travers de la création d'un mini site web. Vous pouvez travailler indifféremment sous Windows ou Linux. Si vous travaillez sur votre machine personnelle assurez vous que l'IDE VSCode (Integrated Development Environnment) est bien installé.

Pour comprendre l'utilisation des balises HTML étudiées dans ce TP, les liens étiquetés en vert vous renvoient vers la page correspondante dans le tutoriel du W3C consacré à HTML (https://www.w3schools.com/html).

1. Préparation

Avant toute chose, organisez proprement vos dossiers et fichiers afin de pouvoir facilement retrouver le travail effecué dans les différentes séances de TPs du cours Techonologies du Web. Pour cela procédez comme suit :

  1. Dans votre répertoire personnel, créez un répertoire TW (commande mkdir TW dans un terminal)
  2. Positionnez vous dans ce répertoire TW (commande cd TW dans le terminal)
  3. Créez un répertoire TP1 dans le répertoire TW (commande mkdir TP1 dans le terminal)
  4. Positionnez vous dans ce répertoire TP1 (commande cd TP1 dans le terminal)

C'est dans ce répertoire TW/TP1 que vous enregistrerez ensuite tous les travaux effectués au cours de cette 1ère séance de TP.

2. Validation et correction de pages HTML

La validation d'une page web est importante. Cela permet d'être sûr que la structure de la page est correcte et qu'il n'y a pas de fautes, c'est-à-dire que la syntaxe et les règles du langage HTML5 sont bien respectées.

Dans ce premier exercice, vous allez effectuer ce travail de vérification sur le code d'un mini site existant

  1. Téléchargez le fichier exercice1.zip et désarchivez son contenu dans votre répertoire TP1. Un répertoire exercice1 y est créé, ce repertoire contient deux fichiers HTML (page1.html et page2.html), ainsi que deux images.
  2. Visualisez ces pages dans votre navigateur.
  3. Vérifiez que page1.html et page2.html sont valides. Pour cela, vous utiliserez le validateur HTML5 "nu" du W3C accessible à l'URL https://validator.w3.org/nu.

    validation d'un document HTML
    Utilisation du service de validation du W3C.
  4. Corrigez le code de ces pages jusqu'à ce qu'elles soient toutes les deux valides.

3. Création d'un mini site personnel

Vous aller créer un mini site Web personnel présentant votre CV, votre emploi du temps et une galerie de photographies personnelles. Dans ce TP, nous nous focaliserons uniquement sur la description et la structuration du contenu du site à l'aide du langage HTML (Hyper Text Markup Language), sans nous soucier de son apparence sur laquelle nous travaillerons lors de séances ultérieures consacrées au langage CSS (Cascading Style Sheets). La vidéo ci-dessous vous montre le site que vous allez essayer de produire aujourd'hui.

3.1: Création d'une page CV

Pour la création du site, utilisez l'IDE VS Code. Vous trouverez quelques éléments de documentation sur la page FAQ VScode consacrée à l'édition de code HTML.

  1. Créez un fichier HTML portant le nom monCV.html. Ce fichier sera composé des éléments suivants :
    • une partie en tête (balise head) dans laquelle vous définirez le titre de votre page (balise title),
    • une partie corps (balise body),

  2. Créez à l'intérieur du corps de votre page un en-tête constitué d'un titre, par exemple Site Personnel de XXX, et d'un sous titre, par exemple Mon CV. Pour distinguer le titre du sous titre vous pourrez utiliser les balises h1 h2.
    Il peut être intéressant, en particulier pour la définition de l'apparence du site avec les CSS, d'imbriquer ces éléments à l'intérieur d'une balise sémantique header.

  3. Vous allez maintenant créer une section regroupant les informations d'état civil (Nom, Prénom, date de naissance, ...) ainsi qu'une photographie personnelle. Délimitez celle-ci par une balise section et insérez à l'intérieur de cet élément les éléments suivants:
    • un titre, Etat Civil, mis en évidence par une balise h2,
    • votre photographie à l'aide d'une balise img.

      Si vous ne disposez pas encore d'une photographie personnelle sous forme numérique vous pouvez, en attendant, utiliser l'image ci-dessous que vous pourrez enregistrer sur votre compte par un clic droit avec la souris puis sélection de l'item "Enregistrer l'image sous..." du menu contextuel.

    • Vos informations état civil (Nom, Prénom, date de naissance, ...) que vous placerez chacune à l'intérieur d'un élément p.

  4. Sur le même modèle que la section Etat Civil ajoutez les sections suivantes :
    • Diplômes
    • Compétences Informatiques
    • Expériences professionnelles
    • Activités et loisirs

  5. Complétez au moins l'une des sections précédentes en listant ses éléments sous forme de liste à puces (balise ul), ou de liste numérotée ((balise ol) ou de liste de descriptions (balise dl). Vous ferez les autres ultérieurement après avoir réalisé les exercices suivants.

  6. Vérifiez que votre code est conforme à la norme HTML5 du W3C. Pour cela utilisez le service de validation du W3C (https://validator.w3.org/nu) vu dans l'exercice 2.

3.2 : Tables HTML

Créez un second fichier HTML, agenda.html, en respectant la même structure que le fichier monCV.html, à savoir:

  1. un élément header contenant un titre (Site Personnel de XXX) et un sous titre (Emploi du Temps).

  2. un élément section présentant votre emploi du temps hebdomadaire sous la forme d'un tableau HTML (balise table).

    Ce tableau comportera une colonne par jour et une ligne par tranche horaire de cours, et devra contenir des cours s'étalant sur au moins deux horaires comme dans l'exemple ci dessous.

    Exemple de table pour l'emploi du temps
    Exemple de l'utilisation d'une table HTML pour un emploi du temps.

    Inutile d'essayer de présenter votre emploi du temps réel, contentez vous de reproduire l'emploi du temps ci dessus. Pour définir des cellules de tableau s'étendant sur plusieurs lignes ou plusieurs colonnes, utilisez les attributs rowspan et colspan de la balise td. Par ailleurs, pour matérialiser les bords des cases de votre tableau, vous utiliserez un attribut border=1 pour votre balise table. Cet attribut a vocation à disparaître avec HTML5, nous verrons par la suite comment le remplacer par un style CSS comme le préconise le W3C.

  3. Comme dans l'exercice 1, pensez à vérifier que votre HTML est correct avec le service de validation du W3C.
Pour en savoir plus sur les tables le tutorial de MDN (Mozilla Developpers Network) :

3.3 Liens hypertextes

Dans cette partie, vous allez mettre en place dans votre site différents types de liens hypertextes (balise a) :

  1. Des liens vers des ressources d'autres sites. Par exemple, dans la table présentant votre emploi du temps vous pourrez mettre un lien entre le nom de matière et le site web de celle-ci si elle existe. Ainsi pour le cours d'Algorithmique, vous pouvez ainsi pointer vers la page moodle du cours Algorithmique du M2CCI de l'ufr IM2AG.

    Lien hypertexte vers un document externe.
  2. Des liens entre resources de votre site. Pour cela, mettez en place des liens de navigation qui permettent de passer d'une page de votre site à l'autre, c'est à dire un lien de la page monCV.html vers la page agenda.html et inversement. Ces liens étant destinés à effectuer une navigation rapide dans votre site, il est habituel de les faire apparaître en haut de page (pour vous sous l'élément header contenant le titre et sous titre de votre page). HTML5 permet de leur associer une sémantique de navigation en les plaçant à l'intérieur d'un élément nav, cela facilitera ensuite la mise en forme de ces éléments avec les styles CSS.

  3. Des liens internes à un document. Par exemple, pour pouvoir accéder rapidement aux différents éléments de votre CV, vous mettrez en place un sommaire dans votre page monCV.html.

    Utilisation d'un lien interne (ancre) pour naviguer dans une page.

    Pour effectuer une navigation rapide dans votre CV comme sur la figure ci-dessus, procédez comme suit:

    • ajoutez un attribut id) à l'élement titre des différentes sections de votre CV,
    • après l'en tête de votre CV (élément header) ajoutez un élément section contenant :
      • Sommaire dans un element titre (h3)
      • une liste de liens vers les différentes sections

3.4 Image réactive

Il s'agit de doter votre mini site d'une page d'accueil (index.html) présentant un menu permettant de choisir entre :

  1. La page d'accueil de l'ufr IM2AG,
  2. La page d'accueil du serveur moodle de l'ufr IM2AG (le placard électronique),
  3. Votre CV.

Ce menu est réalisé à l'aide d'une image réactive.

Fig.2 - La page d'accueil avec une image réactive.

Affichage de l'image

Récupérez l'image contenue dans ce fichier menu.png (vous pouvez procéder comme indiqué sur la figure ci-dessous) et créez une page index.html contenant:

  • le titre Menu,
  • cette image.
Sauvegarder l'image menu.png.

Rendre l'image réactive

Rendez l'image réactive (voir balise map) en définissant trois zones associées aux URL suivantes :

  • https://im2ag.univ-grenoble-alpes.fr/ pour le lien vers l'UFR IM2AG,
  • https://im2ag-moodle.univ-grenoble-alpes.fr pour le placard électronique,
  • monCV.html pour votre CV.

Il existe de nombreux outils pour construire des images réactives. Parmi ceux-ci on peut noter GIMP (GNU Image Manipulation Program), un logiciel gratuit offrant de nombreuses et puissantes fonctionalités de manipulation d'image dont en ce qui nous concerne la création d'images réactives (voir le tutorial How To Create An Image Map Using GIMP de Tim Lenahan).

Permettre la navigation dans le site

Pour faciliter la navigation dans votre site, ajoutez dans les pages monCV.html et agenda.html des liens qui permettent de retourner directement sur la page d'accueil.

3.5 : galerie de photographies

S'il vous reste du temps vous pouvez enrichir votre site d'une galerie de photographies. Pour cela créez une nouvelle page, photos.html et ajoutez aux pages de votre site le ou les liens qui permettront d'y accéder.

Gallerie de photographies.

Pour constituer cette galerie vous pouvez utiliser les images contenues dans cette archive photos.zip

3.6 : Déployer votre mini site sur un serveur Apache

A l'ufr IM2AG, la machine Goedel est un serveur où sont installés et configurés :

  • Un serveur Web Apache avec PHP 5
  • Un serveur de base de données MySQL et une interface PhpMyAdmin
  • Un accès aux bases de données Oracle via OCI8

Le nom IP du serveur est le suivant : im2ag-goedel.univ-grenoble-alpes.fr. Vous pouvez vous connecter à ce serveur en ssh, avec vos identifiants AGALAN (à condition d'être sur une machine de l'UFR ou sur le VPN de l'UGA).

Un répertoire nommé public_html devrait se trouver dans votre home dir. Le contenu de ce répertoire est accessible via un navigateur script php se trouvant à l'intérieur peut être exécuté en accédant au fichier concerné via l'adresse web suivante (si vous n'êtes pas sur le réseau de l'UFR, i faut lancer le VPN UGA):

https://im2ag-goedel.univ-grenoble-alpes.fr/~[votre_login]/[path]/[nomfichier]

où :

  • [votre_login] doit être remplacé par votre login agalan
  • [path] est le chemin relatif pour accéder à votre ressource à partir de votre répertoire public_html
  • [nomFichier] doit être remplacé le nom du fichier

Par exemple si votre login agalan est toto38 vous voulez pour accéder au fichier test.html qui se trouve dans le répertoire public_html/CV/ vous utiliserez l'URL https://im2ag-goedel.univ-grenoble-alpes.fr/~toto38/CV/test.html

En cas de mauvais fonctionnement, vérifiez les droits sur le répertoire “public_html” ainsi que les fichiers et répertoires qu'il contient : l'utilisateur www-data doit être capable de lire vos fichiers et de traverser les éventuels répertoires pour y accéder.

Si vous avez des problèmes pour atteindre le lien mentionné plus haut, essayez d'ajouter une exception au proxy du navigateur si vous vous trouvez sur un réseau UGA ou VPN UGA.