Aller au contenu
Point Rouge
Retour

Comment configurer le thème Point Rouge

Mis à jour:

Ce guide couvre les options de configuration disponibles dans Point Rouge — des métadonnées du site et des indicateurs de fonctionnalités aux polices, liens sociaux et paramètres de mise en page.

Table des matières

Configuration d’point-rouge.config.ts

Toute la configuration à l’échelle du site réside dans point-rouge.config.ts à la base du projet. Utiliser definePointRougeConfig() pour bénéficier de la prise en charge complète d’IntelliSense :

import { definePointRougeConfig } from "./src/types/config";

export default definePointRougeConfig({
  site: {
    url: "https://example.com", // replace with your deployed URL
    title: "Point Rouge",
    description: "Free, independent media for human common sense.",
    author: "Monsieur Klein",
    profile: "https://www.klein.com",
    ogImage: "default-og.jpg",
    lang: "en",
    timezone: "Asia/Bangkok",
    dir: "ltr",
  },
  posts: {
    perPage: 4,
    perIndex: 4,
    scheduledPostMargin: 15 * 60 * 1000, // 15 minutes
  },
  features: {
    lightAndDarkMode: true,
    dynamicOgImage: true,
    showArchives: true,
    showBackButton: true,
    editPost: {
      enabled: true,
      url: "https://github.com/satnaing/astro-paper/edit/main/",
    },
    search: "pagefind",
  },
  socials: [
    { name: "github", url: "https://github.com/satnaing/astro-paper" },
    { name: "x", url: "https://x.com/username" },
    { name: "linkedin", url: "https://www.linkedin.com/in/username/" },
    { name: "mail", url: "mailto:yourmail@gmail.com" },
  ],
  shareLinks: [
    { name: "whatsapp", url: "https://wa.me/?text=" },
    { name: "facebook", url: "https://www.facebook.com/sharer.php?u=" },
    { name: "x", url: "https://x.com/intent/post?url=" },
    { name: "telegram", url: "https://t.me/share/url?url=" },
    { name: "mail", url: "mailto:?subject=See%20this%20post&body=" },
  ],
});point-rouge.config.ts

site choix

OptionsDescriptif
urlURL de votre site web déployé. Utilisé pour les URL canoniques, les URL d’images OG, les flux RSS et le plan du site. En production, cela doit être réglé correctement.
titleLe nom de votre site.
descriptionDescription de votre site. Utile pour le référencement et le partage sur les réseaux sociaux.
authorVotre nom. Utilisé comme auteur de publication par défaut.
profileL’URL de votre site web personnel/de portefeuille, utilisée pour les données structurées. Régler sur undefined si vous n’en avez pas.
ogImageNom de fichier image OG par défaut dans /public (par ex. "default-og.jpg"). Utilisé lorsqu’aucune image OG post-spécifique n’est définie et dynamicOgImage est désactivé.
langCode de langue HTML ISO pour <html lang="...">. La valeur par défaut est "en".
timezoneFuseau horaire IANA pour les dates de publication (par ex. "Asia/Bangkok"). Garantit des horodatages cohérents sur localhost et votre site déployé.
dirDirection du texte pour <html dir="...">. Prise en charge "ltr" | "rtl" | "auto".
googleVerificationValeur de la balise méta de vérification de la console de recherche Google. Facultatif. A la priorité sur le PUBLIC_GOOGLE_SITE_VERIFICATION variable d’environnement.

posts choix

OptionsDescriptif
perPageNombre de publications affichées par page sur les pages de liste paginées. La valeur par défaut est 4.
perIndexNombre de publications affichées dans la section Récente de la page d’accueil. La valeur par défaut est 4.
scheduledPostMarginDes articles avec un avenir pubDatetime dans cette fenêtre (en ms) sont traités comme publiés. La valeur par défaut est 15 minutes (15 * 60 * 1000).

features choix

OptionsDescriptif
lightAndDarkModeActivez ou désactivez le basculement du mode clair/sombre. La valeur par défaut est true.
dynamicOgImageGénérez une image OG dynamique par publication lorsque non ogImage est spécifié en première matière. La valeur par défaut est true. Voir le compromis pour plus de détails.
showArchivesMontrer le /archives page et son lien d’en-tête. La valeur par défaut est true.
showBackButtonAfficher le bouton « Retour » sur les pages de publication. La valeur par défaut est true.
editPostUn lien « Modifier la page » affiché sous les titres des articles. Ensemble enabled: true et fournir la base url pour l’URL de modification de votre référentiel. Remplacement par publication via hideEditPost avant-gardiste.
searchFournisseur de recherche. "pagefind" est la valeur par défaut. Régler sur false pour désactiver complètement la recherche.

Mettre à jour la largeur de la mise en page

La valeur par défaut max-width pour l’ensemble du blog est 768px (max-w-3xl). Si vous souhaitez le modifier, mettez à jour le max-w-app utilité dans src/styles/global.css:

@utility max-w-app {
  @apply max-w-3xl;
  @apply max-w-4xl xl:max-w-5xl;
}src/styles/global.css

