<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: a frank</title>
    <description>The latest articles on Forem by a frank (@a-frank).</description>
    <link>https://forem.com/a-frank</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1210529%2Fca4b5ac7-f991-4738-a3cb-451560175ee1.png</url>
      <title>Forem: a frank</title>
      <link>https://forem.com/a-frank</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/a-frank"/>
    <language>en</language>
    <item>
      <title>Bien build avec parcel</title>
      <dc:creator>a frank</dc:creator>
      <pubDate>Thu, 11 Jan 2024 15:50:03 +0000</pubDate>
      <link>https://forem.com/a-frank/bien-build-avec-parcel-2egk</link>
      <guid>https://forem.com/a-frank/bien-build-avec-parcel-2egk</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Ce post peut et pourra vous servir lorsque vous souhaiterez publier votre site en ligne avec Parcel (StarterKit eikon).&lt;/p&gt;

&lt;p&gt;C'est un petit tutoriel avec les étapes nécessaires pour bien configurer vos pages, liens etc. avant le "build".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt; : Ce post est surement incomplet ou mal exécuté par moment, alors il est fortement conseillé de faire vos propres recherches et si vous rencontrer des problèmes n'hésitez pas à demander à ChatGPT.&lt;/p&gt;




&lt;h1&gt;
  
  
  Mise en place
&lt;/h1&gt;

&lt;p&gt;Avant de commencer, il nous faut préparer le terrain en installant et vérifiant quelques fichiers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Étape 1: Installation
&lt;/h3&gt;

&lt;p&gt;Pour la suite nous aurons besoin d'un plugin de parcel, il peut s'installer via le terminal en entrant cette commande :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save-dev&lt;/span&gt; parcel-plugin-static-files-copy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Normalement, si vous vous ouvrez votre fichier &lt;strong&gt;'package.json'&lt;/strong&gt; et vérifiez que dans la section &lt;strong&gt;'devDependencies'&lt;/strong&gt; la ligne &lt;strong&gt;"parcel-plugin-static-files-copy": "^2.6.0",&lt;/strong&gt; s'est ajoutée. Ma version du plugin est surement différente mais ça ne devrait pas vous empèchez de poursuivre ce tuto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Étape 2: Adapter le 'package.json'
&lt;/h3&gt;

&lt;p&gt;Le plugin que nous venons d'ajouter va permettre à notre site de gérer beaucoup plus facilement les liens entre ses pages et de les simplifier.&lt;/p&gt;

&lt;p&gt;Nous allons d'abord ajouter à notre fichier &lt;strong&gt;'package.json'&lt;/strong&gt; quelques lignes pour lui permettre de comprendre ce qu'on souhaite faire.&lt;/p&gt;

&lt;p&gt;A la fin de votre fichier juste avant la dernière parenthèse ajouter ceci:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"staticFiles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"staticPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./src"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"outputPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./dist"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ça devrait ressembler à ceci:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;reste&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;du&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;code&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"staticFiles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"staticPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./src"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"outputPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./dist"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette règle va permettre à Parcel de diriger convenablement les fichier vers le &lt;strong&gt;'./dist'&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Puis l'on ajoute juste en dessous cette règle:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"parcel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"transformers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"*.{html,css,js}"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-static-files-copy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-html"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-raw"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ici nous allons indiquer que dorénavant, parcel utilisera &lt;strong&gt;'transformers'&lt;/strong&gt; de façon légèrement différente, car il peut désormais interpreter des liens simplifier.&lt;/p&gt;

&lt;p&gt;Votre fichier devrais ressembler à ceci:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;reste&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;du&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;code&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"staticFiles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"staticPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./src"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"outputPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"./dist"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"parcel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"transformers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"*.{html,css,js}"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-static-files-copy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-html"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"*"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"@parcel/transformer-raw"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Étape 3: Adapter le HTML
&lt;/h3&gt;

&lt;p&gt;Maintenant que notre fichier de règles est prêt, nous pouvons nous attaquer au HTML.&lt;/p&gt;

&lt;p&gt;Rien de plus simple, à chaque mentions d'une page dans un &lt;code&gt;&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt; nous allons supprimer l'extension &lt;code&gt;.html&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Avant :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"about.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;À propos&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Après :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"about"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;À propos&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Normalement grâce à nos changements dans les règles, les liens sont maintenus et continuent de fonctionner convenablement.&lt;/p&gt;

