infokiosque/index.html

173 lines
6.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>
<link rel="stylesheet" href="/_src/styles/global.css" />
</head>
<body vocab="http://schema.org/" typeof="Website" resource="." class="home">
<img src="/_src/img/logo_kiosque.svg" alt="Logo du site" />
<h1 property="name">Infokiosque du LOL <small>Brochures et autres textes</small></h1>
<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>
<section id="publications"
property="hasPart"
typeof="Collection"
resource="#publications" >
<h2 property="name">Textes à emporter</h2>
<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>
<ul>
<li><a property="hasPart" href="publications/2023-02-02-datafoire-steakernet-sympa/">
Datafoire, sneakernet sympa <small>du outdoor computer club</small>
</a></li>
<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>
</ul>
</section>
<section id="empruntables"
property="hasPart"
typeof="Collection"
resource="#empruntables" >
<h2 property="name">Textes à lire sur place</h2>
<p property="description">Ces textes sont à lire sur place ou empruntable dans la bibliotheque du LOL.</p>
<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>
<li><a href="empruntables/guide-d-autodéfense-numerique/">
Guide dAutodéfense Numérique, <small>Edition Tahin Party</small>
</a></li>
<li><a href="empruntables/race-after-technology/">
Race after technology <small>de Ruha Benjamin</small>
</a></li>
</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">
import {fetchDocumentData, takeFirst, takeUrl} from "/_src/js/utils/data.js"
initBookList(document.getElementById("publications"))
initBookList(document.getElementById("empruntables"))
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>
</body>
</html>