use leptos::*;

use super::{
    Link,
    Tag,
    Timeline,
    TimelineElement,
    TimelineLabel,
    TimelineCard,
    TimelineCardSummary,
    TimelineCardTag,
    TimelineCardContent,
    ProjectList,
    ProjectElement
};

#[derive(Copy, Clone)]
struct Lang<'a> {
    pub lang : &'a str,
    pub url : &'a str,
}

impl<'a> IntoView for Lang<'a> {
    fn into_view(self) -> View {
        let url = self.url.to_string();
        let lang = self.lang.to_string();
        view! {
            <Tag url=url>
            { lang }
            </Tag>
        }
    }
}

// Lang
const RUST_TAG : Lang<'static> = Lang { lang: "Rust", url: "https://www.rust-lang.org/" };
const JAVA_TAG : Lang<'static> = Lang { lang: "Java", url: "https://www.java.com/fr/" };
const CPP_TAG : Lang<'static> = Lang { lang: "C++", url: "https://isocpp.org/" };

// Other
const REACT_TAG : Lang<'static> = Lang { lang: "React", url: "https://fr.legacy.reactjs.org/" };
const SYMFONY_4_TAG : Lang<'static> = Lang { lang: "Symfony", url: "https://symfony.com/" };
const FLUTTER_TAG : Lang<'static> = Lang { lang: "Flutter", url: "https://flutter.dev/" };
const RUBY_ON_RAILS_TAG : Lang<'static> = Lang { lang: "Ruby on rails", url: "https://rubyonrails.org/" };
const HOTWIRED_TAG : Lang<'static> = Lang { lang: "Hotwired", url: "https://hotwired.dev/" };
const DOCKER_TAG : Lang<'static> = Lang { lang: "Docker", url: "https://www.docker.com/" };
const STEAM_TAG : Lang<'static> = Lang { lang: "Steam API", url: "https://partner.steamgames.com/doc/sdk/api/example" };
const GITLAB_CI_TAG : Lang<'static> = Lang { lang: "Gitlab CI", url: "https://docs.gitlab.com/ee/ci/" };
const UNITY_TAG : Lang<'static> = Lang { lang: "Unity 3D", url: "https://unity.com/fr" };
const WORDPRESS_TAG : Lang<'static> = Lang { lang: "Wordpress", url: "https://wordpress.com/fr/" };
const CORDOVA_TAG : Lang<'static> = Lang { lang: "Cordova", url: "https://cordova.apache.org/" };
const ELECTRON_TAG : Lang<'static> = Lang { lang: "Electron", url: "https://www.electronjs.org/" };
const LWJGL_TAG : Lang<'static> = Lang { lang: "LWJGL", url: "https://www.lwjgl.org/" };
const OPENGL_TAG : Lang<'static> = Lang { lang: "OpenGL", url: "https://www.opengl.org/" };
const VULKAN_TAG : Lang<'static> = Lang { lang: "Vulkan", url: "https://www.vulkan.org/" };
const MIDI_TAG : Lang<'static> = Lang { lang: "MIDI", url: "https://fr.wikipedia.org/wiki/Musical_Instrument_Digital_Interface" };
const REQUIREJS_TAG : Lang<'static> = Lang { lang: "RequireJS", url: "https://requirejs.org/" };
const WEBPACK_TAG : Lang<'static> = Lang { lang: "Webpack", url: "https://webpack.js.org/" };
const VITE_TAG : Lang<'static> = Lang { lang: "Vite", url: "https://vitejs.dev/" };
const MAVEN_TAG : Lang<'static> = Lang { lang: "Maven", url: "https://maven.apache.org/" };
const GRADLE_TAG : Lang<'static> = Lang { lang: "Gradle", url: "https://gradle.org/" };
const BABYLONJS_TAG : Lang<'static> = Lang { lang: "BabylonJS", url: "https://www.babylonjs.com/" };
const ROCKET_RS_TAG : Lang<'static> = Lang { lang: "Rocket", url: "https://rocket.rs/" };
const ACTIX_WEB_TAG : Lang<'static> = Lang { lang: "Actix Web", url: "https://actix.rs/" };
const _LEPTOS_TAG : Lang<'static> = Lang { lang: "Leptos", url: "https://leptos.dev/" };


