corpus_web/content/explo_jsonl.html

114 lines
No EOL
3.9 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>Contenus d'un lot de fichiers JSONL</h1>
<p>Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de toutes leurs lignes
<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}}{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>