infokiosque/index.html

173 lines
6.2 KiB
HTML
Raw Normal View History

2024-01-04 00:41:32 +01:00
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Infokiosque LOL</title>
2024-01-04 00:41:32 +01:00
<link rel="stylesheet" href="/_src/styles/global.css" />
</head>
2024-01-05 18:59:42 +01:00
<body vocab="http://schema.org/" typeof="Website" resource="." class="home">
2024-01-04 00:41:32 +01:00
<img src="/_src/img/logo_kiosque.svg" alt="Logo du site" />
2024-01-05 18:59:42 +01:00
<h1 property="name">Infokiosque du LOL <small>Brochures et autres textes</small></h1>
2024-01-04 00:41:32 +01:00
2024-01-05 19:18:23 +01:00
<nav>
<ul>
<li><a href="https://labolyon.fr">Labolyon.fr</a></li>
<li><a href="https://wiki.labolyon.fr/doku.php?id=infokiosque">Wiki</a></li>
</ul>
</nav>
2024-01-04 00:41:32 +01:00
<section id="publications"
property="hasPart"
2024-01-04 00:41:32 +01:00
typeof="Collection"
resource="#publications" >
2024-01-09 19:14:01 +01:00
<h2 property="name">Textes à emporter</h2>
2024-01-09 19:09:17 +01:00
<p property="description">Ces textes sont disponibles au LOL et emportables a prix libres. Vous pouvez aussi en telecharger le contenu librement et le redistribuer comme vous le voulez.</p>
2024-01-04 00:41:32 +01:00
<ul>
2024-02-02 19:03:30 +01:00
<li><a property="hasPart" href="publications/2023-02-02-datafoire-steakernet-sympa/">
Datafoire, sneakernet sympa <small>du outdoor computer club</small>
</a></li>
2024-01-04 00:41:32 +01:00
<li><a property="hasPart" href="publications/2023-01-03-detruire-le-capitalisme-de-surveillance/">
Détruire le capitalisme de surveillance <small>par Cory Doctorow</small>
</a></li>
<li><a property="hasPart" href="publications/2023-01-01-une-critique-a-la-va-vite-de-la-pensee-primitiviste-et-anticiv/">
Une critique à la va-vite de la pensée primitiviste et anticiv</small>
</a></li>
2024-01-04 00:41:32 +01:00
</ul>
</section>
2024-01-09 19:09:17 +01:00
<section id="empruntables"
property="hasPart"
typeof="Collection"
resource="#empruntables" >
2024-01-09 19:14:01 +01:00
<h2 property="name">Textes à lire sur place</h2>
2024-01-09 19:09:17 +01:00
2024-01-09 19:14:01 +01:00
<p property="description">Ces textes sont à lire sur place ou empruntable dans la bibliotheque du LOL.</p>
2024-01-09 19:09:17 +01:00
<ul>
<li><a property="hasPart" href="empruntables/a-bout-de-flux/">
À bout de flux <small>de Fanny Lopez</small>
</a></li>
<li><a href="empruntables/angles-mort-du-numerique-ubiquitaire/">
Angles morts du numérique ubiquitaire <small>de Yves Citton, Marie Lechner et Masure Anthony</small>
</a></li>
<li><a href="empruntables/en-toute-puissance/">
En toute puissance, manuel dautodétermination radicale <small>de Viciss Hackso</small>
</a></li>
<li><a href="empruntables/hacker-protesters/">
Hacker Protester : guide pratique des outils de lutte citoyenne <small>de Geoffrey Dorne</small>
</a></li>
<li><a href="empruntables/le-mythe-de-l-entrepreneur/">
Le mythe de l'entrepruneur <small>de Anthony Galluzzo</small>
</a></li>
2024-01-09 19:34:14 +01:00
<li><a href="empruntables/guide-d-autodéfense-numerique/">
Guide dAutodéfense Numérique, <small>Edition Tahin Party</small>
</a></li>
2024-01-13 17:56:45 +01:00
<li><a href="empruntables/race-after-technology/">
Race after technology <small>de Ruha Benjamin</small>
</a></li>
2024-01-09 19:09:17 +01:00
</ul>
</section>
<template id="publication-card-tmplt">
<article class="publication-card">
<img property="image" src="" alt="Couverture" />
<h1 property="name"></h1>
<div class="meta">
<span>Par <span property="author"></span></span>
</div>
<p property="abstract"></p>
<nav>
<a href="" property="url">Plus d'infos <i>🠺</i></a>
</nav>
</article>
</template>
<script type="module">
2024-01-05 21:45:07 +01:00
import {fetchDocumentData, takeFirst, takeUrl} from "/_src/js/utils/data.js"
2024-01-09 19:09:17 +01:00
initBookList(document.getElementById("publications"))
initBookList(document.getElementById("empruntables"))
2024-01-09 19:09:17 +01:00
async function initBookList(listElement) {
for(let it of listElement.querySelectorAll("ul > li a[href]")) {
let data = null;
try {
data = await fetchDocumentData(it.href)
} catch(e) {
continue;
}
let card = null;
try {
card = makePublicationCard(data)
} catch(e) {
continue;
}
it.innerHTML = ""
it.append(card)
}
}
function makePublicationCard(data){
let template = document.getElementById("publication-card-tmplt").content.cloneNode(true);
let root = template.children[0]
root.setAttribute("resource", takeFirst(data["@id"]))
root.setAttribute("typeof", takeFirst(data["@type"]))
let name = takeFirst(data.name)
if(name){
template.querySelector('[property="name"]').textContent = name
} else {
throw new Error("Provided data doesn't have a \"name\" field");
}
let author = takeFirst(data.author)
if(author){
template.querySelector('[property="author"]').textContent = author
} else {
template.querySelector('[property="author"]').parentElement.remove()
}
let abstract = takeFirst(data.abstract)
if(abstract){
template.querySelector('[property="abstract"]').textContent = abstract
} else {
template.querySelector('[property="abstract"]').remove()
}
let image = takeUrl(data.image)
if(image){
template.querySelector('[property="image"]').src = image
} else {
template.querySelector('[property="image"]').remove()
}
let url = takeUrl(data.url)
template.querySelector('[property="url"]').href = url || takeUrl(data)
return template
}
</script>
2024-01-04 00:41:32 +01:00
</body>
</html>