Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Deploy stack su Proxmox / deploy (push) Failing after 3s
Deploy stack su Proxmox / deploy (push) Failing after 3s
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA), apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/; infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e workflow Gitea Actions per il deploy via SSH a ogni push su master. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
// Tipografia del corpo degli articoli del blog: HTML generato dal markdown dall'API (marked + sanitize-html).
|
||||
// Usata dal sito pubblico (pagina articolo) e dall'anteprima dell'editor admin: stesso aspetto nei due punti.
|
||||
// Il contenuto è inserito con [innerHTML], senza attributi di incapsulamento: includere dentro `::ng-deep`.
|
||||
|
||||
/// Stili del contenitore (larghezza di lettura, corpo del testo).
|
||||
@mixin container {
|
||||
max-width: 72ch;
|
||||
font-size: var(--font-size-lg);
|
||||
line-height: var(--line-height-normal);
|
||||
}
|
||||
|
||||
/// Stili degli elementi generati dal markdown.
|
||||
/// @example .prose { @include prose.container; } .prose ::ng-deep { @include prose.content; }
|
||||
@mixin content {
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
margin-top: var(--space-6);
|
||||
margin-bottom: var(--space-3);
|
||||
}
|
||||
h2 {
|
||||
font-size: var(--font-size-2xl);
|
||||
}
|
||||
h3 {
|
||||
font-size: var(--font-size-xl);
|
||||
}
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote,
|
||||
pre,
|
||||
table,
|
||||
figure {
|
||||
margin-block: 0 var(--space-4);
|
||||
}
|
||||
li + li {
|
||||
margin-top: var(--space-2);
|
||||
}
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: var(--radius-md);
|
||||
}
|
||||
figure {
|
||||
margin-inline: 0;
|
||||
}
|
||||
figcaption {
|
||||
margin-top: var(--space-2);
|
||||
font-size: var(--font-size-sm);
|
||||
color: var(--color-ink-muted);
|
||||
}
|
||||
blockquote {
|
||||
margin-inline: 0;
|
||||
padding: var(--space-3) var(--space-5);
|
||||
border-left: 4px solid var(--color-primary);
|
||||
background: var(--color-primary-soft);
|
||||
border-radius: 0 var(--radius-md) var(--radius-md) 0;
|
||||
|
||||
p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
code {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.9em;
|
||||
padding: 0.1em 0.3em;
|
||||
border-radius: var(--radius-sm);
|
||||
background: var(--color-surface-alt);
|
||||
}
|
||||
pre {
|
||||
overflow-x: auto;
|
||||
padding: var(--space-4);
|
||||
border-radius: var(--radius-md);
|
||||
background: var(--color-surface-alt);
|
||||
font-size: var(--font-size-sm);
|
||||
|
||||
code {
|
||||
padding: 0;
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
table {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
overflow-x: auto;
|
||||
border-collapse: collapse;
|
||||
font-size: var(--font-size-md);
|
||||
}
|
||||
th,
|
||||
td {
|
||||
padding: var(--space-2) var(--space-3);
|
||||
border: 1px solid var(--color-line);
|
||||
text-align: left;
|
||||
}
|
||||
th {
|
||||
background: var(--color-surface-alt);
|
||||
}
|
||||
hr {
|
||||
margin-block: var(--space-6);
|
||||
border: 0;
|
||||
border-top: 1px solid var(--color-line);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user