90 lines
No EOL
3.1 KiB
HTML
90 lines
No EOL
3.1 KiB
HTML
[(#REM)
|
|
affichage en boucle DATA des premières et dernières lignes des fichiers JSONL stockés dans un répertoire corpus
|
|
on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
|
|
|
|
]
|
|
<h1>Aperçu d'un lot de fichiers JSONL</h1>
|
|
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de leur 1ère et dernière ligne</p>
|
|
<div class="la_une">
|
|
<ul>
|
|
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/#CONFIG{corpus_web/repertoire_apercu,apercu_jsonl}/*}{par basename}>
|
|
<li>
|
|
#SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}|mult{1000000}} [(#REM) trop gros = 100Mo ]
|
|
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
|
|
<h3 class="spip[ (#SIZE|>{#GET{trop_gros}}|oui)non_traite]">
|
|
[(#FILE|basename)] : [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] <small>([(#SIZE|human_filesize)o])</small>
|
|
[ (#SIZE|>{#GET{trop_gros}}|oui)<div>fichier trop gros pour traitement basique</div>]
|
|
</h3>
|
|
<BOUCLE_2lignes(DATA){liste #GET{liste_lignes}}{si #SIZE|<{#GET{trop_gros}}}>
|
|
[(#SET{num_ligne,[(#COMPTEUR_BOUCLE|=={1}|?{1,#GET{nb_lignes}})]})]
|
|
<div>
|
|
<h4 class="aff_masq">Page #VALEUR :</h4>
|
|
<div class="details">
|
|
[(#SET{content,[(#FILE|affiche_ligne{#GET{num_ligne}}|json_decode{true})]})]
|
|
<ul>
|
|
<li>
|
|
<div class="aff_masq">Contenu brut :</div>
|
|
<textarea class="details">[(#FILE|affiche_ligne{#GET{num_ligne}})]</textarea>
|
|
</li>
|
|
<BOUCLE_content(DATA){source table, #GET{content}}>
|
|
[(#CLE|=={htmlBytes}|oui)
|
|
<li>
|
|
<div class="aff_masq">[(#CLE)] = HTML de la page : </div>
|
|
<div class="details js-hidden">
|
|
<textarea class="details">[(#VALEUR|base64_decode|replace{<,<}|replace{>,>})]</textarea>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div class="aff_masq">Titraille :</div>
|
|
<textarea class="details">[(#VALEUR|base64_decode|affiche_titraille)]</textarea>
|
|
</li>
|
|
]
|
|
[(#CLE|=={htmlBytes}|non)
|
|
<li>
|
|
<div class="aff_masq">[(#CLE)] : </div>
|
|
<div class="details">
|
|
[(#VALEUR|print|replace{<br />,§§}|replace{<,<}|replace{>,>}|replace{§§,<br>})]
|
|
</div>
|
|
</li>
|
|
]
|
|
</BOUCLE_content>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</BOUCLE_2lignes>
|
|
</li>
|
|
</BOUCLE_corpus>
|
|
</ul>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
jQuery(function () {
|
|
$('.aff_masq').each(function() {
|
|
$(this).siblings('.details').toggleClass('js-hidden');
|
|
});
|
|
|
|
$('.aff_masq').on('click', function() {
|
|
$(this).siblings('.details').toggleClass('js-hidden');
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<style type="text/css" media="screen">
|
|
.aff_masq {
|
|
cursor: pointer;
|
|
font-weight: bold;
|
|
}
|
|
.aff_masq:hover {
|
|
background-color: #DDD;
|
|
}
|
|
.details br:first-of-type {
|
|
display: none;
|
|
}
|
|
textarea {
|
|
width: 100%;
|
|
height: 200px;
|
|
}
|
|
.non_traite {
|
|
color: #777;
|
|
}
|
|
</style> |