#[component]
pub fn MonParcours() -> impl IntoView {
    view! {
        <div>
            <Timeline>
                <TimelineElement slot:elements>
                    <TimelineLabel slot:labels>r"2019 - Aujourd’hui"</TimelineLabel>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ REACT_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ SYMFONY_4_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ FLUTTER_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ RUBY_ON_RAILS_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ HOTWIRED_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ RUST_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ WEBPACK_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ VITE_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ GRADLE_TAG }</TimelineCardTag>
                            r"Développeur d’application Web, Mobile et Système (CDI)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Développement d’application Symfony, React, Flutter, Rust et Ruby on rails (6 et 7) pour des clients."</p><br />
                            <p>r"Je développe surtout des applications Flutter et Ruby on rails avec l’aide de Hotwired."</p><br />

                            <i>Unova France</i><br />
                            <i>11 Septembre 2019 - Toujours en CDI</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ RUST_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ VULKAN_TAG }</TimelineCardTag>
                            r"Développement 3D (Perso)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Je développe un petit moteur 3D pour apprendre à utiliser Vulkan, mais aussi pour prendre en expérience en Rust</p><br/>

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/RustGameMicroEngine".to_string()>Projet pour apprendre</ProjectElement>
                                <ProjectElement url="https://github.com/mrdev023/voxel_rust_test".to_string()>Le but, refaire mon vieux projet de voxel pour progresser en Rust et Vulkan</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ RUST_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ ROCKET_RS_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ ACTIX_WEB_TAG }</TimelineCardTag>
                            r"Développement Web en Rust (Perso)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Je teste quelques technologies Web en Rust</p><br/>

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/Rust-Rocket-Project".to_string()>Projet de test Rocket</ProjectElement>
                                <ProjectElement url="https://github.com/mrdev023/rust-actix".to_string()>Projet de test actix</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ RUST_TAG }</TimelineCardTag>
                            r"Développement d’un outil d’accès serveur sécurisé en Rust (Perso)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Le but du projet était de proposer un programme en tant que shell et de vérifier la connexion entrante avec un Service dédié.</p><br/>
                            <p>r"L’ensemble des sessions étaient enregistrées pour permettre à n'importe qui de savoir ce qui s'est passé."</p><br/>
                            <p>Les administrateurs pouvaient également gérer les connexions avec une ligne de commande.</p><br/>

                            <i>Le projet a été abandonné au profit de <Link url="https://github.com/ovh/the-bastion".to_string()>The Bastion</Link></i>

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/command_gateway".to_string()>Github du projet</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                </TimelineElement>
                <TimelineElement slot:elements>
                    <TimelineLabel slot:labels>2018 - 2019</TimelineLabel>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ UNITY_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ SYMFONY_4_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ GITLAB_CI_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ STEAM_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ DOCKER_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ MIDI_TAG }</TimelineCardTag>
                            r"Développeur Web et d’application 2D (CDI)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Développement du Site en Symfony 4 (Changement graphique, ajout de fonctionnalité)</p><br />
                            <p>Intégration du déploiement continue de la nouvelle application Limouzik refaite sous Unity 3D sur Steam</p><br />

                            <i>Limouzik SAS</i><br />
                            <i>03 Septembre 2018 - 31 Juillet 2019 (Rupture pour raison économique)</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ UNITY_TAG }</TimelineCardTag>
                            r"Global Game Jam édition 2019 (Concours)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                             <p>Participation au Global Gam Jam édition 2019.</p><br />
                            <p>r"Le but du concours est de developper un Jeu en 48h à partir d’un thème donné au départ du concours."</p><br />

                            <i>3iL - Limoges</i><br />
                            <i>25 janvier - 27 janvier</i><br />
                            <i>Thème : What home means to you</i><br />
                            <i>Participants : Ezyrath, Fabien87, Flavien, MrDev023 (Moi), php4ever, spoutnik87</i><br />

                            <ProjectList>
                                <ProjectElement image_src="https://github.com/mrdev023/Global-Game-Jam-2019/blob/master/ggj_2019_maison.png?raw=true".to_string() url="https://github.com/mrdev023/Global-Game-Jam-2019".to_string()>r"Cauchemar en forêt"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                </TimelineElement>
                <TimelineElement slot:elements>
                    <TimelineLabel slot:labels>2017 - 2018</TimelineLabel>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            r"License Dev. Web et du Big Data"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Licence professionnelle en alternance de développeur d’application web et du Big Data (LP DWBD)."</p><br />
                            <p>r"Utilisation de docker, Mysql, PHP avancé, Symfony 3 et 4, AngularJS, NodeJS, Cassandra, MongoDB, …"</p><br />

                            <i>IUT du Limousin à Limoges</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ SYMFONY_4_TAG }</TimelineCardTag>
                            r"Développeur Web (Projet Tuteuré)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Développement du site sliz.me avec Symfony 4.</p><br />
                            <p>r"Ajout de QRCode sur l'ensemble des pages d'un fichier PDF pour que d'autres personnes puissent télécharger le PDF ou une page en question durant une conférence."</p><br />
                            <p>r"Il fallait également pouvoir générer des QrCode simple à scanner pour qu’un étudiant puisse le scanner à l’autre bout de l’amphi."</p><br />

                            <i>Onegate</i><br />
                            <i>Octobre 2017 - Février 2017</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ UNITY_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ SYMFONY_4_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ STEAM_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ REACT_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ WORDPRESS_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ CORDOVA_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ ELECTRON_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ MIDI_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ WEBPACK_TAG }</TimelineCardTag>
                            r"Développeur Web et d’application 2D (Alternance)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Maintenance de la version du site en Wordpress + Refonte complète du site (Graphique et technique) avec Symfony 4.</p><br />

                            <p>r"Maintenance de la première version de l’application React ainsi que la migration des modules RequireJS vers Webpack pour fortement améliorer le temps de chargement"</p><br />
                            <p>r"Pour permettre l’évolution future de l’application (Intégration avec d’autre boite de jeu VR + Gamification), l’application a dû être refaite de A à Z en C# avec le moteur 3D Unity."</p><br />
                            <p>r"Ajout de l’application Limouzik sur le Play Store (Android), AppStore (iOS) et sur Steam (PC) avec l’intégration de SteamAPI"</p><br />

                            <i>r"L’ensemble du travail a été effectué par mes soins"</i><br /><br />

                            <i>Limouzik SAS</i><br />
                            <i>04 Septembre 2017 - 24 Aout 2018</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ OPENGL_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ JAVA_TAG }</TimelineCardTag>
                            r"Global Game Jam édition 2017 (Concours)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Participation au Global Gam Jam édition 2017.</p><br />
                            <p>r"Le but du concours est de developper un Jeu en 48h à partir d’un thème donné au départ du concours."</p><br />

                            <i>3iL - Limoges</i><br />
                            <i>20 janvier - 22 janvier</i><br />
                            <i>Thème : Waves</i><br />
                            <i>Participants : emiko, Fiesta87, MrDev023 (Moi), TheKitolex</i><br />

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/Global-Gam-Jam-2017/".to_string()>r"Beach Fighter"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                </TimelineElement>
                <TimelineElement slot:elements>
                    <TimelineLabel slot:labels>2015 - 2017</TimelineLabel>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>DUT Informatique</TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Conception de programme en Java, C++, C, Android, PHP, NodeJS et l’utilisation de Mysql. Apprentissage des bases scientifiques dans l’informatique."</p><br />
                            <i>IUT du Limousin à Limoges</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ REACT_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ WORDPRESS_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ MIDI_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ REQUIREJS_TAG }</TimelineCardTag>
                            r"Développement d’application Web + Site (Stage + CDD)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Développement d’une application musicale en utilisant le protocole MIDI (+ Synthèse sonore)."</p><br />
                            <p>La partie affichage a été développé avec React et RequireJS (Gestion de module).</p><br />
                            <p>r"Administration du Site en Wordpress avec les Plugins (Woocommerce et PaidMembership Pro) ainsi que le développement d’un plugin propriétaire pour l’intégration de l’application dans Wordpress"</p><br />

                            <i>Limouzik SAS</i><br />
                            <i>03 Avril 2017 - 30 Juin 2017 (Stage)</i><br />
                            <i>01 Juillet 2017 - 31 Juillet 2017 (CDD)</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ OPENGL_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ JAVA_TAG }</TimelineCardTag>
                            r"Global Game Jam édition 2016 (Concours)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Participation au Global Gam Jam édition 2016.</p><br />
                            <p>r"Le but du concours est de developper un Jeu en 48h à partir d’un thème donné au départ du concours."</p><br />

                            <i>3iL - Limoges</i><br />
                            <i>29 janvier - 31 janvier</i><br />
                            <i>Thème : Ritual</i><br />
                            <i>Participants : Aliths, dikaios, Fiesta87, MrDev023 (Moi), TheKitolex</i><br />

                            <ProjectList>
                                <ProjectElement image_src="https://github.com/mrdev023/Global-Game-Jam-2016/blob/master/ggj_into.png?raw=true".to_string() url="https://github.com/mrdev023/Global-Game-Jam-2016".to_string()>r"Bifrost Saver's"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ BABYLONJS_TAG }</TimelineCardTag>
                            r"Nuit de l’info édition 2016 (Concours)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Participation à la Nuit de l’info édition 2016."</p><br />
                            <p>Le but de ce concours était de développer un projet WebGL en 8h.</p><br />

                            <i>Bordeaux</i><br />
                            <i>1 Décembre 2016 - 2 Décembre 2016</i><br />
                            <i>Sujet : Venir en aide aux réfugiés</i><br />
                            <i>"Nom de l’équipe : echo \"Avis de template\""</i><br />
                            <i>Slogan : Qui sème le vent récolte le Template</i><br />
                            <Link url="https://www.nuitdelinfo.com/nuitinfo/defis2016:archives#defi12".to_string()>r"WebGL : 1er"</Link>
                            <Link url="https://www.nuitdelinfo.com/nuitinfo/defis2016:archives#defi38".to_string()>r"Méthode agile : 1er"</Link>

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/NUIT_INFO_2_DECEMBRE_2016".to_string()>r"Github du projet"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ OPENGL_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ CPP_TAG }</TimelineCardTag>
                            r"Utilisation de l’API graphique OpenGL (Perso)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Après avoir appris à faire de l’OpenGL en Java , j’ai voulu tester en C++"</p><br />

                            <ProjectList>
                                <ProjectElement url="https://github.com/mrdev023/MrDev023-Cpp-Engine".to_string()>r"Petit projet OpenGL en C++"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                </TimelineElement>
                <TimelineElement slot:elements>
                    <TimelineLabel slot:labels>2012 - 2015</TimelineLabel>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>Bac STI2D spécialité SIN</TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Passage du Bac sciences et technologies de l’industrie et du développement durable (STI2D)."</p>
                            <p>r"Spécialité systèmes d’information et numérique (SIN)."</p><br />

                            <i>Lycée Jean Favard à Guéret</i>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ JAVA_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ MAVEN_TAG }</TimelineCardTag>
                            Développement en Java (Perso)
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>Apprentissage dans un premier temps du langage avec le site du zéro et les quelques vidéos sur Youtube.</p><br />
                            <p>r"Ensuite, j'ai commencé à développer des projets Perso (Plugin Minecraft, Mod Minecraft) dans un premier temps."</p><br />
                            <p>r"Puis, j'ai commencé à développer des petits jeux de A à Z (Petit moteur de physique + graphique + audio) et à m'entrainer avec des amis pour participer à des concours comme le Ludum dare et la Global Game Jam."</p>
                        </TimelineCardContent>
                    </TimelineCard>
                    <TimelineCard slot:cards>
                        <TimelineCardSummary slot:titles>
                            <TimelineCardTag slot:tags>{ LWJGL_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ OPENGL_TAG }</TimelineCardTag>
                            <TimelineCardTag slot:tags>{ JAVA_TAG }</TimelineCardTag>
                            r"Utilisation de l’API graphique OpenGL (Perso)"
                        </TimelineCardSummary>
                        <TimelineCardContent slot:cards>
                            <p>r"Après avoir développé quelques trucs sur Minecraft. Je me suis interessé à son fonctionnement et j'ai découvert la librairie LWJGL utilisé dans Minecraft."</p><br />
                            <p>r"J'ai très vite voulu développer mes propres Mini-Jeux en OpenGL avec cette librairie."</p>

                            <ProjectList>
                                <ProjectElement image_src="https://camo.githubusercontent.com/5895992a1089b81b0730608a47ebe08d55f1e6c9bada7752f89f7304a743652d/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f4363334475776e5749414949355a772e6a70673a6c61726765".to_string() url="https://github.com/mrdev023/Java-Game-Engine-Light-Test".to_string()>r"Test gestion de la lumière"</ProjectElement>
                                <ProjectElement image_src="https://camo.githubusercontent.com/f2dbe8898987b638eaa4d5dbc72797a4ff9c4bcb0275591f7fb24e7f32da5dd3/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f4373567138634657384141374279722e6a7067".to_string() url="https://github.com/mrdev023/Modern-Game-Engine".to_string()>r"Test OpenGL 3.3+ et LWJGL 3"</ProjectElement>
                                <ProjectElement image_src="https://camo.githubusercontent.com/414745fd4066b03c789b3a54d798c6f76df05039d464e29c822653e4e1515c73/68747470733a2f2f7062732e7477696d672e636f6d2f6d656469612f4350576147763457734141585068552e706e673a6c61726765".to_string() url="https://github.com/mrdev023/Voxel-Test".to_string()>r"Petit jeu en Voxel (Minecraft like)"</ProjectElement>
                            </ProjectList>
                        </TimelineCardContent>
                    </TimelineCard>
                </TimelineElement>
            </Timeline>
        </div>
    }
}