📖 Guide d'importation depuis Notion
Ce guide explique comment configurer l'importation automatique depuis Notion lors du build de votre Space HuggingFace.
🎯 Principe de fonctionnement
Lors du build Docker sur HuggingFace Spaces, si les variables d'environnement sont configurées :
- Le script va chercher votre page Notion
- Extrait automatiquement le titre et génère le slug
- Convertit le contenu en MDX
- Build l'application avec le nouveau contenu
Avantage : Vous modifiez votre article dans Notion, puis vous cliquez sur "Factory Reboot" dans HF Spaces → le site est automatiquement mis à jour !
⚙️ Configuration sur HuggingFace Spaces
1. Créer une intégration Notion
- Allez sur https://www.notion.so/my-integrations
- Cliquez sur "New integration"
- Donnez un nom (ex: "HF Article Importer")
- Sélectionnez votre workspace
- Cliquez sur "Submit"
- Copiez le token (format:
secret_xxxxx...)
2. Partager votre page Notion avec l'intégration
- Ouvrez votre page Notion
- Cliquez sur "Share" (en haut à droite)
- Cliquez sur "Invite"
- Recherchez le nom de votre intégration
- Sélectionnez-la et donnez la permission "Can read content"
- Cliquez sur "Invite"
3. Récupérer l'ID de votre page Notion
L'ID se trouve dans l'URL de votre page :
https://www.notion.so/Mon-Article-27877f1c9c9d804d9c82f7b3905578ff
└─────────────────┬─────────────────┘
C'est cet ID !
Exemple : 27877f1c9c9d804d9c82f7b3905578ff
4. Configurer les variables d'environnement sur HF Spaces
- Allez dans les Settings de votre Space
- Section "Repository secrets"
- Ajoutez ces 3 variables :
| Variable | Valeur | Secret ? |
|---|---|---|
ENABLE_NOTION_IMPORT |
true |
Non |
NOTION_TOKEN |
secret_xxx... |
Oui ✅ |
NOTION_PAGE_ID |
27877f1c... |
Non |
Important : Cochez la case "Secret" pour NOTION_TOKEN uniquement !
5. Rebuild votre Space
- Allez dans l'onglet "Settings"
- Cliquez sur "Factory reboot"
- Attendez le rebuild (~5-10 minutes)
- Votre article Notion est maintenant publié ! 🎉
🔄 Workflow de mise à jour
┌─────────────────────────┐
│ 1. Éditez dans Notion │
│ (brouillon privé) │
└───────────┬─────────────┘
│
↓
┌─────────────────────────┐
│ 2. Vérifiez le contenu │
│ (preview Notion) │
└───────────┬─────────────┘
│
↓
┌─────────────────────────┐
│ 3. HF Spaces → │
│ "Factory Reboot" │
└───────────┬─────────────┘
│
↓
┌─────────────────────────┐
│ 4. Attendez 5-10 min │
│ (build Docker) │
└───────────┬─────────────┘
│
↓
┌─────────────────────────┐
│ 5. Site mis à jour ! ✅ │
│ (zéro downtime) │
└─────────────────────────┘
🧪 Test en local
Avant de publier, vous pouvez tester en local :
# 1. Créer un fichier .env dans app/scripts/notion-importer/
cd app/scripts/notion-importer
cp env.example .env
# 2. Éditer .env avec vos credentials
# NOTION_TOKEN=secret_xxx
# NOTION_PAGE_ID=abc123
# 3. Installer les dépendances
npm install
# 4. Lancer l'import
node index.mjs
# 5. Le contenu est copié dans app/src/content/article.mdx
# Les images dans app/src/content/assets/image/
# 6. Lancer le serveur de dev Astro
cd ../.. # Retour à app/
npm run dev
# 7. Ouvrir http://localhost:4321
📋 Fonctionnalités supportées
✅ Supporté automatiquement
- Texte formaté (gras, italique, code inline)
- Titres (h1, h2, h3, etc.)
- Listes (ordonnées, non-ordonnées)
- Images (téléchargées et converties)
- Liens externes
- Blocs de code avec syntaxe
- Callouts → Composant
Note - Tables → Composant stylisé
- Citations
- Équations LaTeX (inline et bloc)
⚠️ Conversion manuelle requise
- Bases de données Notion → Créer en MDX
- Toggles → Utiliser
Accordion - Embeds complexes → Utiliser
HtmlEmbed - Graphiques → Utiliser
Trackioou d3.js
🔧 Désactiver l'import Notion
Pour revenir à l'édition manuelle du MDX :
- HF Spaces → Settings → Repository secrets
- Changez
ENABLE_NOTION_IMPORTàfalse - Ou supprimez les variables d'env
Le site continuera de fonctionner avec le dernier contenu importé.
🆘 Dépannage
Erreur "❌ NOTION_TOKEN not found"
→ Vérifiez que vous avez bien créé la variable NOTION_TOKEN dans les secrets HF
Erreur "❌ Could not find Notion page"
→ Vérifiez que vous avez bien partagé la page avec votre intégration Notion
L'import ne se lance pas au build
→ Vérifiez que ENABLE_NOTION_IMPORT=true (sans guillemets)
Le build échoue pendant l'import
→ Regardez les logs du build dans HF Spaces pour voir l'erreur exacte
💡 Conseils
- Testez en local d'abord : Évitez les surprises en prod
- Structure claire : Utilisez bien les titres h1, h2, h3 dans Notion
- Images optimisées : Les images sont téléchargées et intégrées
- Commits Git : Pour un vrai versioning, committez aussi les MDX générés
- Brouillons : Gardez des pages privées pour vos brouillons Notion