web-dev-qa-db-fra.com

Comment baliser avec Microdata une "table des matières" et un "contenu incorporé" pour un PublicationIssue?

Supposons que j’ai un PublicationIssue d’un périodique et que j affiche une page Web avec une liste de contrôle/résumé avec une liste de Articles et un fichier document incorporé avec un iframe. Le contenu du problème n'est pas codé directement sur la page, mais est entièrement disponible sous forme de fichier incorporé.

Par exemple, considérons le code HTML simplifié suivant:

<article>
    <h1>Issue number 42</h1>

    <div class="toc">
        Table of contents:
        <ul>
            <li>Editorial</li>
            <li>First article</li>
            <li>Another interesting article</li>
            <li>The importance of microdata</li>
            <li>Microtagging your ToC like a pro</li>
        </ul>
    </div>

    <!-- here we have an embed document via iframe like a PDF or maybe a google doc or similar  -->
    <iframe src="url-to-file-embed"></iframe>
</article>

Comment pouvez-vous baliser ce qui précède avec des données structurées de manière à pouvoir informer les robots que le ul est la table des matières du problème avec les articles relatifs et que le contenu du problème est en réalité le src de l'insertion de iframe?

1
Gruber

Pour un iframe, Microdata utilisera la valeur src comme valeur de propriété. Vous pouvez donc spécifier itemprop="url" sur iframe pour indiquer que ce fichier est le PublicationIssue .

Il ne semble cependant pas y avoir de propriété pour une table des matières. Vous pouvez utiliser hasPart pour fournir chaque Article, même si vous ne fournissez qu’un name par Article. Si le fichier permet de créer des liens vers des parties/pages spécifiques, vous pouvez fournir le lien de chaque article dans un élément link. si ce n’est pas le cas, j’ omettrais simplement la propriété url.

<article itemscope itemtype="http://schema.org/PublicationIssue">

  <ul>

    <li itemprop="hasPart" itemscope itemtype="http://schema.org/Article">
      <span itemprop="name">First article</span>
      <link itemprop="url" href="url-to-file-embed#page-2" /> <!-- omit if there is no such URL --> 
    </li>

    <li itemprop="hasPart" itemscope itemtype="http://schema.org/Article">
      <span itemprop="name">Another interesting article</span>
      <link itemprop="url" href="url-to-file-embed#page-4" /> <!-- omit if there is no such URL --> 
    </li>

  </ul>

  <iframe itemprop="url" src="url-to-file-embed"></iframe>

</article>
1
unor