&lt;p&gt;Si vous possédez un lien qui redirige vers votre &lt;code&gt;index.html&lt;/code&gt; nous allons un peu plus le modifier, car voir dans la barre de lien un site se terminant par &lt;code&gt;.../index&lt;/code&gt; ne fait pas très pro.&lt;/p&gt;

&lt;p&gt;Nous allons juste remplacer l'adresse &lt;code&gt;index.html&lt;/code&gt; par &lt;code&gt;./&lt;/code&gt; de la sorte, nous indiquons à parcel qu'il faut retourner à la racine de notre site et le reste est fait par le navigateur, qui lui va directement prendre le fichier &lt;code&gt;index.html&lt;/code&gt;, l'afficher et ne rien ajouter dans la barre de lien.&lt;/p&gt;

&lt;p&gt;Comme ceci:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Étape 4: Vérifier
&lt;/h3&gt;

&lt;p&gt;Si vous avez bien suivi chaque étape, vous êtes en mesure de pouvoir lancer la commande &lt;code&gt;npm run dev&lt;/code&gt; et constater que l'adresse ne possède plus aucune terminaison de fichier.&lt;/p&gt;

&lt;p&gt;Bien joué!&lt;/p&gt;

&lt;p&gt;Si le build ne s'est pas fait correctement, verifier chaque étape si nécessaires réinstaller le plugin et si cela ne fonctionne toujours pas, demander à ChatGPT.&lt;/p&gt;




&lt;p&gt;Voilà voilà normalement maintenant votre site est prêt à être publié comme un pro!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Master emmet and you'll be a great developer</title>
      <dc:creator>a frank</dc:creator>
      <pubDate>Tue, 19 Dec 2023 16:14:59 +0000</pubDate>
      <link>https://forem.com/a-frank/master-emmet-and-youll-be-a-great-developer-3c5d</link>
      <guid>https://forem.com/a-frank/master-emmet-and-youll-be-a-great-developer-3c5d</guid>
      <description>&lt;h1&gt;
  
  
   Introduction
&lt;/h1&gt;

&lt;p&gt;Why use emmet ? Simple, it is the most useful tool you can ever find. Its function ? Simplify your life with fast, efficient and very very useful commands.&lt;/p&gt;

&lt;p&gt;I've been using emmet for 3 years now and it's really simpler.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;Syntax&lt;/li&gt;
&lt;li&gt;Links and doc&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;If you're on VScode or JetBrains, it is already installed.&lt;/p&gt;

&lt;p&gt;But if it is not, click &lt;a href="https://emmet.io/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Syntax
&lt;/h2&gt;

&lt;p&gt;Here we are! The fun part. Using emmet is really simple, it uses abbreviation and autocomplete.&lt;/p&gt;

&lt;p&gt;For example, if you write this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div&amp;gt;a*3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should output this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You see? Emmet automatically setup three a inside of a div, by using &amp;gt; and *3.&lt;/p&gt;

&lt;p&gt;There's a lot of rules like that but the most used are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add children : &amp;gt;&lt;/li&gt;
&lt;li&gt;add sibling : +&lt;/li&gt;
&lt;li&gt;set the number of element : *Number&lt;/li&gt;
&lt;li&gt;set the class : .&lt;/li&gt;
&lt;li&gt;set the id : #&lt;/li&gt;
&lt;li&gt;insert content : {Content}&lt;/li&gt;
&lt;li&gt;use auto-number : $&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this list you should be ready to use emmet but you don't have all the keys.&lt;/p&gt;

