feat(seo): mise à jour des métadonnées et intégration de Google Tag Manager
- Ajout du script Google Tag Manager dans index.html pour le suivi des performances. - Mise à jour des couleurs de thème dans index.html et site.webmanifest pour un meilleur contraste. - Révision des dates de dernière modification dans sitemap.xml pour refléter la date actuelle. - Changement des priorités et des URLs des projets dans sitemap.xml pour une meilleure organisation. - Modification de la gestion du thème par défaut dans useTheme.ts pour utiliser le mode sombre. - Mise à jour des paramètres de localisation dans site.ts et index.ts pour un meilleur support multilingue.
This commit is contained in:
19
index.html
19
index.html
@@ -5,6 +5,17 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function (w, d, s, l, i) {
|
||||
w[l] = w[l] || []; w[l].push({
|
||||
'gtm.start':
|
||||
new Date().getTime(), event: 'gtm.js'
|
||||
}); var f = d.getElementsByTagName(s)[0],
|
||||
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
|
||||
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
|
||||
})(window, document, 'script', 'dataLayer', 'GTM-5QH68BVJ');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<!-- Primary Meta Tags -->
|
||||
<title>Full Stack Developer Freelance Vue.js React Node.js | Killian Dalcin</title>
|
||||
<meta name="title" content="Full Stack Developer Freelance Vue.js React Node.js | Killian Dalcin">
|
||||
@@ -54,7 +65,8 @@
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
|
||||
<!-- Theme Color -->
|
||||
<meta name="theme-color" content="#2563eb">
|
||||
<meta name="theme-color" content="#111827" media="(prefers-color-scheme: dark)">
|
||||
<meta name="theme-color" content="#2563eb" media="(prefers-color-scheme: light)">
|
||||
|
||||
<!-- Structured Data -->
|
||||
<script type="application/ld+json">
|
||||
@@ -226,6 +238,11 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5QH68BVJ" height="0" width="0"
|
||||
style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
|
||||
|
@@ -4,8 +4,8 @@
|
||||
"description": "Professional Full Stack Developer specializing in Vue.js, React, Node.js. Expert in Discord bots, web applications, and custom software solutions.",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#ffffff",
|
||||
"theme_color": "#2563eb",
|
||||
"background_color": "#111827",
|
||||
"theme_color": "#111827",
|
||||
"orientation": "portrait-primary",
|
||||
"icons": [
|
||||
{
|
||||
|
@@ -3,129 +3,110 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
|
||||
<!-- Page d'accueil - Priorité maximale -->
|
||||
<!-- Home Page - Maximum Priority -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
|
||||
<!-- Page Services Fiverr - Haute priorité (conversions) -->
|
||||
<!-- Fiverr Services Page - High Priority (Business Focus) -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/fiverr</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
|
||||
<!-- Page Projets/Portfolio -->
|
||||
<!-- Projects Portfolio Page -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
|
||||
<!-- Page Contact -->
|
||||
<!-- Contact Page -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/contact</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
|
||||
<!-- Page À Propos -->
|
||||
<!-- About Page -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/about</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- Pages de projets individuels -->
|
||||
<!-- Formation/Training Page -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/xinko</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/flowboard</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/virtual-tour</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/image-manipulation</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/primate-web-admin</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/instagram-bot</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/projects/crowdin-status-bot</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- Version anglaise -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/en</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/en/fiverr</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/en/projects</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/en/contact</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<loc>https://killiandalcin.fr/formation</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- Dynamic Project Detail Pages -->
|
||||
|
||||
<!-- Virtual Tour Project -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/en/about</loc>
|
||||
<lastmod>2025-06-25</lastmod>
|
||||
<loc>https://killiandalcin.fr/project/virtual-tour</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- Xinko Discord Bot Project (Featured) -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/xinko</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- Image Manipulation NPM Package (Featured) -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/image-manipulation</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- Flowboard Project Management App (Featured) -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/flowboard</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- Primate Web Admin Project -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/primate-web-admin</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- Instagram Bot Project -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/instagram-bot</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- Crowdin Status Bot Project -->
|
||||
<url>
|
||||
<loc>https://killiandalcin.fr/project/crowdin-status-bot</loc>
|
||||
<lastmod>2025-01-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
</urlset>
|
@@ -32,7 +32,7 @@ export function useTheme() {
|
||||
}
|
||||
}
|
||||
|
||||
// Load theme from localStorage or system preference
|
||||
// Load theme from localStorage or default to dark mode
|
||||
const loadTheme = () => {
|
||||
if (typeof window !== 'undefined') {
|
||||
const savedTheme = localStorage.getItem('theme') as Theme | null
|
||||
@@ -40,9 +40,8 @@ export function useTheme() {
|
||||
if (savedTheme) {
|
||||
setTheme(savedTheme)
|
||||
} else {
|
||||
// Use system preference
|
||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
setTheme(prefersDark ? 'dark' : 'light')
|
||||
// Default to dark mode instead of system preference
|
||||
setTheme('dark')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -133,8 +133,8 @@ export const siteConfig: SiteConfig = {
|
||||
seo: {
|
||||
defaultImage: '/portfolio-preview.webp',
|
||||
twitterHandle: '@killiandalcin',
|
||||
locale: 'fr_FR',
|
||||
alternateLocales: ['en_US'],
|
||||
locale: 'en_US',
|
||||
alternateLocales: ['fr_FR'],
|
||||
internalLinks: {
|
||||
priority: [
|
||||
{ url: '/fiverr', text: 'Services Fiverr', priority: 0.9 },
|
||||
|
@@ -2,13 +2,13 @@ import { createI18n } from 'vue-i18n'
|
||||
import en from '@/locales/en'
|
||||
import fr from '@/locales/fr'
|
||||
|
||||
// Get the saved locale from localStorage or default to French
|
||||
const savedLocale = localStorage.getItem('locale') || 'fr'
|
||||
// Get the saved locale from localStorage or default to English
|
||||
const savedLocale = localStorage.getItem('locale') || 'en'
|
||||
|
||||
const i18n = createI18n({
|
||||
legacy: false,
|
||||
locale: savedLocale,
|
||||
fallbackLocale: 'fr',
|
||||
fallbackLocale: 'en',
|
||||
messages: {
|
||||
en,
|
||||
fr
|
||||
|
Reference in New Issue
Block a user