J'ai un script Unix Shell qui produit un rapport en texte brut. L'alignement horizontal est obtenu en insérant des espaces afin que la sortie apparaisse sous forme de colonnes dans le terminal.
Caption Caption Caption
-------- -------- --------
Line 1 value 1 value 2
Line 2 value b bla bla
Line 3 value 1 value 2
Line 4 value b bla bla
Le rapport est automatiquement automatisé et une copie est envoyée par courrier électronique. Pour que la mise en forme apparaisse bien dans un client de messagerie, j'ai défini le type de contenu sur HTML et ajouté <PRE>
balises de pré-mise en forme autour du contenu entier du message.
Cela fonctionne assez bien. Cependant, j'aimerais mettre en évidence certaines lignes, par exemple en modifiant la police pour définir le texte et la couleur d'arrière-plan. Comment pourrais-je le mieux faire cela?
Je peux remplacer le <PRE>
...</PRE>
par une étendue permettant de définir une police à largeur unique, mais comment puis-je conserver les espaces vides pour conserver l'aspect de la colonne/du tableau?
J'ai essayé d'utiliser des tableaux HTML réels, mais cela ne fonctionne que sur certains clients de messagerie. Dans d'autres, le même message est illisible car la majeure partie du texte est enchaînée dans une colonne très étroite (1 à 3 caractères de large) et très haute. La définition des options de formatage sur les attributs de table se comporte également de manière très différente entre les quelques clients de messagerie disponibles pour mes propres tests!
Si vous souhaitez contrôler le texte rendu par ligne, vous devez envisager d'automatiser votre script Shell afin d'inclure le code approprié dans la sortie. Une bonne option est de créer un fichier html qui peut ensuite être envoyé comme un modèle de courrier électronique ou un texte préformaté que vous pouvez simplement copier/coller depuis votre navigateur vers la fenêtre de composition du message de votre client de messagerie.
Quelque chose comme ça peut marcher:
.title {
color: #00f;
}
.yellow {
color: #f00;
background: #ff0;
}
.green {
color: #00f;
background: #0f0;
}
.red {
color: #ff0;
background: #f00;
}
<pre>Hello world!</pre>
<pre class="title">Caption Caption Caption</pre>
<pre>-------- -------- --------</pre>
<pre class="regular">Line 1 value 1 value 2</pre>
<pre class="yellow">Line 2 value b bla bla</pre>
<pre class="green">Line 3 value 1 value 2</pre>
<pre class="red">Line 4 value b bla bla</pre>
Essayez-le ici: http://jsfiddle.net/geppettvs/etycazov/
Vous pouvez définir autant de styles que vous le souhaitez et l'instruction de votre script Shell effectuera le travail à votre place si vous supprimez les résultats dans un fichier file.html afin de créer le contenu Web que vous souhaitez partager.
Bonne chance!