<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/30"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/30/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/30/atom/feed</id>
  <updated>2008-02-12T11:08:52+01:00</updated>
  <entry>
    <title>Bloc-note &#039;HTML&#039;</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/30" />
    <id>http://artisan.karma-lab.net/node/30</id>
    <published>2005-12-30T09:20:29+01:00</published>
    <updated>2008-02-12T11:08:52+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Développement" />
    <category term="Aucun" />
    <category term="Note" />
    <summary type="html"><![CDATA[<P>Les tags HTML à l'origine permettaient un formatage des documents. Avec le temps et l'apparition des feuilles de styles CSS, HTML devient un langage plus sémantique. C'est à dire qu'il permet de définir les types de contenus qu'il contient, le formatage de ces contenus étant délégué au feuilles de style.</P>    ]]></summary>
    <content type="html"><![CDATA[<P>Les tags HTML à l'origine permettaient un formatage des documents. Avec le temps et l'apparition des feuilles de styles CSS, HTML devient un langage plus sémantique. C'est à dire qu'il permet de définir les types de contenus qu'il contient, le formatage de ces contenus étant délégué au feuilles de style.</P><!--break-->


	<a name='chapter_1'></a>
	<h2>Gestion des modifications</h2>
	
<p>Un peu comme l'activation du suivi de modification dans un traitement de texte les balises <kbd>ins</kbd> et <kbd>del</kbd> (définition <a class='external' target='_blank' href='http://www.w3.org/TR/REC-html40/struct/text.html#h-9.4' >W3C</a> permettent de marquer des portions de texte ayant été respectivement ajoutées ou supprimées du document d'origine. Les attributs <kbd>datetime</kbd> et <kbd>cite</kbd> permettent de spécifier la date de la correction et la source (URL) ayant motivée cette dernière.</p>

<p>Les défauts de ce tags tiennent plus à sa gestion dans les navigateurs. Par exemple l'auteur n'y est pas pris en compte (pas d'attibut <kbd>author</kbd>), on ne peut pas masquer ces modifications pour avoir la verion finale, pas non plus de bulle d'aide sur la modification pour connaître les informations <kbd>datetime</kbd> et <kbd>cite</kbd>. En gros, pas très utilisable hors en tant que suivi de modification. Il s'agit plus d'un outil d'honnêteté intellectuelle à utiliser pour montrer sa bonne foi <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>. Ceci dit, rien n'empêche de créer une feuille de style prenant en charge les manques cités ici.</p>

<p>Je pense avoir commis <del datetime="30/12/2005" cite="http://blog.alsacreations.com/2004/05/19/7-a-la-recherche-des-balises-perdues">quelques</del><ins>de nombreuses</ins> erreurs.</p>


	<a name='chapter_2'></a>
	<h2>Mise en avant de portions de code</h2>
	
<p>Déjà pour clarifier la problématique, il y a deux types de rendu de code. Un rendu au format bloc, un listing en gros. Et un rendu en tant que citation dans une phrase. Pour le rendu de type citation nous disposons des balises suivantes  :
  <dl>
    <dt>Balise <kbd>code</kbd></dt>
    <dd>Définition d'une portion de code. ex: <kbd>for (int value; valueList)</kbd></dd>
    <dt>Balise <kbd>var</kbd></dt>
    <dd>Définition d'une variable du code. ex: <kbd>int <var>rowWidth</var></kbd>. A noter que cette balise hérite de <kbd>code</kbd>.</dd>
    <dt>Balise <kbd>kbd</kbd></dt>
    <dd>Représente une saisie clavier. ex: <kbd># dd</kbd></dd>
    <dt>Balise <kbd>samp</kbd></dt>
    <dd>Définit le résultat de sortie d'une commande, fonction, etc.. ex: <samp>Syntax Error</samp></dd>
  </dl>
  
  <p>Maintenant que nous savons cela, il nous manque malgrès tout un élément. Comment définir un paragraphe de type "portion de code". La solution préconisée par le W3C consiste à utiliser les balise <kbd>pre</kbd> et <kbd>code</kbd>. La première étant le conteneur de la seconde. Ce qui nous donne un code du genre :</p>
  
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;pre<span class="sy0">&amp;</span>gt;<span class="sy0">&amp;</span>lt;code<span class="sy0">&amp;</span>gt;</div></li>
<li class="li1"><div class="de1">Mon code <span class="kw3">source</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;<span class="sy0">/</span>code<span class="sy0">&amp;</span>gt;<span class="sy0">&amp;</span>lt;<span class="sy0">/</span>pre<span class="sy0">&amp;</span>gt;</div></li></ol></div></div></div>
  
  <p>Ce qui est assez désagréable avec cette solution c'est que cela devient assez lourd à relire dés que l'on utilise du code XML ou HTML car tous les <kbd>&gt;</kbd> et <kbd>&lt;</kbd> doivent être remplacés par des &amp;gt; et &amp;lt;. Maintenant, un exemple reprenant l'ensemble des idées de ce chapitre :
  
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;pre<span class="sy0">&amp;</span>gt;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;kbd<span class="sy0">&gt;</span><span class="co0"># ls *.sh&amp;lt;/kbd&amp;gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;samp<span class="sy0">&gt;</span><span class="kw3">test</span>.sh<span class="sy0">&amp;</span>lt;<span class="sy0">/</span>samp<span class="sy0">&amp;</span>gt;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;kbd<span class="sy0">&gt;</span><span class="co0"># cat test.sh&amp;lt;/kbd&amp;gt;</span></div></li>
<li class="li2"><div class="de2"><span class="sy0">&amp;</span>lt;code<span class="sy0">&amp;</span>gt;</div></li>
<li class="li1"><div class="de1"><span class="kw3">export</span> <span class="sy0">&amp;</span>lt;var<span class="sy0">&gt;</span>VAR<span class="sy0">&amp;</span>lt;<span class="sy0">/</span>var<span class="sy0">&amp;</span>gt;=value</div></li>
<li class="li1"><div class="de1"><span class="kw3">echo</span> <span class="re1">$VAR</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&amp;</span>lt;<span class="sy0">/</span>pre<span class="sy0">&amp;</span>gt;<span class="sy0">&amp;</span>lt;<span class="sy0">/</span>code<span class="sy0">&amp;</span>gt;</div></li></ol></div></div></div>
</p>


	<a name='chapter_3'></a>
	<h2>Gestion des ellipsis</h2>
	
<p>
Les ellipsis sont les <kbd>...</kbd> que l'on trouve à la fin d'une phrase tronquée lorsque il n'y a pas assez de place pour l'afficher entièrement. J'ai longtemps cherché un moyen de gérer ce fonctionnent en CSS car c'est à peu prés impossible à programmer (il faudrait connaître la taille de la font au niveau client). Et j'ai trouvé une solution qui semble fonctionner <external href="">http://www.hedgerwow.com/360/dhtml/text_overflow/demo2.php</external>.
</p>
<p>
 Cela donne donc le code CSS suivant :
<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="re1">.ellipsis</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">white-space</span><span class="re2">:nowrap</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;-o-text-<span class="kw1">overflow</span><span class="re2">:ellipsis</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp;text-<span class="kw1">overflow</span><span class="re2">:ellipsis</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">overflow</span><span class="re2">:hidden</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">display</span><span class="re2">:block</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">position</span><span class="re2">:relative</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;zoom<span class="re2">:<span class="nu0">1</span></span><span class="sy0">;</span>&nbsp; </div></li>
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re1">.ellipsis</span><span class="re2">:after</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">content</span><span class="sy0">:</span><span class="st0">''</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">display</span><span class="re2">:block</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="kw1">clear</span><span class="re2">:both</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re1">.ellipsis</span> span <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">white-space</span><span class="re2">:nowrap</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;-o-text-<span class="kw1">overflow</span><span class="re2">:ellipsis</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;text-<span class="kw1">overflow</span><span class="re2">:ellipsis</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;*<span class="kw1">width</span><span class="re2">:<span class="nu0">100</span></span>%<span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">float</span><span class="re2">:left</span><span class="sy0">;</span>&nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">overflow</span><span class="re2">:hidden</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">max-width</span><span class="re2">:<span class="nu0">97</span></span>%<span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2"><span class="re1">.ellipsis</span> ins<span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">height</span><span class="re2">:<span class="re3">10px</span></span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">float</span><span class="re2">:left</span><span class="sy0">;</span> </div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">width</span><span class="re2">:<span class="re3">1px</span></span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">position</span><span class="re2">:relative</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="kw1">left</span><span class="re2">:<span class="nu0">-95</span></span>%<span class="sy0">;</span>&nbsp; </div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re1">.ellipsis</span> var<span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">position</span><span class="re2">:absolute</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="kw1">right</span><span class="re2">:<span class="nu0">0</span></span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">top</span><span class="re2">:<span class="nu0">0</span></span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">bottom</span><span class="re2">:<span class="nu0">0</span></span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">background</span><span class="sy0">:</span><span class="re0">#fff</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">display</span><span class="re2">:none</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re1">.ellipsis</span> var<span class="re2">:after</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">content</span><span class="sy0">:</span><span class="st0">'...'</span><span class="sy0">;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></div></div></div>
</p>
<p>dont voici un résultat possible (toujours fauché sur le meme site) :
<table width='80%'>
<tr>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
</tr>
<tr>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
</tr>
<tr>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
<td><tt class="ellipsis"><span>Un texte bien bien long qui dépasse la taille autorisée</span></tt></td>
</tr>
</table>
</p>
<p>
  Alors sous FireFox, il manque les fameux <kbd>...</kbd> mais 80% de la fonctionnalité est là. Pour la compléter, si vous y tenez (personnellement cela me va très bien comme cela), le site que j'ai cité plus haut donne en plus un petit script permettant l'émulation du tag css <kbd>var:after</kbd>. 
</p>
</p>    ]]></content>
  </entry>
</feed>
