This commit is contained in:
GZod01 2024-05-10 11:31:41 +02:00
parent 9f5f8c1ad8
commit ac2c530405
11 changed files with 358 additions and 36 deletions

View file

@ -1,6 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
draft: false
---

View file

@ -26,6 +26,76 @@ slogan = "Robotic, together"
footer_description = """
Created in 2017, local association of robotic for youth, based in Gaillon, France. We participate to international and national competitions, winner of First Global Contest in Washington DC in 2017 and of World Adolescent Robotic Contest in Guyiang, China in 2018.
"""
home = "Home"
previous = "Previous"
next = "Next"
about = "About"
place = "Where you can find us"
donate = "Donate"
loading = "Loading..."
more = "See more..."
page-not-supported = "We are sorry this page is not supported in your language yet."
[languages.en.params.blog]
title = "Blog"
description = "The Blog is THE place to find all the news and story from the team."
[languages.en.params.legals]
title = "Legals term"
description = "See here the legals term of the website werobot.fr"
[languages.en.params.articles]
title = "Articles"
all = "All articles"
last = "Our last articles"
empty = "No articles"
[languages.en.params.articles.sort-by-dates]
title = "Sort by dates"
posts = "post(s)"
close = "Close"
[languages.en.params.articles.sort-by-years]
title = "Sort by years"
posts = "articles(s)"
close = "Close"
[languages.en.params.photos]
title = "Photos"
description = "Last pictures from the instragram account of the We Robot team."
all = "All photos"
last = "Our last photos"
empty = "No photos"
[languages.en.params.contact-us]
title = "Contact us"
description = "There are many way to contact the We Robot team, one of which is to use the form provided on this page."
[languages.en.params.contact-us.president]
title = "By contacting the president"
[languages.en.params.contact-us.form]
title = "By using the form"
description = "If you have any questions or proposal, please contact us through the form below."
field_required = "This field is required"
recaptcha_required = "The recaptcha is required"
invalid_email = "This email is invalid"
not-enough-length = "You must be more precise..."
submit = "Submit"
loading = "Loading..."
success = "Your message has been sent!"
name = "Your name"
name_placeholder = "John Doe"
email = "Your email"
email_placeholder = "john.doe@example.com"
subject = "Subject"
subject_placeholder = "Ubi est magnum nixus?"
content = "Your message"
content_placeholder = "Mineralis de fortis abaculus, imperium glos est fidelis gemna, cesaris."
[languages.en.params.partners]
support-us = "They support us"
[[languages.en.params.errors]]
id="unknown"
title="This is a error"
@ -40,6 +110,7 @@ description= "This page doesn't exist"
changefreq = 'weekly'
[params]
mainSections= "posts"
error404message = "Page non trouvée"
dateFmt = "02.01.2006 15:04"
slogan = "La Robotique, ensemble"
@ -47,6 +118,17 @@ favicon = "/images/logo.png"
footer_description = """
Créée en 2017, association locale de robotique pour les jeunes, basée à Gaillon en France. Nous participons à des concours nationaux ou internationaux, gagnant d'un prix au First Global Contest à Washington DC en 2017 et du World Adolescent Robotic Contest à Guyiang, Chine en 2018
"""
home = "Accueil"
previous = "Précédent"
next = "Suivant"
about = "A propos"
place = "Où nous trouver"
donate = "Donner"
more = "Voir plus..."
loading = "Chargement..."
page-not-supported = "Cette page n'est pas disponible dans votre langue actuellement."
[[params.errors]]
id="unknown"
title="Erreur inconnue"
@ -78,6 +160,79 @@ title = "Construire, tester,apprendre, déployer"
local = true
src = "cover/cover.jpg"
[params.blog]
title = "Blog"
description = "Le Blog de We Robot, c'est comme la vie, il y a des haut et des bas."
[params.legals]
title = "Mentions légales"
description = "Retrouvez ici les mentions légales du site werobot.fr"
[params.articles]
title = "Articles"
all = "Tout les articles"
last = "Nos derniers articles"
empty = "Aucun articles disponibles"
[params.articles.sort-by-dates]
title = "Trier par dates"
posts = "articles(s)"
close = "Fermer"
[params.articles.sort-by-years]
title = "Trier par années"
posts = "articles(s)"
close = "Fermer"
[params.photos]
title = "Photos"
description = "Vous trouverez ici les dernières photos instagram de l'équipe."
all = "Toutes les photos"
last = "Nos dernières photos"
empty = "Pas de photos disponibles"
[params.contact-us]
title = "Contactez nous"
description = "Il y a plusieurs façon de contacter l'équipe We Robot, l'une consiste à utiliser le formulaire founis sur cette page."
[params.contact-us.president]
title = "En contactant le président"
[params.contact-us.form]
title = "En utilisant le formulaire"
description = "Pour toute question ou proposition, n'hésitez-pas à nous contacter à l'aide du formulaire ci-dessous."
field_required = "Ce champs est requis"
recaptcha_required = "Veuillez cocher le recaptcha"
invalid_email = "Cet email est invalide"
not-enough-length = "Vous devez être un peu plus précis..."
submit = "Valider"
loading = "Traitement de votre message..."
success = "Votre message a bien été envoyé !"
name = "Votre nom"
name_placeholder = "Jean Dupont"
email = "Votre email"
email_placeholder = "jean.dupont@exemple.fr"
subject = "Sujet"
subject_placeholder = "Ubi est magnum nixus?"
content = "Votre message"
content_placeholder = "Mineralis de fortis abaculus, imperium glos est fidelis gemna, cesaris."
[params.partners]
support-us = "Ils nous soutiennent"
[taxonomies]
imtag = 'imtags'
@ -89,7 +244,7 @@ url="/"
[[menus.footer_left]]
name="Blog"
url="/blog"
url="/posts"
[[menus.footer_left]]
name="Photos"