Vous pouvez explorer davantage max-width valeurs dans le Documentation CSS Tailwind.

Configuration du logo ou du titre

Vous pouvez faire 3 options :

Option 1 : Texte du titre du site

C’est l’option la plus simple. Mise à jour site.title dans point-rouge.config.ts.

Option 2 : le composant SVG d’Astro

Vous souhaiterez peut-être utiliser cette option si vous souhaitez utiliser un logo SVG.

La meilleure partie de cette approche est que vous pouvez personnaliser vos styles SVG selon vos besoins. Dans l’exemple ci-dessus, vous pouvez voir comment la couleur du logo SVG peut être inversée en mode sombre.

Option 3 : le composant Image d’Astro

Si votre logo est une image mais pas SVG, vous pouvez utiliser le composant Image d’Astro.

Avec cette approche, vous pouvez toujours ajuster l’apparence de votre image à l’aide de classes CSS. Cependant, cela ne correspond pas toujours à ce que vous souhaitez. Si vous devez afficher différentes images de logo en fonction du mode clair ou sombre, vérifiez comment les icônes claires/sombres sont gérées à l’intérieur du Header.astro composant.

Configurer les liens sociaux

Une flèche pointant vers les icônes de liens sociaux

Les liens sociaux sont configurés dans le socials tableau à l’intérieur point-rouge.config.ts. Chaque entrée nécessite un name correspondant à un nom de fichier Radix SVG dans src/assets/radix-icons/socials/ et un url:

export default definePointRougeConfig({
  // ...
  socials: [
    { name: "github", url: "https://github.com/satnaing/astro-paper" },
    { name: "x", url: "https://x.com/username" },
    { name: "linkedin", url: "https://www.linkedin.com/in/username/" },
    { name: "mail", url: "mailto:yourmail@gmail.com" },
  ],
});point-rouge.config.ts

Pour ajouter un réseau social qui ne figure pas dans les paramètres par défaut, ajoutez son icône Radix SVG à src/assets/radix-icons/socials/ et ajoutez une entrée au tableau. Le name doit correspondre au nom du fichier SVG sans le .svg prolongation.

Configuration des liens de partage

Une flèche pointant vers les icônes de liens de partage

Les liens de partage sont configurés dans le shareLinks tableau. Chaque entrée nécessite un name (correspondant à un Radix SVG dans src/assets/radix-icons/socials/) et une base url à laquelle l’URL de la publication est ajoutée :

export default definePointRougeConfig({
  // ...
  shareLinks: [
    { name: "whatsapp", url: "https://wa.me/?text=" },
    { name: "facebook", url: "https://www.facebook.com/sharer.php?u=" },
    { name: "x", url: "https://x.com/intent/post?url=" },
    { name: "telegram", url: "https://t.me/share/url?url=" },
    { name: "mail", url: "mailto:?subject=See%20this%20post&body=" },
  ],
});point-rouge.config.ts

Configuration des polices

Point Rouge utilise Astro API des polices avec Google Sans Code comme police par défaut. Cela fournit une typographie cohérente sur toutes les plates-formes avec des optimisations automatiques des polices, y compris le préchargement et la mise en cache.

Utiliser la police par défaut

La police est automatiquement configurée dans astro.config.ts et chargé dans Layout.astro. Aucune configuration supplémentaire n’est nécessaire pour utiliser la police Google Sans Code par défaut.

Personnalisation de la police

Pour utiliser une police différente, mettez à jour trois emplacements :

  1. Mettez à jour la configuration des polices dans astro.config.ts:
import { defineConfig, fontProviders } from "astro/config";

export default defineConfig({
  // ...
  fonts: [
    {
      name: "Your Font Name",
      cssVariable: "--font-your-font",
      provider: fontProviders.google(),
      fallbacks: ["monospace"],
      weights: [300, 400, 500, 600, 700],
      styles: ["normal", "italic"],
    },
  ],
});astro.config.ts
  1. Mettez à jour le composant Font dans Layout.astro:
---
import { Font } from "astro:assets";
// ...
---

<head>
  <!-- ... -->
  <Font
    cssVariable="--font-your-font"
    preload={[{ subset: "latin", weight: 400, style: "normal" }]}
  />
  <!-- ... -->
</head>src/layouts/Layout.astro
  1. Mettez à jour le mappage des variables CSS dans src/styles/theme.css:
@theme inline {
  --font-app: var(--font-your-font); 
  /* ... */
}src/styles/theme.css

Le --font-app La variable est utilisée tout au long du thème via le font-app Classe utilitaire Tailwind, donc la mise à jour de cette variable unique applique votre police personnalisée partout.

Avertissement

Assurez-vous que le nom de la police correspond exactement à celui qui apparaît sur Polices Google. Pour d’autres fournisseurs de polices ou polices locales, reportez-vous au Documentation des polices Astro.

Voir aussi


Partager cet article :

Article précédent
Génération d'images OG dynamiques dans les articles de blog Point Rouge
Article suivant
Point Rouge 6.0