fix: amélioration script create-team-page avec iframe et awk
- Page Next.js utilise iframe pour charger team.html (plus simple) - Utilisation d'awk pour modification Navigation.tsx (plus robuste) - Meilleure gestion des erreurs
This commit is contained in:
@@ -6,56 +6,31 @@ TECHRADAR_DIR=".techradar"
|
||||
TEAM_PAGE="$TECHRADAR_DIR/src/pages/team.tsx"
|
||||
NAV_FILE="$TECHRADAR_DIR/src/components/Navigation/Navigation.tsx"
|
||||
|
||||
# Créer la page team.tsx
|
||||
# Créer la page team.tsx qui charge team.html via iframe (plus simple et fiable)
|
||||
if [ ! -f "$TEAM_PAGE" ]; then
|
||||
mkdir -p "$(dirname "$TEAM_PAGE")"
|
||||
cat > "$TEAM_PAGE" << 'EOF'
|
||||
import Head from "next/head";
|
||||
import { useEffect } from "react";
|
||||
import { CustomPage } from "@/pages/_app";
|
||||
|
||||
const TeamPage: CustomPage = () => {
|
||||
useEffect(() => {
|
||||
// Charger le contenu de team.html dans cette page
|
||||
const loadTeamPage = async () => {
|
||||
try {
|
||||
const response = await fetch('/team.html');
|
||||
if (response.ok) {
|
||||
const html = await response.text();
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(html, 'text/html');
|
||||
const content = doc.body.innerHTML;
|
||||
const container = document.getElementById('team-container');
|
||||
if (container) {
|
||||
container.innerHTML = content;
|
||||
// Réexécuter les scripts
|
||||
const scripts = container.querySelectorAll('script');
|
||||
scripts.forEach(oldScript => {
|
||||
const newScript = document.createElement('script');
|
||||
Array.from(oldScript.attributes).forEach(attr => {
|
||||
newScript.setAttribute(attr.name, attr.value);
|
||||
});
|
||||
newScript.textContent = oldScript.textContent;
|
||||
oldScript.parentNode?.replaceChild(newScript, oldScript);
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erreur lors du chargement de team.html:', error);
|
||||
}
|
||||
};
|
||||
loadTeamPage();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>Équipe & Technologies - Laplank</title>
|
||||
</Head>
|
||||
<div id="team-container" style={{ minHeight: '100vh' }}>
|
||||
<div style={{ textAlign: 'center', padding: '40px' }}>
|
||||
<p>Chargement de la page Équipe...</p>
|
||||
</div>
|
||||
<div style={{ width: '100%', height: '100vh', border: 'none', margin: 0, padding: 0 }}>
|
||||
<iframe
|
||||
src="/team.html"
|
||||
style={{
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
border: 'none',
|
||||
margin: 0,
|
||||
padding: 0
|
||||
}}
|
||||
title="Équipe & Technologies"
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
@@ -63,7 +38,7 @@ const TeamPage: CustomPage = () => {
|
||||
|
||||
export default TeamPage;
|
||||
EOF
|
||||
echo "✅ Page team.tsx créée"
|
||||
echo "✅ Page team.tsx créée (iframe)"
|
||||
else
|
||||
echo "ℹ️ Page team.tsx existe déjà"
|
||||
fi
|
||||
@@ -71,18 +46,28 @@ fi
|
||||
# Modifier Navigation.tsx pour ajouter le lien
|
||||
if [ -f "$NAV_FILE" ]; then
|
||||
if ! grep -q 'href="/team"' "$NAV_FILE"; then
|
||||
# Ajouter le lien après Overview
|
||||
sed -i '/href="\/overview"/a\
|
||||
<li className={styles.item}>\
|
||||
<Link href="/team">\
|
||||
<span className={styles.label}>👥 Équipe</span>\
|
||||
</Link>\
|
||||
</li>' "$NAV_FILE"
|
||||
# Ajouter le lien après Overview, avant le commentaire
|
||||
# Utiliser une approche plus robuste avec awk ou perl
|
||||
awk '
|
||||
/href="\/overview"/ {
|
||||
print
|
||||
getline
|
||||
print
|
||||
print " <li className={styles.item}>"
|
||||
print " <Link href=\"/team\">"
|
||||
print " <span className={styles.label}>👥 Équipe</span>"
|
||||
print " </Link>"
|
||||
print " </li>"
|
||||
next
|
||||
}
|
||||
{ print }
|
||||
' "$NAV_FILE" > "$NAV_FILE.tmp" && mv "$NAV_FILE.tmp" "$NAV_FILE"
|
||||
echo "✅ Lien Équipe ajouté au composant Navigation"
|
||||
else
|
||||
echo "ℹ️ Lien Équipe déjà présent dans Navigation"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Navigation.tsx non trouvé"
|
||||
echo "⚠️ Navigation.tsx non trouvé: $NAV_FILE"
|
||||
ls -la "$(dirname "$NAV_FILE")" || echo "Dossier non trouvé"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user