add: guides now show author and tags
continuous-integration/drone/push Build is passing Details

main
parent 9653a14cdc
commit 0c6218f27f

@ -25,6 +25,7 @@ const guidesCollection = defineCollection({
id: z.string(), id: z.string(),
title: z.string(), title: z.string(),
description: z.string(), description: z.string(),
author: z.string(),
series: z.string().optional(), series: z.string().optional(),
tags: z.array(z.string()), tags: z.array(z.string()),
}), }),

@ -9,7 +9,9 @@ tags: [poisson, password]
Se per qualche strano motivo hai dimenticato la tua password Poisson, niente paura! La procedura è super semplice: Se per qualche strano motivo hai dimenticato la tua password Poisson, niente paura! La procedura è super semplice:
1. Scrivi una mail a **macchinisti@lists.dm.unipi.it**. 1. Scrivi una mail a **macchinisti@lists.dm.unipi.it**.
2. Nella mail, specifica il tuo nome, cognome, username di ateneo (quello della tua email istituzionale) e se lo ricordi, anche il tuo username Poisson. 2. Nella mail, specifica il tuo nome, cognome, username di ateneo (quello della tua email istituzionale) e se lo ricordi, anche il tuo username Poisson.
3. Attendi pazientemente la risposta dei macchinisti, che ti resetteranno la password e ti invieranno una nuova via email. 3. Attendi pazientemente la risposta dei macchinisti, che ti resetteranno la password e ti invieranno una nuova via email.
E voilà, in un batter d'occhio sarai di nuovo pronto a entrare nel fantastico mondo di Poisson. E voilà, in un batter d'occhio sarai di nuovo pronto a entrare nel fantastico mondo di Poisson.

@ -18,6 +18,20 @@ const { Content } = await entry.render()
<ArticleLayout {...entry.data} pageTags={['guida', entry.data.id, entry.data.series && 'series']}> <ArticleLayout {...entry.data} pageTags={['guida', entry.data.id, entry.data.series && 'series']}>
<h1>{entry.data.title}</h1> <h1>{entry.data.title}</h1>
{entry.data.series && <div class="series">Serie: {entry.data.series}</div>} {entry.data.series && <div class="series">Serie: {entry.data.series}</div>}
<Content /> <Content />
<div class="metadata">
<div class="metadata-item">
<strong>Autore</strong>
{entry.data.author}
</div>
<div class="metadata-item">
<strong>Tags</strong>
<div class="tags">
{entry.data.tags.map(tag => <a href={`/guide/tags/${tag}`}>#{tag}</a>)}
</div>
</div>
</div>
</ArticleLayout> </ArticleLayout>

@ -7,7 +7,9 @@ const guides = await getCollection('guides')
--- ---
<PageLayout pageTags="guide"> <PageLayout pageTags="guide">
<h1>Guide</h1> <h1>
<a href="/guide">Guide</a>
</h1>
<div class="card-list"> <div class="card-list">
{ {
guides.toReversed().map(guide => ( guides.toReversed().map(guide => (

@ -34,7 +34,7 @@ const { tag, guides } = Astro.props
--- ---
<PageLayout pageTags="guide tag"> <PageLayout pageTags="guide tag">
<h1>Guide > #{tag}</h1> <h1><a href="/guide">Guide</a> > <a href={`/guide/tags/${tag}`}>#{tag}</a></h1>
<div class="card-list"> <div class="card-list">
{ {
guides.map(guide => ( guides.map(guide => (

@ -7,7 +7,7 @@ const news = await getCollection('news')
--- ---
<PageLayout pageTags="notizie"> <PageLayout pageTags="notizie">
<h1>Notizie</h1> <h1><a href="/notizie">Notizie</a></h1>
<div class="card-list"> <div class="card-list">
{ {
news.map(newsItem => ( news.map(newsItem => (

@ -462,6 +462,12 @@
} }
.notizie { .notizie {
h1 > a {
&:hover {
text-decoration: underline 3px solid;
}
}
main { main {
justify-self: center; justify-self: center;
@ -508,6 +514,12 @@
} }
.guide { .guide {
h1 > a {
&:hover {
text-decoration: underline 3px solid;
}
}
main { main {
justify-self: center; justify-self: center;
@ -531,6 +543,40 @@
margin-top: 3rem; margin-top: 3rem;
margin-bottom: 6rem; margin-bottom: 6rem;
position: relative;
.metadata {
position: absolute;
top: -2px;
left: calc(100% + 2rem);
width: 15rem;
display: grid;
grid-auto-flow: row;
gap: 1rem;
justify-items: start;
.metadata-item {
background: var(--card-base);
display: grid;
grid-template-rows: auto auto;
justify-items: start;
gap: 0.25rem;
padding: 0.75rem 1rem;
@include neo-brutalist-card($size: 3px);
.tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
}
}
@media screen and (max-width: $screen-desktop-min) { @media screen and (max-width: $screen-desktop-min) {
box-shadow: none; box-shadow: none;
border: none; border: none;
@ -538,6 +584,15 @@
max-width: none; max-width: none;
margin: 0 auto; margin: 0 auto;
.metadata {
position: static;
padding: 0;
width: auto;
margin: 0;
--card-base: color-mix(in lab, var(--guide-base), #fff 30%);
}
} }
} }
} }

@ -194,6 +194,11 @@
ol, ol,
ul { ul {
margin-bottom: var(--paragraph-margin, 1rem); margin-bottom: var(--paragraph-margin, 1rem);
padding-left: 1.5rem;
p {
--paragraph-margin: 0.5rem;
}
} }
a, a,
@ -218,6 +223,14 @@
} }
} }
hr {
max-width: calc(100vw - 4rem);
width: 40ch;
margin: 3rem auto 2.75rem;
border: none;
border-top: 2px solid #0003;
}
@media screen and (max-width: $screen-desktop-min) { @media screen and (max-width: $screen-desktop-min) {
& > * { & > * {
margin: 0 0.75rem; margin: 0 0.75rem;

Loading…
Cancel
Save