View file

@ -1,4 +0,0 @@
---
title: "yeah"
---
Salut tout le monde!

View file

@ -0,0 +1,9 @@
---
title: "Hello.world"
date: 2024-05-10T10:23:56+02:00
draft: false
description: "bye bye world"
banner: "https://www.icegif.com/wp-content/uploads/2023/01/icegif-162.gif"
---
# helloworld

9
content/posts/salut.md Normal file
View file

@ -0,0 +1,9 @@
---
title: "Salut"
date: 2024-05-10T10:24:14+02:00
draft: false
description: "au revoir les amis"
banner: "https://media.4-paws.org/b/8/d/5/b8d5441fec6b84e9c3cba899549b84bb0f193fff/VIER%20PFOTEN_2019-07-18_013-2890x2000.jpg"
---
# salut les potos

View file

@ -6,7 +6,7 @@
<div class="cover-container">
<div class="container mx-auto">
<div class="cover-title">
<h1>{{ .Site.Params.landing.title }}</h1>
<h1>{{ .Site.Params.landing.title | safeHTML }}</h1>
</div>
</div>
</div>
@ -17,46 +17,46 @@
<div class="w-full">
<div class="card no-actions card-blue mx-2">
<div class="card-title">
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.edito.title }}
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.edito.title | safeHTML }}
</div>
<div
class="card-text">
{{ .Site.Params.landing.edito.content }}
{{ .Site.Params.landing.edito.content | safeHTML }}
</div>
</div>
</div>
<div class="w-full md:w-1/2 ">
<div class="card card-purple mx-2">
<div class="card-title">
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.mission.title }}
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.mission.title | safeHTML }}
</div>
<div
class="card-text">
{{ .Site.Params.landing.mission.content }}
{{ .Site.Params.landing.mission.content | safeHTML }}
</div>
<div class="card-actions">
<nuxt-link
to="/about"
<a
href="{{ relLangURL "/about" }}"
class="card-action">
{{ .Site.Params.landing.mission.action }}
</nuxt-link>
{{ .Site.Params.landing.mission.action | safeHTML }}
</a>
</div>
</div>
</div>
<div class="w-full md:w-1/2">
<div class="card card-green mx-2">
<div class="card-title">
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.support.title }}
<i class="fa fas fa-arrow-circle-right"></i> {{ .Site.Params.landing.support.title | safeHTML }}
</div>
<div
class="card-text">
{{ .Site.Params.landing.support.content }}
{{ .Site.Params.landing.support.content | safeHTML }}
</div>
<div class="card-actions">
<a
:href="$env.donate"
href="{{ relLangURL "/donate" }}"
class="card-action">
{{ .Site.Params.landing.support.action }}
{{ .Site.Params.landing.support.action | safeHTML }}
</a>
</div>
</div>
@ -65,42 +65,42 @@
<div class="divider my-5"></div>
<h2 class="index-icon-title py-2 mb-5">
<i class="fa fas fa-newspaper"></i>
{{ .Site.Params.articles.last }}
{{ .Site.Params.articles.last | safeHTML }}
</h2>
{{<articles :locale="$store.state.locale">}}
{{ partial "articles.html" (dict "Paging" true "context" . "ammount" 3)}}
<div class="index-more-section">
<nuxt-link
to="/blog"
<a
href="{{ relLangURL "/blog" }}"
class="mt-3 link button button-primary">
<div class="button-icon">
<i class="fa fas fa-plus-square"></i>
</div>
<div class="button-text">{{ .Site.Params.more }}</div>
</nuxt-link>
<div class="button-text">{{ .Site.Params.more | safeHTML }}</div>
</a>
</div>
<div class="clear-fix"></div>
<div class="divider mt-4 mb-5"></div>
<h2 class="index-icon-title py-2 mb-5">
<i class="fa fas fa-newspaper"></i>
{{ .Site.Params.photos.last }}
{{ .Site.Params.photos.last | safeHTML }}
</h2>
<photos limit="4" />
<div class="index-more-section">
<nuxt-link
to="/photos"
<a
href="{{ relLangURL "/photos" }}"
class="mt-3 link button button-primary">
<div class="button-icon">
<i class="fa fas fa-plus-square"></i>
</div>
<div class="button-text">{{ .Site.Params.more }}</div>
</nuxt-link>
<div class="button-text">{{ .Site.Params.more | safeHTML }}</div>
</a>
</div>
<div class="clear-fix"></div>
<div class="divider my-5"></div>
<div class="partners-quick flex flex-wrap">
<div class="partner-quick-title partner-item w-full">
<h3 class="partner-quick-title py-2 mb-2">
{{ .Site.Params.partners.support-us }}
{{ index .Site.Params.partners "support-us" | safeHTML }}
</h3>
</div>
@ -109,10 +109,5 @@
</div>
</div>
Index
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
{{ range $paginator.Pages }}
{{ .Render "summary" }}
{{ end }}
{{ partial "pagination.html" . }}
</main>
{{ end }}

