<li><ahref="https://forge.chapril.org/Fab_Blab/freeDatas2HTML"target="_blank"title="accéder au dépôt GIT"rel="noopener"class="badge success sm-12 col">Git</a></li>
</ul>
</nav>
</header>
<articleid="content">
<h2>Documentation FreeDatas2HTML</h2>
<h3>Installation FreeDatas2HTML</h3>
<p>Pour l’instant FreeDatas2HTML n’est pas disponible sur NPM.<br/>
Vous devez donc en récupérer une copie sur <ahref="https://forge.chapril.org/Fab_Blab/freeDatas2HTML"rel="noopener"target="_blank">le dépôt GIT du projet</a>.<br/>
Si vous travaillez en TypeScript, vous pouvez directement utiliser les fichiers présents dans le répertoire <ahref="https://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src"rel="noopener"target="_blank">/src</a> et ignorer le sous-répertoire /build.<br/>
Si vous travaillez en JavaScript, vous devez au contraire utiliser les scripts présents dans le répertoire <ahref="https://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src/build"rel="noopener"target="_blank">/src/build</a>.</p>
<h3>Importation de la classe principale</h3>
<p>Une fois les scripts présents dans le répertoire de votre projet, vous pouvez les importer comme n’importe quel module:<br/>
<code>import { FreeDatas2HTML } from "./modules/FreeDatas2HTML";</code></p>
<p>À supposer que les scripts soient situés dans le sous-répertoire <em>FreeDatas2HTML</em> du répertoire <em>modules</em> de votre projet.</p>
<p>Suivant ce que vous souhaitez faire, vous aurez peut-être besoin d’importer d’autres classes, comme indiqué plus loin.</p>
<h3>Instanciation de la classe principale</h3>
<p>Ensuite, dans votre script, vous pouvez créer votre instance de manière classique:<br/>
<p>Le premier argument du constructeur est obligatoire et vous permet d’indiquer le format des données à parser, avec trois options possibles: <em>«CSV»</em>, <em>«JSON»</em>, <em>«HTML»</em>.</p>
<h3>Fournir directement les données à parser</h3>
<p>Si vous avez déjà les données à parser sous la main, vous pouvez les fournir en deuxième argument du constructeur sous forme d’une chaîne de caractère:<br/>
En fait, il sera accepté une instance de n’importe quelle classe validant l’interface RemoteSources que vous pouvez retrouver déclarée dans le script <ahref="https://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src/interfaces.ts"rel="noopener"target="_blank">interface.ts</a>.</p>
<p>Vous pouvez fournir des entêtes pour l’appel à la source de données distantes:<br/>
L’élément doit exister dans la page, sans quoi le <em>setter</em> générera une erreur.</p>
<h3>Parser les données</h3>
<p>Pour lancer le parsage, utilisez la méthode <em>run()</em> qui est asynchrone:<br/>
<code>await myConverter.run();</code></p>
<p>En cas de succès du parsage, si l’id de l’élément du DOM devant recevoir les données est connu, elles seront automatiquement affichées dans la page.</p>
<p>Dans tous les cas, une fois le parsage finalisé avec succès, vous pouvez accéder aux noms de champs et aux données trouvées:<br/>
<code>const fields=myConverter.fields; // format de sortie: string[], exemple: ["fistname", "name"]<br/>
const datas=myConverter.datas; // format de sortie : {[index: string]:string}[], exemple: [{firstname:"Janie", name:"Doe"}, {firstname:"John", name:"Doe"}];</code><br/>
Les formats de sortie sont les mêmes, quel que soit le format des données parsées.</p>
<h4>Tolérance aux erreurs de parsage</h4>
<p>Le parseur peut rencontrer certaines erreurs ne le bloquant pas, mais correspondant à des anomalies, par exemple, une colonne en trop dans des données CSV.<br/>
Si vous souhaitez bloquer la suite quand cela arrive, il vous faut l’indiquer avant de lancer le parsage:<br/>
<h4>Ne pas afficher tous les champs disponibles</h4>
<p>Si vous ne souhaitez pas afficher tous les champs trouvés dans votre fichier, vous pouvez indiquer ceux à garder:<br/>
<code>myConverter.fields2Rend=[0,2]; // n’affichera que le 1ᵉʳ et le troisième champ, la numérotation commençant à zéro.</code></p>
<p>Ce setter provoquera une erreur si vous fournissez un numéro de champ n’existant pas les données parsées.<br/>
Vous pouvez par contre le déclarer à tout moment, pour prise en compte dès le prochain affichage.</p>
<p>Pour de nouveau afficher tous les champs (situation par défaut), il suffit de passer un tableau vide:<br/>
<code>myConverter.fields2Rend=[];</code></p>
<h4>Adapter le code HTML généré pour l’affichage des données</h4>
<p>Pour spécifier le code HTML à générer, vous devez créer une instance de la classe <em>Render</em> ou d’une autre classe validant l’interface <em>DatasRenders</em> déclarée dans le script <ahref="https://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src/interfaces.ts"rel="noopener"target="_blank">interface.ts</a>.<br/>
Dans le cas de la classe <em>Render</em>, il faut commencer par l’importer:<br/>
<code>import { FreeDatas2HTML, Render } from "./modules/FreeDatas2HTML";</code></p>
<p>Puis l’instancier:<br/>
<code>const myRender=new Render();</code><br/>
Et utiliser l’attribut <em>settings</em> pour décrire ce que vous souhaitez obtenir:<br/>
<code>myRender.settings=<br/>
{<br/>
allBegining:"<h4>Moi je préfère les listes aux tableaux !</h4>",<br/>
Dans ce cas la configuration par défaut est écrasée par la valeur de settings.<br/>
<ahref="https://forge.chapril.org/Fab_Blab/FreeDatas2HTML/src/branch/master/src/interfaces.ts"rel="noopener"target="_blank">Consulter le type <em>DatasRendersSettings</em></a> pour voir tous les attributs disponibles.</p>
<p>Si vous souhaitez simplement modifier un des attributs, vous pouvez le faire ainsi:<br/>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.