&lt;p&gt;The exact syntax is : &lt;code&gt;element[#id or .class][{Content}][*Number][&amp;gt;children or +sibling]&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  This is how it works, but with some exemple you'll clearly understand don't panic.
&lt;/h2&gt;

&lt;p&gt;Let's try some lines&lt;br&gt;
First what should looks like this line ?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div.container&amp;gt;a.item#button{item $}*3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it supposes to output this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;item 1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;item 2&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;item 3&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then this one ?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container&amp;gt;p{Hello world}+a.button{Read more}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you writted this correctly, you should see this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="container"&amp;gt;
  &amp;lt;p&amp;gt;Hello world&amp;lt;/p&amp;gt;
  &amp;lt;a href="" class="button"&amp;gt;Read more&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You see? We started with a class and it automatically add a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;. It is the power of emmet.&lt;/p&gt;

&lt;p&gt;With emmet you also have the autocomplete, you just have to write &lt;code&gt;img&lt;/code&gt; and it'll be &lt;code&gt;&amp;lt;img src="" alt=""&amp;gt;&lt;/code&gt;. What a super power huh?&lt;/p&gt;




&lt;h2&gt;
  
  
  Links and doc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.emmet.io/"&gt;emmet documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://emmet.io/"&gt;emmet installation&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thank you very much for reading this article, made with love and coffee. &amp;lt;3&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>codenewbie</category>
      <category>html</category>
    </item>
    <item>
      <title>Useful VScode Extension for Front-end dev</title>
      <dc:creator>a frank</dc:creator>
      <pubDate>Wed, 15 Nov 2023 14:14:03 +0000</pubDate>
      <link>https://forem.com/a-frank/useful-vscode-extension-for-front-end-dev-1mdj</link>
      <guid>https://forem.com/a-frank/useful-vscode-extension-for-front-end-dev-1mdj</guid>
      <description>&lt;h2&gt;
  
  
  What are extension ?
&lt;/h2&gt;

&lt;p&gt;VScode extension are some tools, plugin or just customisation packs that you can install and use while coding with your favorite IDE (Integrated development environment e.g. &lt;em&gt;VScode&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;These extension can be really helpful to quickify your workflow, let your eyes take a break from ugly themes and more.&lt;/p&gt;

&lt;p&gt;There is an embed panel in VScode that let you manage your installed extension and find new one. You can also visit their marketplace - all the links in this post.&lt;/p&gt;




&lt;h2&gt;
  
  
  Customisation
&lt;/h2&gt;

&lt;p&gt;The key of a great developer is their &lt;em&gt;"Themes"&lt;/em&gt;. Just some .JSON lines that spice your IDE.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bearded Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7bpn0laagegsjtm8tfg1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7bpn0laagegsjtm8tfg1.png" alt="bearded theme in use" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're a colourful person, this theme library should be perfect! With more than 40 different theme, you'll find your style.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=BeardedBear.beardedtheme" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Community Material Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F540iitv1t582kv93n2s5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F540iitv1t582kv93n2s5.png" alt="Community Material Theme in use" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are more "classic" but still like colours and better visuals. There you go, this theme library is a little bit smaller than the first one but still incredible. (I'm using it so it's the best).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-community-material-theme" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chalice Icon Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ce613t4tkhitaiur3et.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ce613t4tkhitaiur3et.png" alt="Chalice Icons list" width="800" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Are you disapointed about all these icons and logos of languages or file format. Chalice have &lt;em&gt;the&lt;/em&gt; solution, a minimalist icon theme, less distraction, more focus.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=artlaman.chalice-icon-theme" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Tool for code
&lt;/h2&gt;

&lt;p&gt;If you're struggling about rethinking all of your links or have to be on several app at the same time. I have some solutions for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Color Highlight
&lt;/h3&gt;

&lt;p&gt;Very useful to see the colours you're using in code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=naumovs.color-highlight" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto Rename Tag
&lt;/h3&gt;

&lt;p&gt;This one is &lt;em&gt;incredible&lt;/em&gt; only usable in XML/HTML but it lets you code and not worrying about unclosed tags.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Figma for VS Code
&lt;/h3&gt;

&lt;p&gt;Yes, it's not a joke. You can literally open, see, copy content, attributs, exports your figma projects in VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=figma.figma-vscode-extension" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GitLens
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhns0raqm6xnvcksku0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhns0raqm6xnvcksku0a.png" alt="GitLens branches" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Already known by the entire VS Code community but still useful to place here. GitLens provide you to see in a comfortable way your commits, branches and modified code. Very useful when you're not sure on which branch you are.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Prettier &amp;amp; Prettier+
&lt;/h3&gt;

&lt;p&gt;Same as GitLens, very famous but still interesting.&lt;br&gt;
If you don't know what prettier do, just imagine someone who is enough good a code but only to indent correctly your code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Markdown All in One
&lt;/h3&gt;

&lt;p&gt;This extension allow you to use some shortcut and enhanced the markdown creation to have a cool and simple tool, like dev.to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Open the web page
&lt;/h3&gt;

&lt;p&gt;Simple as its name is, this extension let you open url in your IDE. So now you only have to open VS Code to work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=zhhlwd.openTheWebPage" rel="noopener noreferrer"&gt;Install it!&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Disclaimer
&lt;/h2&gt;

&lt;p&gt;Obviously, nobody ask me to make this post, it is not an advertising and I'm not paid to do this. I only wanted to help the community as much as I can.&lt;/p&gt;

&lt;p&gt;Thank you for reading this post and let me know if it was useful.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