View file

@ -0,0 +1,53 @@
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment.min.js" integrity="sha512-hUhvpC5f8cgc04OZb55j0KNGh4eh7dLxd/dPSJ5VyzqDWxsayYbojWyl5Tkcgrmb/RVKCRJI1jNlRbVP4WWC4w==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment-with-locales.min.js" integrity="sha512-4F1cxYdMiAW98oomSLaygEwmCnIP38pb4Kx70yQYqRwLVCs3DbRumfBq82T08g/4LJ/smbFGFpmeFlQgoDccgg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/locale/{{ .Lang }}.min.js" integrity="sha512-RAt2+PIRwJiyjWpzvvhKAG2LEdPpQhTgWfbEkFDCo8wC4rFYh5GQzJBVIFDswwaEDEYX16GEE/4fpeDNr7OIZw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<div class="articles-list transition-parent">
{{ $allposts := (where site.RegularPages "Section" "=" site.Params.mainSections)}}
{{ $allposts = $allposts.ByDate }}
{{ $context := (page.GetPage "/posts")}}
{{ if (eq (len $allposts) 0) }}
<div
class="section-error-container transition-child"
style="height: 100%;">
<div class="section-error-content">
<i class="fa fas fa-times-circle"></i>
{{ .Site.Params.articles.empty }}
</div>
</div>
{{ else }}
<div
class="articles">
{{ range $index, $article := ($context.Page.Paginate $allposts .ammount).Pages }}
<a class=article href="{{ $article.RelPermalink }}">
<article>
<div
style="background-image:url({{ $article.Params.banner }});"
class="article-thumb">
</div>
{{ if (and (eq $index 0) (lt (sub $article.Date.Day time.Now.Day ) 14)) }}
<span
class="article-status">NEW</span>
{{ end }}
<div class="article-body">
<div class="article-title">
{{ $article.Title }}
</div>
<div class="article-subtitle">
<span id=from-now data-date="{{ $article.Date.Format "20060102" }}"></span>
</div>
<p class="article-description">
{{ $article.Description }}
</p>
</div>
</article>
</a>
{{ end }}
</div>
{{ end }}
</div>
<script>
moment.locale("{{ .context.Lang }}");
document.querySelectorAll("#from-now").forEach(e=>{e.innerHTML = moment(e.getAttribute("data-date"),"YYYYMMDD").fromNow();});
</script>
{{/* partial "pagination.html" . */}}

