corpus_web/content/explo_jsonl.html

115 lines
No EOL
4.2 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>Exploration des contenus d'un lot de fichiers JSONL</h1>
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu des lignes
<br>Nombre de lignes configuré par le "pas" de l'itération dans les pages : ici <strong>#CONFIG{corpus_web/pas_corpus, 10}</strong> (1 = toutes les pages, 10 = 1 page sur 10...)
<br><small>pour mémoire : 1 ligne du fichier JSONL = 1 page HTML du site aspiré/archivé</small>
</p>
<div class="la_une">
<ul>
<BOUCLE_corpus(DATA){source ls, #CHEMIN{tmp}/#CONFIG{corpus_web/repertoire_corpus,corpus_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>
[(#REM)
{liste #GET{liste_lignes}}
]
<BOUCLE_2lignes(DATA){enum 1, #GET{nb_lignes}, #CONFIG{corpus_web/pas_corpus, 10}}{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=""><span class="aff_masq_">Title :</span> [(#VALEUR|base64_decode|affiche_title)]</div>
</li>
<li>
<div class="aff_masq">[(#CLE)] = HTML de la page : </div>
<div class="details">
<textarea class="details">[(#VALEUR|base64_decode|replace{<,&lt;}|replace{>,&gt;})]</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">
<B_ss>
<ul>
<BOUCLE_ss(DATA){source table, #VALEUR}>
<li>
<div class="aff_masq_">[(#CLE)] : </div>
<div class="details_">
[(#CLE|=={htmlmeta:html:head}|oui)
<textarea class="details_">[(#VALEUR*|print|replace{<br />,§§}|replace{<,&lt;}|replace{>,&gt;}|replace{§§,<br>})]</textarea>
]
[(#CLE|=={htmlmeta:html:head}|non)
[(#VALEUR|print|replace{<br />,§§}|replace{<,&lt;}|replace{>,&gt;}|replace{§§,<br>})]
]
</div>
</li>
</BOUCLE_ss>
</ul>
</B_ss>
</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, .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>