Le modèle de départ pour les startups d'IA. Authentification, paiement et i18n inclus. English
Concepts de base

Utilisation de base

Pages et gabarits

Chaque page est un petit fichier d'en-tête dans src/content/en/ ou src/content/fr/ qui pointe vers un gabarit de src/_includes/layouts/. Par exemple, src/content/fr/tarifs.njk :

---
layout: layouts/pricing.njk
permalink: /fr/tarifs/index.html
locale: fr
title: Tarifs
altLangUrl: /pricing/
altLangLocale: en
---

Le gabarit contient le balisage, partagé par les deux langues. altLangUrl relie chaque page à sa traduction, ce qui alimente le sélecteur de langue et les balises hreflang.

Traductions

Les textes de l'interface se trouvent dans src/_data/i18n.js sous forme de clés simples, avec un dictionnaire par langue. Les gabarits utilisent le filtre t :

<h1>{{ "pricing.page_title" | t(locale) }}</h1>

L'application navigateur utilise le même dictionnaire grâce à t() dans src/js/app.js. bun run i18n:check échoue s'il manque une clé, un article ou une page dans l'une des deux langues.

Ajouter une page

  1. Créez le gabarit, par exemple src/_includes/layouts/about.njk, qui étend layouts/base.njk.
  2. Ajoutez src/content/en/about.njk et src/content/fr/a-propos.njk avec des valeurs altLangUrl qui se répondent.
  3. Ajoutez ses textes aux deux dictionnaires de i18n.js.
  4. Ajoutez-la à src/_data/navigation.js si elle doit figurer dans l'en-tête.

Les pages à ne pas indexer, comme les pages de compte et de paiement, utilisent noindex: true. Elles sont exclues du plan du site mais gardent leurs liens canoniques.

Articles et guides

Les articles du blogue sont des fichiers Markdown dans content/<langue>/blog/, et chacun partage une translationKey avec sa traduction. Les guides se trouvent dans content/<langue>/guides/ et sont regroupés dans le menu latéral selon leurs champs section et order.

L'application navigateur

src/js/app.js est un petit module. Un seul gestionnaire de clics traite les attributs data-action, et render() met la page à jour à partir d'un seul objet state. Le code propre à une page peut vivre dans src/js/pages/ : il est déclaré dans PAGE_MODULES et chargé séparément, seulement sur les pages dont le gabarit définit pageModule.

Offre de lancement : 20 % de rabais sur les deux licences avec le code LAUNCH20 au paiement.