105
layouts/posts/list.html Normal file
View file

@ -0,0 +1,105 @@
{{ define "main" }}
{{ $showDatesList := false }}
<div>
<div class="cover">
<div class="cover-back"></div>
<div class="cover-container">
<div class="container mx-auto">
<div class="cover-title">
<h1>{{ site.Params.blog.title }}</h1>
</div>
</div>
</div>
</div>
<div class="content">
<div class="container mx-auto">
{{ if $showDatesList }}
<div
class="sort-by-dates-container"
>
<h3 class="ml-2">{{ (index site.Params.articles "sort-by-years").title }}</h3>
<ul class="dates-mosaic">
<li>
<a
class="link link-primary"
@click="filterYear(null)">{{ site.Params.articles.all }}</a>
</li>
{{ range (.Pages.GroupByDate "2006") }}
<li>
<a
class="link link-primary"
@click="filterYear(year.name)">{{ .Key }}</a> : {{(len .)}} {{ (index site.Params.articles "sort-by-years").posts }}
</li>
{{ end }}
</ul>
</div>
{{ end }}
<div class="blog-title-container py-2">
<h2 class="index-icon-title blog-title">
<i class="fa fas fa-newspaper"></i>
{{ site.Params.articles.all }}
</h2>
<div class="sort">
<div
class="link button button-primary"
@click="fetchDates">
<div class="button-icon">
{{ if $showDatesList }}
<i
class="fa fas fa-calendar"></i>
{{ else }}
<i class="fa fas fa-times"></i>
{{end}}
</div>
{{ if not $showDatesList }}
<div
class="button-text">{{ (index site.Params.articles "sort-by-years").title }}</div>
{{ else }}
<div
class="button-text">{{ (index site.Params.articles "sort-by-years").close }}</div>
{{ end }}
</div>
</div>
</div>
<div class="mt-4">
{{partial "articles.html" (dict "Paging" true "context" . "ammount" 3)}}
</div>
<div class="mt-6 pt-2 blog-pagination">
<div class="blog-pagination-previous">
<a
class="{{ if .Paginator.HasPrev }}disabled{{end}}"
class="button button-primary mobile-icon"
href="{{ if .Paginator.HasPrev}}{{.Paginator.Prev.URL}}{{ end }}">
<div class="button-icon">
<i class="fa fas fa-arrow-left"></i>
</div>
<div class="link button-text">
{{ site.Params.previous }}
</div>
</a>
</div>
<div class="blog-pagination-current">
Page {{ .Paginator.PageNumber }}/{{ .Paginator.TotalPages }}
</div>
<div class="blog-pagination-next">
<a
class="{{ if .Paginator.HasNext }}disabled{{end}}"
class="button button-primary mobile-icon"
href="{{ if .Paginator.HasNext }}{{.Paginator.Next.URL }}{{end}}">
<div class="link button-text">
{{ site.Params.next }}
</div>
<div class="button-icon">
<i class="fa fas fa-arrow-right"></i>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
{{ end }}