Files
librodrome/app/app.vue
Yvv 07449de187
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Pages détail numérique : sommaire flottant, nav ctx, shadoks geek, contenu enrichi
- [slug].vue : sommaire sticky (overflow:clip sur parent), prev/next en haut, 6 shadoks geek (pinguin+USB, web-of-trust, rubber-duck, caféine, debugger loupe, rack serveur)
- Nouveaux types de sections : territoire (bouquet sweethomeCloud, 2 modèles éco, tableau matériel dépliable), projet (carte gestation)
- cloud-libre.yml : section sweethomeCloud complète avec infra 50 000 hab. (~2€/an/hab)
- authentification-wot.yml : trustWallet, correction WoT Duniter (Ed25519+Scrypt, sigQty=5, stepMax=3), DID/VC standards
- logiciel-libre.yml : carte projet wishBounty
- home.yml + numerique.yml : cloud-libre → sweethomeCloud, description RGPD/local-first
- AxisBlock.vue : bulles de présentation inline dans les cards (plus de tooltip absolu)
- Analytics : useTracking.ts (Umami), docker-compose.umami.yml, /api/stats fédération
- nuxt.config.ts : config Umami runtime

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 04:40:48 +01:00

41 lines
1006 B
Vue

<template>
<div class="min-h-dvh">
<NuxtLoadingIndicator color="hsl(12, 76%, 48%)" />
<NuxtRouteAnnouncer />
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
<ClientOnly>
<PlayerPersistent />
</ClientOnly>
</div>
</template>
<script setup lang="ts">
const paletteStore = usePaletteStore()
onMounted(() => paletteStore.applyToDOM())
// Umami analytics — inject script only when configured
const runtimeConfig = useRuntimeConfig()
if (runtimeConfig.public.umamiWebsiteId && runtimeConfig.public.umamiUrl) {
useHead({
script: [{
src: `${runtimeConfig.public.umamiUrl}/script.js`,
defer: true,
'data-website-id': runtimeConfig.public.umamiWebsiteId,
}],
})
}
useHead({
titleTemplate: (title) => {
return title ? `${title} — Le Librodrome` : 'Le librodrome'
},
meta: [
{ name: 'description', content: 'Une économie du don — enfin concevable. Un livre et des chansons, lecture guidée et écoute libre.' },
],
})
</script>