diff --git a/README.md b/README.md index dce2152..cdc8fec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# IA qu'à... — Blog +# IA qu'à — Blog Blog statique personnel sur l'IA en PME. diff --git a/astro.config.mjs b/astro.config.mjs index ccd8d5a..7d9847f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -3,12 +3,104 @@ import mdx from "@astrojs/mdx"; import sitemap from "@astrojs/sitemap"; import tailwind from "@astrojs/tailwind"; +/** + * "IA qu'à" Atom Syntax theme — Electric Teal color package §3/§4. + * Dark Slate canvas with the 7-color diagnostic spectrum mapped onto + * standard code tokens. Used for all fenced code blocks (light & dark site). + */ +const iaQuaSyntax = { + name: "ia-qua-atom-syntax", + type: "dark", + colors: { + "editor.background": "#0F172A", + "editor.foreground": "#F1F5F9", + }, + settings: [ + { settings: { background: "#0F172A", foreground: "#F1F5F9" } }, + // comment / metadata → Orchid + { + scope: ["comment", "punctuation.definition.comment", "string.comment"], + settings: { foreground: "#8B5CF6", fontStyle: "italic" }, + }, + // keyword / control → Ember + { + scope: [ + "keyword", + "keyword.control", + "storage", + "storage.type", + "storage.modifier", + "keyword.operator.new", + "entity.name.tag", + ], + settings: { foreground: "#FF6B00" }, + }, + // string / regex → Gold + { + scope: [ + "string", + "string.quoted", + "string.template", + "constant.other.symbol", + "string.regexp", + ], + settings: { foreground: "#F59E0B" }, + }, + // support / type / class → Emerald + { + scope: [ + "entity.name.class", + "entity.name.type", + "support.type", + "support.class", + "storage.type.class", + "entity.other.attribute-name", + ], + settings: { foreground: "#10B981" }, + }, + // entity / function → Indigo + { + scope: [ + "entity.name.function", + "support.function", + "meta.function-call", + "variable.function", + ], + settings: { foreground: "#6366F1" }, + }, + // variable / parameter & numerics → Sky + { + scope: [ + "variable", + "variable.other", + "variable.parameter", + "support.variable", + "constant.numeric", + "constant.language", + "constant", + ], + settings: { foreground: "#0EA5E9" }, + }, + // exception / invalid → Rose + { + scope: ["invalid", "invalid.illegal", "invalid.deprecated"], + settings: { foreground: "#F43F5E" }, + }, + // punctuation kept muted + { + scope: ["punctuation", "meta.brace", "punctuation.separator"], + settings: { foreground: "#94A3B8" }, + }, + ], +}; + export default defineConfig({ site: "https://ia-qua.fr", // À changer si autre domaine integrations: [mdx(), sitemap(), tailwind()], markdown: { shikiConfig: { - theme: "github-dark", + theme: iaQuaSyntax, + wrap: false, }, }, }); diff --git a/deploy.sh b/deploy.sh index 5e99aa3..a2dfe93 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -# ─── deploy.sh — Blog IA qu'à... ─── +# ─── deploy.sh — Blog IA qu'à ─── # Usage : sudo bash deploy.sh # Depuis le répertoire du repo sur Cloudbreak diff --git a/public/favicon.svg b/public/favicon.svg index 4637905..dee87e0 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,4 +1,10 @@ - - IA + + + + + + + + IA diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..8842bfe --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + IA + qu + + à + + diff --git a/src/components/ArticleCard.astro b/src/components/ArticleCard.astro index 34749d4..812eb2b 100644 --- a/src/components/ArticleCard.astro +++ b/src/components/ArticleCard.astro @@ -20,21 +20,44 @@ const formattedDate = pubDate.toLocaleDateString("fr-FR", { }); --- -
+
- {heroImage ? ( - {title} - ) : ( -
- -
- )} + { + heroImage ? ( + {title} + ) : ( +
+ +
+ ) + }
- {series &&
} - {category} -

{title}

-

{description}

- {formattedDate} + { + series && ( +
+ +
+ ) + } + {category} +

+ {title} +

+

+ {description} +

+ {formattedDate}
diff --git a/src/components/BrandLogo.astro b/src/components/BrandLogo.astro new file mode 100644 index 0000000..6b80a07 --- /dev/null +++ b/src/components/BrandLogo.astro @@ -0,0 +1,44 @@ +--- +/** + * BrandLogo — wordmark "IA qu'à" (color package §1, palette Classic Electric Teal). + * "IA" + apostrophe en dégradé cyan→bleu, "qu'à" en slate adaptatif (clair/sombre). + * Double sens assumé : "IA qu'à" ↔ "Y'a qu'à". Rendu en Inter (police du site). + */ +interface Props { + class?: string; +} +const { class: className = "h-7 w-auto" } = Astro.props; +// id unique pour éviter les collisions de gradient si plusieurs instances +const gid = "iaGrad-" + Math.random().toString(36).slice(2, 8); +--- + + + + + + + + + + IA + qu + + à + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 7338e28..6032a8a 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -2,12 +2,20 @@ const year = new Date().getFullYear(); --- -