{"componentChunkName":"component---src-templates-blog-template-tsx","path":"/page/2","result":{"data":{"site":{"siteMetadata":{"description":"~apenas mais um programador é um blog de um desenvolvedor front-end, minimalista e especialista em WordPress. | Desenvolvedor Front-end em Curitiba | Desenvolvedor WordPress em Curitiba | Desenvolvedor Web em Curitiba | Programador em Curitiba","siteDesc":"~apenas mais um programador"}},"postsResults":{"edges":[{"node":{"id":"ebc8af63-a9d4-5ac5-838b-aca83f18a06a","html":"<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 63.3%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsSAAALEgHS3X78AAACfklEQVQ4y42R7UtTURzH74ve9EomgQ8g06zptntNoYIQeySCmxs6ps1ZRhMDWdmDlcucVC8i1PbQNokoXObcc0oaFEH/QRT1Ims43e5m5TKjV9m589c5JzUTUS98+PI793s+5z4w0cgH7/inSJ8Qi7njExNuYTLm/iwk3KnkFGU68Q8yf00k3cm4gInTLs6+WDTqeffmbVfA79/MNDQ1wnGDAWrq9VCpqQZ1jRbUtVo4UKWiHKxWwyEMyf14PqypAk2dDuoNp+DspVZoPn8OjBcvwInGxlRhkSyTkbo6Id9pnsuzt6M8WzvKsbQh1nUDmZ+HkPlFGF0ZDaDWET9qexZEN18Oo5PBBygbd6R3r6ECZyfKd5jnCnqvw1Z7RyRDe0TClI7ch5KQU8TMl4ZdIPPbQPcqAPT6NQfT099BmErBj9mfdOl1KgnbcYd0uZCDkN7x9B6wg9ZoXrNewnD4Buu1ikqvdZ7z2mDbQDeoR92QnJ2ByFQCxuKT8FGYhDEhBl9mvsFw5D0U4g7p4n2A96W5sBMU/d3R3KZaLHyChT4bFeIEpc9KyzsDDtgVdMLukGsJMpf57URC9vwvfLyKcLFIUk6xgMzTQ5+6aPAOnRXLOuTwNYWLRXr6AuT1pP23oRgLuYW15Z11hUtFfDq7Qr7ysFWFJX+FiCVCr20Z9BNsBJEL0Z8yToWKIRcU+6xpDEkoWkgl/vjsxkhzQ72gHOiJ5p4+lslUBF1Q7rH/LvfYxAqfQ9zrc9Jk+7tF+aMuUbE+SOmxgPzhrUiOQSthjC0tquYzRp5w2WTi2zs6+NarJr6wQcNv0R3ls/UqPqtuLSr5LL1KhXNfxp6yTX8AH4Ver/z2sAMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/d7c689df523a3dcf492a3118ff1d867e/bc904/usando-o-selector-target-para-criar-modal-apenas-com-css.webp 250w,\n/static/d7c689df523a3dcf492a3118ff1d867e/4be29/usando-o-selector-target-para-criar-modal-apenas-com-css.webp 500w,\n/static/d7c689df523a3dcf492a3118ff1d867e/03f31/usando-o-selector-target-para-criar-modal-apenas-com-css.webp 1000w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/d7c689df523a3dcf492a3118ff1d867e/43fa5/usando-o-selector-target-para-criar-modal-apenas-com-css.png 250w,\n/static/d7c689df523a3dcf492a3118ff1d867e/c6e3d/usando-o-selector-target-para-criar-modal-apenas-com-css.png 500w,\n/static/d7c689df523a3dcf492a3118ff1d867e/da8b6/usando-o-selector-target-para-criar-modal-apenas-com-css.png 1000w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/d7c689df523a3dcf492a3118ff1d867e/da8b6/usando-o-selector-target-para-criar-modal-apenas-com-css.png\"\n          alt=\"Usando o pseudo selector :target para criar modal apenas com CSS\"\n          title=\"Usando o pseudo selector :target para criar modal apenas com CSS\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Usando o pseudo selector :target para criar modal apenas com CSS</figcaption>\n  </figure></p>\n<h3>O pseudo selector</h3>\n<p>Um pseudo selector das CSS3 muito útil é o <code class=\"language-text\">:target</code>, ele fornece recursos de estilo para um elemento cujo o ID está visivel na url.</p>\n<p>É bem simples de entender, vamos ver uma demonstração nesse <a href=\"http://codepen.io/nandomoreirame/details/WGpjaY/\" target=\"_blank\">Pen</a></p>\n<p><a href=\"https://codepen.io/oseunando/pen/WGpjaY\">https://codepen.io/oseunando/pen/WGpjaY</a></p>\n<p>O pseudo selector <code class=\"language-text\">:target</code> pode ser aplicado em qualqer tag, classe ou ID em seu CSS, mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token comment\">/* Aplica em todos os elementos que tenha o target ativo na URL */</span>\n<span class=\"token selector\">:target</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #000<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">/* aplica cor apenas em H2 que tenha o target ativo na URL */</span>\n<span class=\"token selector\">h2:target</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #f00<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<hr>\n<h3>O Modal</h3>\n<p>Sendo assim, então podemos aplicar o <code class=\"language-text\">display: block</code> em nosso modal, certo? Isso mesmo.</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">#modal:target</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> block<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>O resto vc já sabe né, estilize o quanto quiser e de preferência anime-o para ficar mais bonito.</p>\n<hr>\n<p>É isso, peço desculpas se o artigo não foi grande coisa pra você, eu não posso fazer nada se as CSS são simples demais. 😌</p>\n<p>Divirta-se!</p>\n<p><code class=\"language-text\">&lt;/end&gt;</code></p>","excerpt":"O pseudo selector Um pseudo selector das CSS3 muito útil é o , ele fornece recursos de estilo para um elemento cujo o ID está visivel na url. É bem…","timeToRead":1,"frontmatter":{"category":["css"],"date":"há 10 anos","description":"Um pseudo selector das CSS3 muito útil é o :target, ele fornece recursos de estilo para um elemento cujo o ID está visivel na url","path":"/usando-o-selector-target-para-criar-modal-apenas-com-css","tags":["dicas","css"],"title":"Usando o pseudo selector :target para criar modal apenas com CSS","image":{"publicURL":"/static/css3-06a4f6e696f2bf4c5fcc291e41412b20.jpg","name":"css3"}},"fields":{"readingTime":{"words":185}}}},{"node":{"id":"9fb9ac51-55d1-5a72-ae39-5b7efc1851ae","html":"<p>Você tá focado no código, apenas com algumas ferramentas abertas e não quer procurar o caléndário na listagem de programas instalados no seu computador, ou ir até a barra de ferramentas e clicar na data pra poder ver o calendário completo do mês ou do ano?</p>\n<p>Essa será uma dica bem curta e rápida, assim como o comando que você vai executar direto pelo terminal e que vai te ajudar a visualizar o calendário completo de qualquer ano.</p>\n<p>Basta que você digite o comando <code class=\"language-text\">cal</code>, sim isso mesmo.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ <span class=\"token function\">cal</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>O comando acima sem nenhum parâmentro exibe o mês atual completo pra você.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 45.21575984990619%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsSAAALEgHS3X78AAAA7UlEQVQoz2O4cvXKlavXrl6/8frN69dvX795++btu3dv370lBjGElAeHVoSGV4UHlPi7ZLvYp9tbJJnbp9vZpdkSRAwOGfZ+xb5BZYFA0iXH2avA0yLJQiFAXiVYWTlICT9isEg0N4jR14vWNYw1MI43CqsMja6JBmrWCtfUCFPHjxics5zsM+ycshzt0m2BrnDItDdJMFYLUdUM0yCs2afQ2y3X1TnbySPPHehmIFs/Rk89VI2gTpBmm1QbozhDoE69aD2ghUBtaqGqxOgEabZOtTKM0bdOtdaO1CbSQoRm7Ugt1WAVYNiSqhOIANH+q6+cD/7QAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/ca600a5b9aa5147901b0ac48bd02d003/bc904/cal-command.webp 250w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/4be29/cal-command.webp 500w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/03f31/cal-command.webp 1000w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/cf96b/cal-command.webp 1066w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/ca600a5b9aa5147901b0ac48bd02d003/43fa5/cal-command.png 250w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/c6e3d/cal-command.png 500w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/da8b6/cal-command.png 1000w,\n/static/ca600a5b9aa5147901b0ac48bd02d003/4dc7d/cal-command.png 1066w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/ca600a5b9aa5147901b0ac48bd02d003/da8b6/cal-command.png\"\n          alt=\"Comando cal\"\n          title=\"Comando cal\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Comando cal</figcaption>\n  </figure></p>\n<p>Se você quiser escolher o Mês para ser exibido você precisa passar o múmero do mês (de 1 a 12) e o ano, assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ <span class=\"token function\">cal</span> <span class=\"token number\">3</span> <span class=\"token number\">2017</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Isso vai imprimir o mês excolhido.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 41.417910447761194%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsSAAALEgHS3X78AAAA1ElEQVQY02O4cuXK5atXr1y79vL1y9dvX7999xbIIBIx+BR6exd6BZUF+hR5B5T6O2c7mcQbWySamyeaEUQMdum2Dhn2XgWeHnkeLtlOlikWhrEGSoGKKsHKBBGDVbKFUZyhfoyeZbKFdaq1c46zaYKJWoiqZpiGRpg6fsTgluvqmOXglOkIJB0y7V1zXICmqIaoEKUZ6GCnLEcgAmpzz3MD+kI3Ukc9VI2gTpBm+3Q743gj70Jv/Wg9oIVqoapE6gRptkgy14vWNU8y047QIl4bBAEAm46cNql8a0cAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/2b41ac4a3078f6c7674c000585278aff/bc904/cal-march-2017.webp 250w,\n/static/2b41ac4a3078f6c7674c000585278aff/4be29/cal-march-2017.webp 500w,\n/static/2b41ac4a3078f6c7674c000585278aff/03f31/cal-march-2017.webp 1000w,\n/static/2b41ac4a3078f6c7674c000585278aff/39b23/cal-march-2017.webp 1072w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/2b41ac4a3078f6c7674c000585278aff/43fa5/cal-march-2017.png 250w,\n/static/2b41ac4a3078f6c7674c000585278aff/c6e3d/cal-march-2017.png 500w,\n/static/2b41ac4a3078f6c7674c000585278aff/da8b6/cal-march-2017.png 1000w,\n/static/2b41ac4a3078f6c7674c000585278aff/78899/cal-march-2017.png 1072w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/2b41ac4a3078f6c7674c000585278aff/da8b6/cal-march-2017.png\"\n          alt=\"Comando cal mach 2017\"\n          title=\"Comando cal mach 2017\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Comando cal mach 2017</figcaption>\n  </figure></p>\n<p>Caso você queira apenas o ano</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ <span class=\"token function\">cal</span> <span class=\"token number\">2018</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 104.73083197389886%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAACXBIWXMAAAsSAAALEgHS3X78AAAC8UlEQVQ4y2WU+U4aURTG510qouwMyzAMM8wMO1gbW6WIiOybgNg2fUxT+0+b1CXV1KRv0d/lEmLS5OTmcu5Zvu87Z1Bubm++fb/98evny9+Xpz9P90/3D88PGJe733fyvrXH58fHVz+V3My1Rmaqp2UnVrqvB5uB8FmIM9lNZIaG/ImFzoKhZjDQ8HNKD6b4G77dYw+hiU7ce7LLndPX2CczO8mS7DnewbNX9wZO/cbQIHn3xEMYfsWeZIkrLYq16yoXrZuMtdX0QLcmZmGet8Ymd/U8muproMNDDM7oeYQSCm/GIJ0epJ2pbU/tzMjgASDxCxUsxjANHTzcEx2BLt6JOTNbbUdprhxc16qrij3N5i5dvJJq5apcWhaRA1z6QNd6STwEVFbirK2qoBPJWlejsN5PRc7C0MCFEhTmmUKeD8IDW7WtEkZd/LBAKYRQsmMLMvQpX5X0XgpgZMr+gKIobCOtMM2Ro7wscSEs3AqJZGfquDPHHGUKi0J+noMkhTdsx6Y7c3kV5daEyaQ/no1g774c0pNkSZJRW2ML5YuLAn3WgltaTyPGvXQPPtXI5KSQGBWYobRf32OSMMTFPqyRJwHMwHfev1lzFlwYDfGxCxWPgM2c4hex/GWOtlwIgiGq0IEpgBMnEnLaE+vw81vU5s7yiGSGxNBhyJy5UDjaElMln7rIBiPpkcwpJGIkZ4jl53k0Z5KFRZ4qvKEcuwEcjFGzMOw/hhBE4lTlnMWHwbq1Iyxt8NTva/iASjeMOJ6gB1tYMDbQcQIWaqIzoeApL4t0BgxkEAyQiM8ghJzNgADcSzC5o69HIGLIG8HMYQYDG1Nx1rtNqNRJ72vmyMApdlt8dgn0R2r5qYjO5GAkl5YlKJHMJrlTR34nYuGnNgmwQDwiucB5s9v8BglMgBpuhf1rzhIC3LgAkid0zYwyMGcEyCTUJpmqPCOJ+Cc48cjvHtte5IcBC9/HfW9945QmloS2gJFL9r/hp9C21mv7ByrgdmGB1WKsAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/227964de91b4ab7915529649e325ff46/bc904/cal-year-2018.webp 250w,\n/static/227964de91b4ab7915529649e325ff46/4be29/cal-year-2018.webp 500w,\n/static/227964de91b4ab7915529649e325ff46/03f31/cal-year-2018.webp 1000w,\n/static/227964de91b4ab7915529649e325ff46/f7c28/cal-year-2018.webp 1226w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/227964de91b4ab7915529649e325ff46/43fa5/cal-year-2018.png 250w,\n/static/227964de91b4ab7915529649e325ff46/c6e3d/cal-year-2018.png 500w,\n/static/227964de91b4ab7915529649e325ff46/da8b6/cal-year-2018.png 1000w,\n/static/227964de91b4ab7915529649e325ff46/850cc/cal-year-2018.png 1226w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/227964de91b4ab7915529649e325ff46/da8b6/cal-year-2018.png\"\n          alt=\"Comando cal year 2018\"\n          title=\"Comando cal year 2018\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Comando cal year 2018</figcaption>\n  </figure></p>\n<p>That’s it! <a href=\"http://ss64.com/bash/cal.html\" title=\"Aqui está um link para uma simples doc\">Aqui está um link para uma simples doc</a></p>\n<p>Espero que use e abuse! 😀</p>\n<p>/end</p>","excerpt":"Você tá focado no código, apenas com algumas ferramentas abertas e não quer procurar o caléndário na listagem de programas instalados no seu…","timeToRead":1,"frontmatter":{"category":["dicas"],"date":"há 10 anos","description":"Essa será uma dica bem curta e rápida, assim como o comando que você vai executar no seu terminal.","path":"/calendario-rapido-direto-no-terminal","tags":["dicas","terminal","bash"],"title":"Como ver o Calendário direto pelo terminal","image":{"publicURL":"/static/cal-command-ca600a5b9aa5147901b0ac48bd02d003.png","name":"cal-command"}},"fields":{"readingTime":{"words":187}}}},{"node":{"id":"d1d1e17c-9bdb-5760-a578-43371f53af5d","html":"<p>Você já parou pra pensar quantas vezes você reclama por dia, ou quantas vezes você reclamou hoje? Vamos lá, faça um teste! Você vai ficar surpreso em saber que reclamações fazem parte do nosso dia-a-dia e nem percebemos.</p>\n<p>E se a gente substituir nossas reclamações diárias por agradecimentos?</p>\n<p><img src=\"./thanks.gif\" alt=\"Gif Thanks\"></p>\n<p>E se pararmos de reclamar que está chovendo no horário de ir pro trabalho apenas agradecer por ter um trabalho?</p>\n<p>E se ao invés de reclamarmos que acordamos muito cedo todos os dias agradecer por ter onde dormir e por acordar com vida todas as manhãs?</p>\n<p>E se apenas agradecermos por ter agasalhos para nos aquecer todos dias ao invés de reclamar que está muito frio?</p>\n<p>Parar de reclamar que está muito quente e simplesmente agradecer pela água ou refrigerante (com limão e gelo) que tomamos, apenas porque podemos.</p>\n<p><img src=\"./nooo.gif\" alt=\"Gif nooo\"></p>\n<p>Ao invés de reclamar que as coisas não estão dando certo, porque não agradecer que você quase conseguiu? agradeca que você teve forças e quase chegou perto.</p>\n<p>Vamos pegar o exemplo das posições 1º, 2º e 3º lugar nas Olimpíadas Rio 2016, é comprovado que quem chega em 3º lugar está muito mais agradecido e feliz por estar ali do que quem chegou em 2º, quem consegue 3º lugar sempre pensa que não poderia ter conseguido nada e ganhar bronze é melhor que nada, certo?</p>\n<p>Porque não agradecer por ter participado de uma olimpíada, poder correr ao lado de grandes atletas ou ganhar o 3º lugar? Pois foi o que aconteceu comigo nos últimos meses.</p>\n<hr>\n<h3>Pipefy</h3>\n<p>Semana passada eu perdi meu emprego, um trabalho que eu amava apesar de tudo, uma empresa <em>cool</em>, divertida, com pessoas jovens e motivadas.</p>\n<p>Eu poderia tá puto agora, irritado e xingando tudo e todos ao meu redor, mas não estou, muito pelo contrário estou muito feliz! Dai você pensa: <strong><em>\"mas quem diabos fica feliz por perder o emprego?”</em></strong></p>\n<p><img src=\"./angry.gif\" alt=\"Gif angry\"></p>\n<p>Calma jovem.</p>\n<p>Eu não estou feliz por perder meu emprego. Estou feliz por ter tido essa grande oportunidade, de poder trabalhar ao lado pessoas inteligentes e excepcionais, ter tido a oportunidade de aprender muitas coisas legais e crescido um pouco cada dia que estava lá.</p>\n<p>Eu poderia ficar apenas olhando o lado negativo de se perder um emprego, mas eu passei por muitas coisas boas quando trabalhava lá, pessoas me apoiavam e tinham paciência comigo, e por esse motivo não posso simplesmente esquecer por não poder mais fazer parte de tudo isso.</p>\n<p>Eu poderia ficar triste por não contribuir mais com o crescimento do produto, mas o melhor a fazer é olhar para trás e ver o quanto eu contribui, o quanto eu já fiz por ele para ele estar ali, e agradecer por isso.</p>\n<blockquote>\n<p>E se substituirmos nossas reclamações diárias por agradecimentos, vamos fazer um teste?</p>\n</blockquote>\n<hr>\n<h3>Conclusão</h3>\n<p>Sempre que acontece algo ruim no meio do caminho simplesmente não conseguimos enxergar o que aconteceu de bom, não por maldade isso é natural no ser humano.</p>\n<p>Por isso eu desafio você a reclamar cada vez menos e agradecer todos os dias por ter mais um dia para viver.</p>\n<p>Comece aos poucos, tente fazer isso por um dia, depois dois, depois uma semana, é tudo uma questão de costume.</p>\n<p>/end</p>","excerpt":"Você já parou pra pensar quantas vezes você reclama por dia, ou quantas vezes você reclamou hoje? Vamos lá, faça um teste! Você vai ficar surpreso em…","timeToRead":2,"frontmatter":{"category":["geral"],"date":"há 10 anos","description":"Você já parou pra pensar quantas vezes você reclama por dia, ou quantas vezes você reclamou hoje?","path":"/agradeca-mais-e-reclame-menos","tags":["reflexão"],"title":"Reflexão: agradeça mais e reclame menos","image":{"publicURL":"/static/thanks-1401aa93a3212fd74e609f9864da1d73.gif","name":"thanks"}},"fields":{"readingTime":{"words":540}}}},{"node":{"id":"b344b0b3-3d51-5de8-83e7-0f0a149ed01e","html":"<p>Iremos usar o comando <code class=\"language-text\">sass-convert</code> do próprio SASS para realizar a conversão dos arquivos, mas já sabemos que ele converte apenas um único arquivo, então vamos usar o terminal e com um simples loop iremos converter todos os arquivos de um diretório (ou vários diretórios) de uma só vez.</p>\n<h3>Em sistemas Unix (Mac e Linux)</h3>\n<p>Abra o terminal e execute o seguinte comando.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token keyword\">for</span> <span class=\"token for-or-select variable\">file</span> <span class=\"token keyword\">in</span> path/to/scss/**/*.scss<span class=\"token punctuation\">;</span> <span class=\"token keyword\">do</span> sass-convert <span class=\"token variable\">$file</span> <span class=\"token variable\">${file<span class=\"token operator\">%</span>scss}</span>sass <span class=\"token operator\">&amp;&amp;</span> <span class=\"token function\">rm</span> <span class=\"token variable\">$file</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">done</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<h3>No Windows</h3>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token keyword\">for</span> /r path<span class=\"token punctuation\">\\</span>to<span class=\"token punctuation\">\\</span>scss %I <span class=\"token keyword\">in</span> <span class=\"token punctuation\">(</span>*<span class=\"token punctuation\">)</span> <span class=\"token keyword\">do</span> sass-convert <span class=\"token string\">\"%I\"</span> <span class=\"token string\">\"%~dpnI.sass\"</span>\ndel /f /s /q path<span class=\"token punctuation\">\\</span>to<span class=\"token punctuation\">\\</span>scss<span class=\"token punctuation\">\\</span>*.scss</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>Não esqueça de trocar <code class=\"language-text\">path/to/scss/</code> para o caminho onde estão os seus arquivos sass.</p>\n<p>Eu não testei no Linux nem no Windows então se você executou os comandos e algo não deu certo comenta ai e vamos resolver juntos.</p>\n<hr>\n<p>Espero ter ajudado, Abraço!</p>\n<p>😎</p>","excerpt":"Iremos usar o comando  do próprio SASS para realizar a conversão dos arquivos, mas já sabemos que ele converte apenas um único arquivo, então vamos…","timeToRead":1,"frontmatter":{"category":["dica"],"date":"há 10 anos","description":"Iremos usar o comando sass-convert do próprio SASS para realizar a conversão dos arquivos, mas já sabemos que ele converte apenas um único arquivo","path":"/como-converter-todos-arquivos-scss-de-um-diretorio-para-extensao-sass","tags":["scss","sass"],"title":"Como converter todos arquivos .scss de um diretório para extensão .sass","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":143}}}},{"node":{"id":"b5b1e615-f8ce-5ff9-81f7-8e3278dc03ab","html":"<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 87.87085514834206%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsSAAALEgHS3X78AAACWElEQVQ4y62Uy45SQRCGWbgw8TnYw4L7zXC/rEh4BBeuJC58C1254x1MWAqJIeAGEdyghAz3e5jAcC4wDKf7dFndMOPoQMKolfyhc07znb+qu8rQb1ZfDocXr2ejSVqS5fRms0nP5/P0ZDJJz2azo5pOp/f1Cve+aTabDgOPb1+/QK/dgh/174APYTAYQLfbhVarBe12W6jT6fwm/r7X6wnx96PRCHK53HsB9JvMksvtZmazWTMajcRkMhGn00lsNhux2+1CVqtVyGKxEIfDQbxeLwkGgyQUCnHdRKNRwGdvBfC5zab6/X5w76Esm82y8XjMhsMhG/T7Yi1JElutVkJ8/YeIruvQaDTeCWAoHFZjsRjgV5jH44FCoQCapsF6swFFVUFdr4Exdko8KGCggT0wjMB4PA6YAkOXAshDWi6BXF8D4NcZ17nASCSiJhIJQJcCWCwWBXAry6ChKLqkhAjAkbgD4sH8AvKU0SXDwkKpVBI7sTBAEUK4KAVepwPhqMM7ILp7UEMey/kc5MUCsKAAlB6DHQfiCat49IASKd86vFEU2KFEytvt+SmfAmroiu98dMr3gbcpUwQsLy9hMZ0C7HbipP85ZYpXRse7KICHdB8NRIcMrw3/N1MUha1kWQiHBl5FnZ2IB0A5EAgAiqBDikC+gcqyTFdXVxTbjcqSRHEKUewgygEIF7+H9e5wsfe9jB2iJ5NJSKVSwHu6VqvB3wSOsf20wSnyweVyffL5fDkcDvlMJpOv1+v5crmcr1Qq5+hjtVr9jOPrheEQT1HP/oOeoFHDTyfyHM6XrybjAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/bc904/painel-browsersync-io.webp 250w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/4be29/painel-browsersync-io.webp 500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/03f31/painel-browsersync-io.webp 1000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/9579c/painel-browsersync-io.webp 1500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/b1218/painel-browsersync-io.webp 2000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/a6f75/painel-browsersync-io.webp 2292w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/43fa5/painel-browsersync-io.png 250w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/c6e3d/painel-browsersync-io.png 500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/da8b6/painel-browsersync-io.png 1000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/2e9ed/painel-browsersync-io.png 1500w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/9fabd/painel-browsersync-io.png 2000w,\n/static/a7cb73a8007cc1d7a131ed13680ee44d/973bc/painel-browsersync-io.png 2292w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/a7cb73a8007cc1d7a131ed13680ee44d/da8b6/painel-browsersync-io.png\"\n          alt=\"Usando Browsersync em uma aplicação Ruby on Rails\"\n          title=\"Usando Browsersync em uma aplicação Ruby on Rails\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Usando Browsersync em uma aplicação Ruby on Rails</figcaption>\n  </figure></p>\n<p>Aplicações Rails são magníficas não é mesmo? Todas aquelas Gems \"mágicas\", que fazem de tudo e um pouco mais, são lindas de se ver.</p>\n<p>Mas e se eu quiser algo ainda mais \"supimpa\" pra fazer o meu <em>front-end</em>? E se eu não quiser sair do Rails? Será que existe algo que sincronize todos os navegadores possíveis ou que me de históricos e ferramentas para debug do <em>front-end</em>, será que existe uma Gem assim para Rails?</p>\n<p>Eu procurei pelo Google a fora uma Gem que fizesse essa magia toda, mas não encontrei nada tão bom quanto o <strong><a href=\"https://www.browsersync.io/\">Browsersync</a></strong>, e se você não conhece o <strong>Browsersync</strong> recomendo dar uma lida <a href=\"http://blog.caelum.com.br/browser-sync-indispensavel-para-desenvolver-sites-em-varios-dispositivos/\">nesse artigo que a Caelum escreveu</a>.</p>\n<blockquote>\n<p>ℹ️ Se você é <em>front-end</em> e não conhece o <strong>Browsersync</strong> eu recomendo fortemente que leia sobre ele e comece imediatamente a usar, é uma ferramenta indispensável no cinto de utilidades do Batman!</p>\n</blockquote>\n<h3>Ruby on Rails</h3>\n<p>O intuito desse post não é explicar sobre o Rails e suas <a href=\"http://i.imgur.com/NpWtG3j.gif\">\"Magic\"</a> Gems, e sim como integrar e usar o Browsersync dentro de uma app Rails.</p>\n<p>Primeiro de tudo você precisa de uma aplicação Rails já instalada em sua máquina (a vá! jura? 😱), logo após essa façanha instale o Browsersync global (sim tem que ser global).</p>\n<h3>Instalando o Browsersync</h3>\n<p>Para instalar o Browsersync global basta usar o comando abaixo.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g browsersync</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Assim que a instalação estiver finalizada execute o seguinte comando para saber se tudo está funcionando.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ browser-sync --version</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>O comando acima irá te mostrar qual a versão do Browsersync foi instalada na sua máquina, aqui instalou a versão <code class=\"language-text\">2.13.0</code>.</p>\n<h3>Usando Browsersync dentro do Rails</h3>\n<p>Se você ainda não sabe o Rails sobe um servidor nativo com o comando <code class=\"language-text\">rails server</code> ou apenas <code class=\"language-text\">rails s</code> e usa a porta <code class=\"language-text\">3000</code>, então precisaremos do servidor do rails inicializado para rodar o Browsersync.</p>\n<p>Após ter inicializado o server do Rails você precisa rodar outro comando no seu terminal (em outra aba ou em outra tela).</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">$ browser-sync start --proxy localhost:3000 --files <span class=\"token string\">\"app/assets/**/* , app/views/**/*.html.*, \\!tmp, \\!log\"</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Eu vou explicar um pouco qual é a do comando acima. 😁</p>\n<p>Basicamente eu estou inicializado o server do Browsersync, apontando para o proxy do Rails (que já está rodando na porta 3000), passando quais são os arquivos que eu quero que ele assista (no caso apenas os assets e as views do Rails) e por fim estou ignorando os arquivos temporários da aplicação.</p>\n<p>Se isso tudo der certo ele vai abrir o navegador automaticamente para você, vai demorar um pouco até que ele sincronize tudo com o Rails, mas depois vai de boas.</p>\n<p>Caso você não queira que o navegador abra automaticamente basta colocar <code class=\"language-text\">--no-open</code> no final do comando e sucesso.</p>\n<p>Os comandos do Browsersync são bem fáceis de entender e se você já esta acostumado com outros comandos no terminal será bem tranquilo. Para saber mais leia em <a href=\"https://www.browsersync.io/docs/command-line\">browsersync.io/docs/command-line/</a></p>\n<hr>\n<p>Espero ter ajudado, Abraço!</p>\n<p>😎</p>","excerpt":"Aplicações Rails são magníficas não é mesmo? Todas aquelas Gems \"mágicas\", que fazem de tudo e um pouco mais, são lindas de se ver. Mas e se eu quiser…","timeToRead":2,"frontmatter":{"category":["rails"],"date":"há 10 anos","description":"Hoje vou explicar como integrar e usar o Browsersync.io dentro de uma aplicação Ruby on Rails","path":"/usando-browsersync-em-uma-aplicacao-ruby-on-rails","tags":["rails","npm"],"title":"Usando Browsersync em uma aplicação Ruby on Rails","image":{"publicURL":"/static/painel-browsersync-io-a7cb73a8007cc1d7a131ed13680ee44d.png","name":"painel-browsersync-io"}},"fields":{"readingTime":{"words":504}}}},{"node":{"id":"7a6d1291-0c49-5b4a-835b-5eb9ed2f0257","html":"<p>Olá terráqueo, como vai?</p>\n<p>Recentemente eu contribui com um projeto chamado <a href=\"https://github.com/pattle/Flags-in-CSS\">Flags-in-CSS</a> enviando a bandeira do Brasil <a href=\"http://pattle.github.io/Flags-in-CSS/\">pra coleção</a>.</p>\n<p>Eu vou demonstrar nesse artigo como eu criei ela usando apenas com <abbr title=\"Cascading Style Sheets\">CSS</abbr></p>\n<h2>O Retângulo verde</h2>\n<p>Isso é muito simples. Primeiro criei uma <code class=\"language-text\">div</code> com a classe <code class=\"language-text\">.brasil-flag</code>, por enquanto vazia.</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>brasil-flag<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token comment\">&lt;!-- empty --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>E no CSS eu apliquei o seguinte código:</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">.brasil-flag</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">position</span><span class=\"token punctuation\">:</span> relative<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #16b83e<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 250px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 150px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Com isso nós temos o <strong>retângulo verde</strong> da bandeira.</p>\n<h2>O Losango amarelo</h2>\n<p>Logo dentro da div nós criaremos mais uma <code class=\"language-text\">div</code> com a classe <code class=\"language-text\">.losangue</code>, mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>brasil-flag<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>losangue<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>E no CSS eu apliquei o seguinte código:</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">.brasil-flag .losangue:before,\n.brasil-flag .losangue:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">position</span><span class=\"token punctuation\">:</span> absolute<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .losangue</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 100%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 100%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">top</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">bottom</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">left</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">right</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .losangue:before,\n.brasil-flag .losangue:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">content</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">left</span><span class=\"token punctuation\">:</span> 20px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">right</span><span class=\"token punctuation\">:</span> 20px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .losangue:before</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">border-left</span><span class=\"token punctuation\">:</span> 105px solid transparent<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-right</span><span class=\"token punctuation\">:</span> 105px solid transparent<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-bottom</span><span class=\"token punctuation\">:</span> 65px solid #ffe11f<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">top</span><span class=\"token punctuation\">:</span> 10px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .losangue:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">border-left</span><span class=\"token punctuation\">:</span> 105px solid transparent<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-right</span><span class=\"token punctuation\">:</span> 105px solid transparent<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-top</span><span class=\"token punctuation\">:</span> 65px solid #ffe11f<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">bottom</span><span class=\"token punctuation\">:</span> 10px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Já conseguimos ver o <strong>losango amarelo</strong> da bandeira.</p>\n<h2>O Círculo azul</h2>\n<p>Logo após vamos adicionar mais uma <code class=\"language-text\">div</code> com a classe <code class=\"language-text\">.circle</code>, mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>brasil-flag<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>losangue<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>circle<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">.brasil-flag .circle</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">overflow</span><span class=\"token punctuation\">:</span> hidden<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">z-index</span><span class=\"token punctuation\">:</span> 2<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> block<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #1651b8<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 80px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 80px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-top</span><span class=\"token punctuation\">:</span> -40px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-left</span><span class=\"token punctuation\">:</span> -40px<span class=\"token punctuation\">;</span>\n\n  <span class=\"token property\">top</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">left</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">position</span><span class=\"token punctuation\">:</span> absolute<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-webkit-border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-moz-border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Isso já nos trás o <strong>círculo azul</strong> da bandeira.</p>\n<h2>A faixa branca</h2>\n<p>Ainda utilizando a classe <code class=\"language-text\">.circle</code> vamos criar a faixa branca da bandeira.</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">.brasil-flag .circle,\n.brasil-flag .circle:before,\n.brasil-flag .circle:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">top</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">left</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">position</span><span class=\"token punctuation\">:</span> absolute<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-webkit-border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-moz-border-radius</span><span class=\"token punctuation\">:</span> 50%<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .circle:before,\n.brasil-flag .circle:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 90px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 40px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-ms-transform</span><span class=\"token punctuation\">:</span> <span class=\"token function\">rotate</span><span class=\"token punctuation\">(</span>14deg<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-webkit-transform</span><span class=\"token punctuation\">:</span> <span class=\"token function\">rotate</span><span class=\"token punctuation\">(</span>14deg<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">transform</span><span class=\"token punctuation\">:</span> <span class=\"token function\">rotate</span><span class=\"token punctuation\">(</span>14deg<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .circle:before</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">z-index</span><span class=\"token punctuation\">:</span> 3<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">content</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-top</span><span class=\"token punctuation\">:</span> -20px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-left</span><span class=\"token punctuation\">:</span> -45px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.brasil-flag .circle:after</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">z-index</span><span class=\"token punctuation\">:</span> 4<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">content</span><span class=\"token punctuation\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-top</span><span class=\"token punctuation\">:</span> -10px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-left</span><span class=\"token punctuation\">:</span> -48px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #1651b8<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h2>O resultado final</h2>\n<p><a href=\"https://codepen.io/nandomoreirame/pen/zrRRwx\"><img src=\"https://codepen.io/oknoblich/pen/zrRRwx/image/large.png\" alt=\"Bandeira do Brasil 🇧🇷 apenas com CSS\"></a></p>\n<p>Ainda falta fazer as estrelas que, ao aceitar o meu <a href=\"https://github.com/pattle/Flags-in-CSS/pull/5\"><em>pull request</em></a>, o <a href=\"https://github.com/pattle\">Christopher Pattle</a> perguntou se não seria legal coloca-las, bem... Eu estou pensando ainda se coloco. :D</p>\n<p>/end</p>","excerpt":"Olá terráqueo, como vai? Recentemente eu contribui com um projeto chamado Flags-in-CSS enviando a bandeira do Brasil pra coleção. Eu vou demonstrar…","timeToRead":2,"frontmatter":{"category":["css"],"date":"há 11 anos","description":"Hoje eu vou demonstrar nesse artigo como eu criei a bandeira do Brasil usando apenas com CSS","path":"/criando-a-bandeira-do-brasil-apenas-com-css","tags":["css","css3","html"],"title":"Criando a bandeira do Brasil 🇧🇷 apenas com CSS","image":{"publicURL":"/static/bandeira-do-brasil-com-css-1145832a30b787961d7ed3a0bbe7c384.png","name":"bandeira-do-brasil-com-css"}},"fields":{"readingTime":{"words":408}}}},{"node":{"id":"1a2a5204-17d1-5083-8015-29bea191730a","html":"<p>Criar plugins para <strong><a href=\"http://jekyllrb.com/\">Jekyll</a></strong> é bem simples e fácil, basta criar seu arquivo <code class=\"language-text\">.rb</code> dentro do diretório <code class=\"language-text\">_plugins</code>.</p>\n<p>Hoje vamos <a href=\"https://gist.github.com/joelverhagen/1805814\">usar um plugin</a> bem bacana para incluir vídeos do <a href=\"https://www.youtube.com/\">Youtube</a> no seu blog Jekyll sem precisar copiar e colar o iframe do youtube, apenas usando o <code class=\"language-text\">ID</code> do vídeo.</p>\n<h3>O arquivo youtube.rb</h3>\n<p>Crie um arquivo chamado <code class=\"language-text\">youtube.rb</code> dentro do diretório <code class=\"language-text\">_plugins</code> e coloque o código abaixo:</p>\n<div class=\"gatsby-highlight\" data-language=\"ruby\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-ruby line-numbers\"><code class=\"language-ruby\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">YouTube</span> <span class=\"token operator\">&lt;</span> <span class=\"token constant\">Liquid</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token constant\">Tag</span>\n  <span class=\"token constant\">Syntax</span> <span class=\"token operator\">=</span> <span class=\"token regex\">/^\\s*([^\\s]+)(\\s+(\\d+)\\s+(\\d+)\\s*)?/</span>\n\n  <span class=\"token keyword\">def</span> <span class=\"token method-definition\"><span class=\"token function\">initialize</span></span><span class=\"token punctuation\">(</span>tagName<span class=\"token punctuation\">,</span> markup<span class=\"token punctuation\">,</span> tokens<span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">super</span>\n\n    <span class=\"token keyword\">if</span> markup <span class=\"token operator\">=</span><span class=\"token operator\">~</span> <span class=\"token constant\">Syntax</span> <span class=\"token keyword\">then</span>\n      <span class=\"token variable\">@id</span> <span class=\"token operator\">=</span> $<span class=\"token number\">1</span>\n\n      <span class=\"token keyword\">if</span> $<span class=\"token number\">2.</span><span class=\"token keyword\">nil</span><span class=\"token operator\">?</span> <span class=\"token keyword\">then</span>\n          <span class=\"token variable\">@width</span> <span class=\"token operator\">=</span> <span class=\"token number\">560</span>\n          <span class=\"token variable\">@height</span> <span class=\"token operator\">=</span> <span class=\"token number\">420</span>\n      <span class=\"token keyword\">else</span>\n          <span class=\"token variable\">@width</span> <span class=\"token operator\">=</span> $<span class=\"token number\">2.</span>to_i\n          <span class=\"token variable\">@height</span> <span class=\"token operator\">=</span> $<span class=\"token number\">3.</span>to_i\n      <span class=\"token keyword\">end</span>\n    <span class=\"token keyword\">else</span>\n      <span class=\"token keyword\">raise</span> <span class=\"token string\">\"No YouTube ID provided in the \\\"youtube\\\" tag\"</span>\n    <span class=\"token keyword\">end</span>\n  <span class=\"token keyword\">end</span>\n\n  <span class=\"token keyword\">def</span> <span class=\"token method-definition\"><span class=\"token function\">render</span></span><span class=\"token punctuation\">(</span>context<span class=\"token punctuation\">)</span>\n    <span class=\"token string\">\"&lt;iframe width=\\\"<span class=\"token interpolation\"><span class=\"token delimiter tag\">#{</span><span class=\"token variable\">@width</span><span class=\"token delimiter tag\">}</span></span>\\\" height=\\\"<span class=\"token interpolation\"><span class=\"token delimiter tag\">#{</span><span class=\"token variable\">@height</span><span class=\"token delimiter tag\">}</span></span>\\\" src=\\\"http://www.youtube.com/embed/<span class=\"token interpolation\"><span class=\"token delimiter tag\">#{</span><span class=\"token variable\">@id</span><span class=\"token delimiter tag\">}</span></span>?color=white&amp;theme=light\\\">&lt;/iframe>\"</span>\n  <span class=\"token keyword\">end</span>\n\n  <span class=\"token constant\">Liquid</span><span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token constant\">Template</span><span class=\"token punctuation\">.</span>register_tag <span class=\"token string\">\"youtube\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">self</span>\n<span class=\"token keyword\">end</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h3>Exemplo de uso:</h3>\n<p>Como eu falei logo acima, é bem simples, apenas com uma linha curta você inclui o iframe do youtube no HTML final do Jekyll.</p>\n<div class=\"gatsby-highlight\" data-language=\"liquid\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-liquid line-numbers\"><code class=\"language-liquid\">{<span class=\"token operator\">%</span> youtube <span class=\"token number\">8</span>SbUC<span class=\"token operator\">-</span>UaAxE <span class=\"token operator\">%</span>}</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Você também pode especificar uma altura e largura do iframe. Se você não usar o padrão é de 560 x 420.</p>\n<div class=\"gatsby-highlight\" data-language=\"liquid\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-liquid line-numbers\"><code class=\"language-liquid\">{<span class=\"token operator\">%</span> youtube <span class=\"token number\">8</span>SbUC<span class=\"token operator\">-</span>UaAxE <span class=\"token number\">850</span> <span class=\"token number\">460</span> <span class=\"token operator\">%</span>}</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<h2>Conclusão</h2>\n<p>Bom, na verdade copiar e colar o iframe do Youtube não é tão difícil assim (HUE), mas eu <strong>NÃO</strong> gosto muito de misturar <abbr title=\"HyperText Markup Language\">HTML</abbr> com <strong>Markdown</strong> enquanto estou escrevendo um post, mas em alguns casos é necessário.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 770px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 40%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAcKhJC//xAAWEAEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQEAAQUCJxb/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAWEAADAAAAAAAAAAAAAAAAAAAAECH/2gAIAQEABj8CIv/EABgQAAMBAQAAAAAAAAAAAAAAAAABESEx/9oACAEBAAE/IcRvg+BCH//aAAwDAQACAAMAAAAQ/C//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAACAgMAAAAAAAAAAAAAAAABEQAQITFR/9oACAEBAAE/ECdpDmHhU5un/9k='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/831430ff88eef1a514d0aa6f2a9c8e9b/bc904/vai-sangrar.webp 250w,\n/static/831430ff88eef1a514d0aa6f2a9c8e9b/4be29/vai-sangrar.webp 500w,\n/static/831430ff88eef1a514d0aa6f2a9c8e9b/52dfd/vai-sangrar.webp 770w\"\n          sizes=\"(max-width: 770px) 100vw, 770px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/831430ff88eef1a514d0aa6f2a9c8e9b/0988f/vai-sangrar.jpg 250w,\n/static/831430ff88eef1a514d0aa6f2a9c8e9b/d1f95/vai-sangrar.jpg 500w,\n/static/831430ff88eef1a514d0aa6f2a9c8e9b/b9ca1/vai-sangrar.jpg 770w\"\n          sizes=\"(max-width: 770px) 100vw, 770px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/831430ff88eef1a514d0aa6f2a9c8e9b/b9ca1/vai-sangrar.jpg\"\n          alt=\"Barman - Sem sangrar\"\n          title=\"Barman - Sem sangrar\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Barman - Sem sangrar</figcaption>\n  </figure></p>\n<p>Então essa foi uma solução bem bacana de incluir o iframe de forma fácil e <strong>\"sem sangrar\"</strong> por isso.</p>\n<blockquote>\n<p><strong>Atenção!</strong> O Github não suporta nativamente plugins personalizados para Jekyll, então para usar os plugins e hospedar no <a href=\"https://pages.github.com/\">gh-pages</a> você precisa compilar manualmente o jekyll e subir para seu repositório no Github, para isso você pode usar <a href=\"/rake-tasks-para-automatizar-publicacoes-jekyll/\">Rake Tasks</a> ou utilizar integração continua como <a href=\"https://travis-ci.org\">travis-ci</a></p>\n<small>\n  leia mais em: _[Using jekyll plugins on github\n  pages](http://ixti.net/software/2013/01/28/using-jekyll-plugins-on-github-pages.html)_\n</small>\n</blockquote>\n<p>Obrigado.</p>\n<p>/end</p>","excerpt":"Criar plugins para Jekyll é bem simples e fácil, basta criar seu arquivo  dentro do diretório . Hoje vamos usar um plugin bem bacana para incluir…","timeToRead":2,"frontmatter":{"category":["jekyll"],"date":"há 11 anos","description":"Hoje vamos usar um plugin bem bacana para incluir vídeos do youtube no seu blog Jekyll sem precisar copiar e colar o iframe do youtube","path":"/como-incluir-videos-do-youtube-no-jekyll","tags":["jekyll","youtube","plugins"],"title":"Como incluir vídeos do youtube no seu blog Jekyll de forma fácil","image":{"publicURL":"/static/get-started-with-jekyll-89fd15d1dd2f602e9773098c7b895352.jpg","name":"get-started-with-jekyll"}},"fields":{"readingTime":{"words":321}}}},{"node":{"id":"2cefb727-5eac-5b08-8c5c-b95018887d2f","html":"<p>Nesse artigo vou mostrar como instalar a <a href=\"http://wp-cli.org/\">WP-CLI</a>, uma interface de linha de comando para WordPress.</p>\n<p><strong>WP-CLI</strong> significa <em>WordPress Command Line Interface</em> traduzindo para o português <em>interface de linha de comando</em>.</p>\n<p>A instalação é bem simples, basta que você tenha o <abbr title=\"PHP: Hypertext Preprocessor\">PHP</abbr> instalado em sua máquina.</p>\n<hr>\n<h2>Instalando (e atualizando)</h2>\n<p>Primeiro, faça o download <a href=\"https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar\">wp-cli.phar</a> usando <code class=\"language-text\">wget</code> ou <code class=\"language-text\">curl</code>. Por exemplo:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">curl</span> -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Em seguida, verifique se ele funciona:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">php wp-cli.phar --info</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Para ser capaz de escrever apenas <code class=\"language-text\">wp</code> no seu terminal, em vez de <code class=\"language-text\">php wp-cli.phar</code>, você precisa tornar o arquivo executável e movê-lo para algum lugar no seu <code class=\"language-text\">$PATH</code>. Por exemplo:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">chmod</span> +x wp-cli.phar\n<span class=\"token function\">sudo</span> <span class=\"token function\">mv</span> wp-cli.phar /usr/local/bin/wp</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>Agora é só executar <code class=\"language-text\">wp --info</code>.</p>\n<blockquote>\n<p>O texto acima foi uma tradução de <a href=\"http://wp-cli.org/\">WP-CLI</a>.</p>\n</blockquote>\n<hr>\n<h2>WP-CLI instalado e agora?</h2>\n<p>Executando <code class=\"language-text\">wp help</code> ou apenas <code class=\"language-text\">wp</code> ele nos trará uma lista de subcomandos.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 837px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 99.04420549581839%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsSAAALEgHS3X78AAABnElEQVQ4y52TiW6DMBBEGwzY2OXyfZLS///IDpCkipq2UVYRsZAGz7zdfUvL+fT2aoVcrDVt274iltYbY4Zh6BgTQnRd944Soq7r/8Vp+RiHofpRp9MTaXwqSym47LXMSwzhMNnsRWrSNHXdNP+Lh1kxSi8RUj6fz8uypJScc5TSpm3/8i+tQ+aLixghzjkBodJaK+29Q6K+PyDiJ+760k+yvTpUUnrvtYHGxxi1NpDd33XvQvuolQRenGG1lI0fxPhTSlWEAAdj7LFtG9I49BfyISBtyhliKWeId58N69jj5Mr6aRyPs9ji9eM44skoJIxzQRn9FZiN2Rp9AwbUMF+R6i7ob8BnbcCpqshFXLKxdpqnpyZsUsZofTTA7sBwM1ZlnmfEQWwpJYARQm5j+z28xkd33Srn/ee6grP3wTuHbYFymibeIT7jgnd8O4AiRnAT4+MgdHxJStiAawMNXgrOT3vVez2mje7Q/Wa0CrYxHugTR+0biiHt9psfjadxyHzAyaWs6xpCaJ/Zig2Ytrc+G+vCNpUatp9Z0i91FiKvMQQHegAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/a202ea80e1b7fac32a33a38785fb61ba/bc904/wp-cli-help.webp 250w,\n/static/a202ea80e1b7fac32a33a38785fb61ba/4be29/wp-cli-help.webp 500w,\n/static/a202ea80e1b7fac32a33a38785fb61ba/b112e/wp-cli-help.webp 837w\"\n          sizes=\"(max-width: 837px) 100vw, 837px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/a202ea80e1b7fac32a33a38785fb61ba/43fa5/wp-cli-help.png 250w,\n/static/a202ea80e1b7fac32a33a38785fb61ba/c6e3d/wp-cli-help.png 500w,\n/static/a202ea80e1b7fac32a33a38785fb61ba/8a734/wp-cli-help.png 837w\"\n          sizes=\"(max-width: 837px) 100vw, 837px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/a202ea80e1b7fac32a33a38785fb61ba/8a734/wp-cli-help.png\"\n          alt=\"wp-cli help command\"\n          title=\"wp-cli help command\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">wp-cli help command</figcaption>\n  </figure></p>\n<p>Com esses subcomandos você pode ter total controle da sua instalação <abbr title=\"WordPress\">WP</abbr>, você pode instalar e remover plugins e temas, gerenciar categorias, taxonomias e termos, gerenciar comentários, usuários, resumindo, tudo que pode ser feito via <code class=\"language-text\">/wp-admin/</code> poderá ser feito via <code class=\"language-text\">WP-CLI</code>.</p>\n<p>Por exemplo, instalação de um plugin ficara mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">wp plugin <span class=\"token function\">install</span> hello-dolly</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Fácil não?</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 784px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 23.97959183673469%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAAdElEQVQY05WNywrCMBBFJ1TymBs6JKGVdNJq3bgR///zrOBCRIUeDvcuD8l9xlX72+wbgoYweYccvDIW5hPztkvXOfrKWKdSayqDPVjay3EdiiYZexEhQ09f9+4PLue1acspA9hdjjEysGWts+TIePOn9MEDDUoGGiO4h8MAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/8323d04b9006b1505845135d65af46d8/bc904/wp-cli-theme-status.webp 250w,\n/static/8323d04b9006b1505845135d65af46d8/4be29/wp-cli-theme-status.webp 500w,\n/static/8323d04b9006b1505845135d65af46d8/4555d/wp-cli-theme-status.webp 784w\"\n          sizes=\"(max-width: 784px) 100vw, 784px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/8323d04b9006b1505845135d65af46d8/43fa5/wp-cli-theme-status.png 250w,\n/static/8323d04b9006b1505845135d65af46d8/c6e3d/wp-cli-theme-status.png 500w,\n/static/8323d04b9006b1505845135d65af46d8/fef9b/wp-cli-theme-status.png 784w\"\n          sizes=\"(max-width: 784px) 100vw, 784px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/8323d04b9006b1505845135d65af46d8/fef9b/wp-cli-theme-status.png\"\n          alt=\"wp-cli theme status\"\n          title=\"wp-cli theme status\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">wp-cli theme status</figcaption>\n  </figure></p>\n<hr>\n<h2>Palestra</h2>\n<p>Tem um vídeo muito bom de uma palestra do <strong><a href=\"https://github.com/rodrigoprimo\">Rodrigo Primo</a></strong> no WordCamp Belo Horizonte em 2014.</p>\n<p><a href=\"https://www.youtube.com/watch?v=Gy6uQ_2Gceg\">https://www.youtube.com/watch?v=Gy6uQ_2Gceg</a></p>\n<p>Os slides da palestra está nesse link: <a href=\"http://rodrigoprimo.github.io/wp-cli-wordcamp-bh-2014/\">rodrigoprimo.github.io/wp-cli-wordcamp-bh-2014</a></p>\n<p>E você já usa <abbr title=\"WordPress Command Line Interface\">WP-CLI</abbr>? Conte para nós como está sendo sua experiência com a ferramenta.</p>\n<p>/end</p>","excerpt":"Nesse artigo vou mostrar como instalar a WP-CLI, uma interface de linha de comando para WordPress. WP-CLI significa WordPress Command Line Interface…","timeToRead":2,"frontmatter":{"category":["wordpress"],"date":"há 11 anos","description":"Nesse artigo vou mostrar como instalar a WP-CLI, uma interface de linha de comando para WordPress","path":"/wp-cli-uma-interface-de-linha-de-comando-para-wordpress","tags":["wordpress","cli","wpcli"],"title":"WP-CLI: Uma interface de linha de comando para WordPress","image":{"publicURL":"/static/wp-cli-help-a202ea80e1b7fac32a33a38785fb61ba.png","name":"wp-cli-help"}},"fields":{"readingTime":{"words":272}}}},{"node":{"id":"0731bfd3-3451-5221-b7a7-18aad8fd23a1","html":"<p>Esse é o meu primeiro artigo do ano de <strong>2016</strong>, então eu vou falar sobre <strong><a href=\"http://yeoman.io/\">Yeoman</a></strong> e o <abbr title=\"Content Management System\">CMS</abbr> mais usado do mundo, o <strong><a href=\"https://wordpress.org/\">WordPress</a></strong>.</p>\n<h2>O que é Yeoman?</h2>\n<blockquote>\n<p>Yeoman helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.\n<small><a href=\"http://yeoman.io/\">yeoman.io</a></small></p>\n</blockquote>\n<blockquote>\n<p><em>Traduzindo:</em> Yeoman ajuda a iniciar novos projetos, a prescrição de melhores práticas e ferramentas para ajudá-lo a manter-se produtivo.\n<small><a href=\"https://goo.gl/d9zH8D\">Google translate</a> :D</small></p>\n</blockquote>\n<p>E para isso existe os <em>Generators</em>, são basicamente pacotes <abbr title=\"node package manager\">npm</abbr> feitos para Yeoman e que através deles você consegue dar o pontapé inicial de estruturas completas prontas para iniciar o seu projeto.</p>\n<h2>O yo-wordpress</h2>\n<p>E sim, existe um <em>Generator</em> para <strong>WordPress</strong>, o <em>YeoPress</em> faz o download do WP e inicia uma estrutura complata pra você já sair codificando o seu projeto.</p>\n<h3>Instalando o yo-wordpress</h3>\n<p>A instalação de um generator yo é bem simples, basta que você encontra o generator que deseja no <a href=\"http://yeoman.io/generators/\">site do yeoman</a> e siga as instruções de instalação do generator.</p>\n<p>Nós vamos procurar por <strong>yo-wordpress</strong> no campo de busca e clicar no link.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.08725406330196%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsSAAALEgHS3X78AAABAElEQVQY05WPy0rDQBiF5xHVpdaFN7ALH8AncCGIuhDUtVAXHUi9kNIxRbv2CQqjtsGgMDNJk2Ymc3WiGxeG4uHjcODnv4H23ePe/VP71vtouzdc66IW/Jt1OFjtRrs3MDg6QaPng7MrsBlEO73hRhBt+U6IljvhynUjS51+C8KL49NzGO4fXgKEpw84jnBc+8tCpgP83h/HaPwWxp/AWKesq6wTxinj/iUgteFScaU9ldLamCZ80fMd6mysAUpWGWN5llqzQD/b7C8BLsTrJGZ54Qv1NNsoSmmSJPN5kaYpIcQfAQpe4Q8yIRmd5bTg2jZ+WJYlY0xKKYTgnPtbvgCzdZ9uq9o8nAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/e8ffb0f5bcdd1f7284d6a20311675b9f/bc904/find-yo-wordpress.webp 250w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/4be29/find-yo-wordpress.webp 500w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/03f31/find-yo-wordpress.webp 1000w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/729ee/find-yo-wordpress.webp 1169w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/e8ffb0f5bcdd1f7284d6a20311675b9f/43fa5/find-yo-wordpress.png 250w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/c6e3d/find-yo-wordpress.png 500w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/da8b6/find-yo-wordpress.png 1000w,\n/static/e8ffb0f5bcdd1f7284d6a20311675b9f/adc03/find-yo-wordpress.png 1169w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/e8ffb0f5bcdd1f7284d6a20311675b9f/da8b6/find-yo-wordpress.png\"\n          alt=\"find yo WordPress\"\n          title=\"find yo WordPress\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">find yo WordPress</figcaption>\n  </figure></p>\n<p>Clicando no link você será direcionado para o <a href=\"https://github.com/romainberger/yeoman-wordpress\">repositório do generator</a>, lá teremos o passo-a-passo de como instalar e usar.</p>\n<p>Instalamos o Yeoman e o Generator como instalação de qualquer pacote <abbr title=\"node package manager\">npm</abbr>.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g yo generator-yo-wordpress</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Com o comando acima instalamos o <strong>Yeoman</strong> e o <strong>yo-wordpress</strong></p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 943px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 10.498409331919405%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAIAAADXZGvcAAAACXBIWXMAAAsSAAALEgHS3X78AAAAWUlEQVQI12OQUJYR11IQ05ATUZUR15CT1VCXkTNSVLYRE1flZGHhYWVhYcYJGISFRHi5+fl4+DnZuYUERExNzE3NTMwtzfX0dbm4uDg5gQQXNzc3nIQACBsAO74IhJsOOYEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/d862e0c2c720e51c9c5b140eb1ec2039/bc904/instalando-yo-wordpress.webp 250w,\n/static/d862e0c2c720e51c9c5b140eb1ec2039/4be29/instalando-yo-wordpress.webp 500w,\n/static/d862e0c2c720e51c9c5b140eb1ec2039/3c9bc/instalando-yo-wordpress.webp 943w\"\n          sizes=\"(max-width: 943px) 100vw, 943px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/d862e0c2c720e51c9c5b140eb1ec2039/43fa5/instalando-yo-wordpress.png 250w,\n/static/d862e0c2c720e51c9c5b140eb1ec2039/c6e3d/instalando-yo-wordpress.png 500w,\n/static/d862e0c2c720e51c9c5b140eb1ec2039/e32a2/instalando-yo-wordpress.png 943w\"\n          sizes=\"(max-width: 943px) 100vw, 943px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/d862e0c2c720e51c9c5b140eb1ec2039/e32a2/instalando-yo-wordpress.png\"\n          alt=\"Instalando o yo Wordpress\"\n          title=\"Instalando o yo Wordpress\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Instalando o yo Wordpress</figcaption>\n  </figure></p>\n<h2>Gerando seu primeiro projeto com yo-wordpress</h2>\n<p>Após a instalação o seu generator poderá ser executado normalmente de qualquer diretório do seu sistema operacional. O comando para isso é simples também:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">yo wordpress</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 875px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 62.05714285714286%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsSAAALEgHS3X78AAAAw0lEQVQoz5WS22oDMQxEZ3S1t4XSBtKEvIT+/0dW2n0pFIJ3EMY2Ph5JNrbHp/1c9Pnlz8u8pV5N50fmPfPaMR8h8U4Eif8ihFBADP7tY4jijPpKCuiGOZDB5vknXsKtCGyTc9YIU5JrvrugipEQQfbYOyt8o+6NvW19RcGVudmSOatfGZDdueCqvPjwNbgSrIKLqTA7zHkCbiB6Eb6be6W9/FalOn2UXa1WlZqfeWzpnI+yhetYHx3gYEd9w1lNwBL/C4B1BLtuGVaTAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/f7f43364e830e3e75b17d9682ad52476/bc904/yo-wordpress-command.webp 250w,\n/static/f7f43364e830e3e75b17d9682ad52476/4be29/yo-wordpress-command.webp 500w,\n/static/f7f43364e830e3e75b17d9682ad52476/beb20/yo-wordpress-command.webp 875w\"\n          sizes=\"(max-width: 875px) 100vw, 875px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/f7f43364e830e3e75b17d9682ad52476/43fa5/yo-wordpress-command.png 250w,\n/static/f7f43364e830e3e75b17d9682ad52476/c6e3d/yo-wordpress-command.png 500w,\n/static/f7f43364e830e3e75b17d9682ad52476/9bf66/yo-wordpress-command.png 875w\"\n          sizes=\"(max-width: 875px) 100vw, 875px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/f7f43364e830e3e75b17d9682ad52476/9bf66/yo-wordpress-command.png\"\n          alt=\"yo wordpress command\"\n          title=\"yo wordpress command\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">yo wordpress command</figcaption>\n  </figure></p>\n<p>Logo em seguida o generator irá pedir que você preencha alguns campos para que sua instalação sai bem. São elas:</p>\n<ul>\n<li><code class=\"language-text\">WordPress URL</code>: URL de instalação do projeto;</li>\n<li><code class=\"language-text\">Table prefix (wp_)</code>: O prefixo das tabelas que serão criadas no seu banco de dados, padrão é <code class=\"language-text\">wp_</code>;</li>\n<li><code class=\"language-text\">Database host</code>: URL ou IP do seu servidor de hospedagem, padrão é <code class=\"language-text\">localhost</code>;</li>\n<li><code class=\"language-text\">Database name</code>: Nome do banco de dados;</li>\n<li><code class=\"language-text\">Database user</code>: Nome do usuário do banco de dados;</li>\n<li><code class=\"language-text\">Database password</code>: Senha do usuário do banco de dados (claro que a minha senha não era <strong>**</strong>);</li>\n<li><code class=\"language-text\">Use Git? (y/N)</code>: Você vai usar Git no seu projeto? A resposta precisa ser <code class=\"language-text\">Y</code> ou <code class=\"language-text\">N</code>;</li>\n<li>\n<p><code class=\"language-text\">Would you like to install WordPress with the custom directory structure? (Y/n)</code>: Gostaria de instalar o WordPress com a estrutura de diretório personalizado? A resposta precisa ser <code class=\"language-text\">Y</code> ou <code class=\"language-text\">N</code>. <strong>OBS:</strong> <em>Se caso a resposta da pergunta acima for <code class=\"language-text\">Y</code> o generator vai fazer mais duas perguntas logo abaixo.</em>;</p>\n<ul>\n<li><code class=\"language-text\">WordPress install directory</code>: O diretório de instalação do core do WordPress, por exemplo eu coloquei <code class=\"language-text\">dashboard</code>;</li>\n<li><code class=\"language-text\">WordPress content directory</code>: O diretório onde ficarão o <code class=\"language-text\">wp-content</code> personalizado do seu projeto, por exemplo eu coloquei <code class=\"language-text\">content</code>;</li>\n</ul>\n</li>\n<li>\n<p><code class=\"language-text\">Install a custom theme? (y/N)</code>: Deseja instalar um tema customizado? A resposta precisa ser <code class=\"language-text\">Y</code> ou <code class=\"language-text\">N</code> <strong>OBS:</strong> <em>Se caso a resposta da pergunta acima for <code class=\"language-text\">Y</code> o generator vai fazer mais seis perguntas.</em>;</p>\n<ul>\n<li><code class=\"language-text\">Destination directory</code>: O nome do diretório que você deseja baixar o tema personalizado;</li>\n<li><code class=\"language-text\">Theme source type (git/tar)</code>: Deixe como <code class=\"language-text\">git</code> mesmo ;)</li>\n<li><code class=\"language-text\">Task runner (grunt/gulp)</code>: Qual Task runner você deseja no seu projeto? Eu selecionei <code class=\"language-text\">gulp</code>&#x3C;3</li>\n<li><code class=\"language-text\">GitHub username</code>: Deixe como <code class=\"language-text\">wesleytodd</code>;</li>\n<li><code class=\"language-text\">GitHub repository name</code>: Deixe como <code class=\"language-text\">YeoPress</code>;</li>\n<li><code class=\"language-text\">Repository branch</code>: Deixe como <code class=\"language-text\">template</code>;</li>\n</ul>\n</li>\n<li><code class=\"language-text\">Does this all look correct? (Y/n)</code>: Responda <code class=\"language-text\">Y</code> e seja feliz :D</li>\n</ul>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 859px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 118.74272409778813%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAIAAAB1KUohAAAACXBIWXMAAAsSAAALEgHS3X78AAACS0lEQVQ4y5VUaW/bMAyVROqwLDl2LB9ND/RYtyHNMTRd1i/rsP//p/bspGjXYphLKARl6fFRPCKklMpZoZTymWCWWkvnlDWKlPivjGAniKSzUrNgEs4qa+FNTBFltDQG5AMtyMctnE4DAwYwriMEMDMTXIhpMkQOPADeQw+2nIp9dnHAT3zqMWYizRyIsDxRxpwzZxNdXN1e7+7vr25uqIiUecpz9h4eJ4E3u2+/fz3drdf2/FyE8LGnbnfbp6eft8tlmRK7zFmTuYNYnx3lsBfv3/Jl9fVht1uuVuv1+uFhd3n7ub75VKa6iHFeVSVWWc4GKdEFb8HLzd1+v99sNz8eH7/v97O+F+iQj1TpWFZohZJBj6UnQvVosKSisfjj6SvPYGHl0JCKUTIyyuKyJoGNJ0MAKy3QAJgULTUU8QuYBkL0pAaTHNqEJRErQVJYwVoSyIUka3AyXGL1qop5yGOIVTUvZ2WM0VqLW8ZoawxbS8YqpMAYoIf+G174Kuy6705O+n78IbF5HlAbY4A1EoOJwbaDMUwO89tk1dfXlxcXp2dnXdeXZRVCmNpekHR6sgDvYgFw2zRFUXh06EjyEuG/hmxx1rZN17Vd3/UpJe99iCFH9CGgq2Dji3UOGh+h/wJn57lNVjFJpFh9cIzjLBRVgRXLWJSzEOJAnueIH+QHfYhFPwuzRjphiPl8Xtd107aprlOTkHAcZJkHBGlHsAh+nA0U0QJgRoENLdJl4xbOdMa0xjRGJ9ZZNLrROmldWdvjD8KOjfj+SX8A/GcjT2Zyh/YAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/8c5aabb4b2acaafefd4f8f3dec57ac28/bc904/executando-yo-wordpress.webp 250w,\n/static/8c5aabb4b2acaafefd4f8f3dec57ac28/4be29/executando-yo-wordpress.webp 500w,\n/static/8c5aabb4b2acaafefd4f8f3dec57ac28/744c0/executando-yo-wordpress.webp 859w\"\n          sizes=\"(max-width: 859px) 100vw, 859px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/8c5aabb4b2acaafefd4f8f3dec57ac28/43fa5/executando-yo-wordpress.png 250w,\n/static/8c5aabb4b2acaafefd4f8f3dec57ac28/c6e3d/executando-yo-wordpress.png 500w,\n/static/8c5aabb4b2acaafefd4f8f3dec57ac28/f2058/executando-yo-wordpress.png 859w\"\n          sizes=\"(max-width: 859px) 100vw, 859px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/8c5aabb4b2acaafefd4f8f3dec57ac28/f2058/executando-yo-wordpress.png\"\n          alt=\"Executando o yo wordpress\"\n          title=\"Executando o yo wordpress\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Executando o yo wordpress</figcaption>\n  </figure></p>\n<p>O Generator vai gerar todos os arquivos para o seu novo projeto, e também um arquivo <code class=\"language-text\">.json</code> chamado <code class=\"language-text\">.yeopress</code>, ele usa esse arquivo para armazenar as configurações que você preencheu ao rodar o comando no terminal, pra mim ficou assim:</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.223469960696235%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAAAsSAAALEgHS3X78AAAA7klEQVQY041RW3LEIAzLTXga7ARwHk13s7u9/7WqkH70M4zHY4NkS8OgOgqTtdY5myXJmH1wxjlz4wy1StPJGOuszaWM68ZNA5G7cYbMudSCyhojquVrizmjvkWOAWvIeY/N3Grddy4FNfj+H677cifsyr0YKEZm+AxAc6318cBySCAR0TYus8zztK24ZG15mmANwa0RM8iUEnXZNtc6f976OvQ4kEFoz8fy80HW96sdT0yBOswNXfC5OaX053lWIMDBVMqZhJNI7K9drA8xQqOP8WoHMImS7bYgrHzv07oAhJ+wV1xuO+C03nNv3S/lb0azdR4E4wAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/1045d287d31e10a119518f65fa5b4ba1/bc904/generator-files-and-yopress-file.webp 250w,\n/static/1045d287d31e10a119518f65fa5b4ba1/4be29/generator-files-and-yopress-file.webp 500w,\n/static/1045d287d31e10a119518f65fa5b4ba1/03f31/generator-files-and-yopress-file.webp 1000w,\n/static/1045d287d31e10a119518f65fa5b4ba1/9579c/generator-files-and-yopress-file.webp 1500w,\n/static/1045d287d31e10a119518f65fa5b4ba1/4d0d9/generator-files-and-yopress-file.webp 1781w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/1045d287d31e10a119518f65fa5b4ba1/43fa5/generator-files-and-yopress-file.png 250w,\n/static/1045d287d31e10a119518f65fa5b4ba1/c6e3d/generator-files-and-yopress-file.png 500w,\n/static/1045d287d31e10a119518f65fa5b4ba1/da8b6/generator-files-and-yopress-file.png 1000w,\n/static/1045d287d31e10a119518f65fa5b4ba1/2e9ed/generator-files-and-yopress-file.png 1500w,\n/static/1045d287d31e10a119518f65fa5b4ba1/e378c/generator-files-and-yopress-file.png 1781w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/1045d287d31e10a119518f65fa5b4ba1/da8b6/generator-files-and-yopress-file.png\"\n          alt=\"Generator files and yopress file\"\n          title=\"Generator files and yopress file\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Generator files and yopress file</figcaption>\n  </figure></p>\n<h2>Conclusão</h2>\n<p>Usando generators você poupa um tempo massa de downloads, configurações, criação de diretórios, entre outros. E ainda se você trabalha criando novos projetos toda a semana com WordPress o ganho é absurdamente grande.</p>\n<p>Você já usa o Yeoman no seu dia-a-dia? Você achou interessante essa abordagem? Comenta ai vai.</p>\n<p>\\end</p>","excerpt":"Esse é o meu primeiro artigo do ano de 2016, então eu vou falar sobre Yeoman e o CMS mais usado do mundo, o WordPress. O que é Yeoman? Yeoman helps…","timeToRead":4,"frontmatter":{"category":["yeoman"],"date":"há 11 anos","description":"Sim, existe um Generator para WordPress, o YeoPress faz o download do WP e inicia uma estrutura complata pra você já sair codificando o seu projeto","path":"/yo-wordpress-iniciando-projetos-para-wordpress-em-segundos","tags":["yeoman","generator","npm","wordpress"],"title":"YeoPress, iniciando projetos WordPress em segundos","image":{"publicURL":"/static/yo-wordpress-command-f7f43364e830e3e75b17d9682ad52476.png","name":"yo-wordpress-command"}},"fields":{"readingTime":{"words":694}}}},{"node":{"id":"dad33a45-ebac-5402-948a-a6b4c1a9ae8c","html":"<p>Por alguns meses eu usei o plugin <a href=\"https://github.com/christian-fei/Simple-Jekyll-Search\">Simple Jekyll Search</a> que funcionou muito bem no meu blog, mas agora ele foi totalmente feito em angular e ficou uma maravilha.</p>\n<p>Hoje vou mostrar aqui como foi eu criei essa façanha, é bem simples e sem segredo nenhum, vem comigo.</p>\n<h2>Primeiro obstáculo: Liquid x Angular</h2>\n<p>Você deve ter notado que o Jekyll, assim como o Angular, usa 2 chaves em sua sintaxe, causando assim um conflito na hora de compilar o jekyll.</p>\n<p>É bem simples resolver esse pequeno probleminha, o próprio Angular tem a solução, o <a href=\"https://docs.angularjs.org/api/ng/provider/$interpolateProvider\">$interpolateProvider</a> é usado para configurar a interpolação da linguagem.</p>\n<p>Com ele vamos setar no <code class=\"language-text\">config</code> para o angular reconhecer apenas <code class=\"language-text\">{( var )}</code>, mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> app <span class=\"token operator\">=</span> angular<span class=\"token punctuation\">.</span><span class=\"token function\">module</span><span class=\"token punctuation\">(</span><span class=\"token string\">'searchApp'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\napp<span class=\"token punctuation\">.</span><span class=\"token function\">config</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span>\n  <span class=\"token string\">'$interpolateProvider'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">$interpolateProvider</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> $interpolateProvider<span class=\"token punctuation\">.</span><span class=\"token function\">startSymbol</span><span class=\"token punctuation\">(</span><span class=\"token string\">'{('</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">endSymbol</span><span class=\"token punctuation\">(</span><span class=\"token string\">')}'</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h2>O arquivo json</h2>\n<p>Precisamos pegar todos os artigos do blog para alimentar nosso Javascript, criaremos um template para o Jekyll montando um <code class=\"language-text\">.json</code>.</p>\n<h4>search.json</h4>\n<div class=\"gatsby-highlight\" data-language=\"liquid\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-liquid line-numbers\"><code class=\"language-liquid\"><span class=\"token operator\">--</span><span class=\"token operator\">-</span>layout<span class=\"token operator\">:</span> null\n<span class=\"token operator\">--</span><span class=\"token operator\">-</span>[\n  {<span class=\"token operator\">%</span> <span class=\"token keyword\">for</span> post <span class=\"token keyword\">in</span> site.posts <span class=\"token operator\">%</span>}\n    {\n      \"title\" <span class=\"token operator\">:</span> \"{{ post.title <span class=\"token operator\">|</span> <span class=\"token function\">escape</span> }}\",\n      \"category\" <span class=\"token operator\">:</span> \"{{ post.categories <span class=\"token operator\">|</span> array_to_sentence_string }}\",\n      \"tags\" <span class=\"token operator\">:</span> \"{{ post.tags <span class=\"token operator\">|</span> array_to_sentence_string }}\",\n      \"url\" <span class=\"token operator\">:</span> \"{{ site.baseurl }}{{ post.url }}\",\n      \"date\" <span class=\"token operator\">:</span> \"{{ post.date <span class=\"token operator\">|</span> <span class=\"token function\">date</span><span class=\"token operator\">:</span> \"<span class=\"token operator\">%</span><span class=\"token operator\">-</span>d<span class=\"token operator\">/</span><span class=\"token operator\">%</span><span class=\"token operator\">-</span>m<span class=\"token operator\">/</span><span class=\"token operator\">%</span>Y\" }}\"\n    }{<span class=\"token operator\">%</span> <span class=\"token keyword\">unless</span> forloop.last <span class=\"token operator\">%</span>},{<span class=\"token operator\">%</span> <span class=\"token keyword\">endunless</span> <span class=\"token operator\">%</span>}\n  {<span class=\"token operator\">%</span> <span class=\"token keyword\">endfor</span> <span class=\"token operator\">%</span>}\n]</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>O código acima irá montar uma estrutura mais ou menos assim.</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-json line-numbers\"><code class=\"language-json\"><span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"title\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Fazendo um sistema de busca simples no Jekyll usando AngularJS\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"category\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"jekyll\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"tags\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"jekyll, angular, and angularjs\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"/busca-no-jekyll-com-angularjs\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"date\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"27/12/2015\"</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"title\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"dotX - mais um tema para Jekyll\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"category\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"temas-jekyll\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"tags\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"temas, jekyll, and download\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"url\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"/dotX-mais-um-tema-para-jekyll\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"date\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"21/12/2015\"</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Se você quiser dar uma olhada no arquivo final pode entrar [nesse link aqui]({{ \"/search.json\" | prepend: site.baseurl }}).</p>\n<h2>searchController</h2>\n<p>Logo acima, no primeiro código angular, nós iniciamos o módulo <code class=\"language-text\">searchApp</code> e setamos o <code class=\"language-text\">config</code> para corrigir a interpolação da linguagem, agora vamos terminar nosso script criando o controller.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token comment\">// criando o ng-controller=\"searchController\"</span>\napp<span class=\"token punctuation\">.</span><span class=\"token function\">controller</span><span class=\"token punctuation\">(</span><span class=\"token string\">'searchController'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token string\">'$scope'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">'$http'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">$scope<span class=\"token punctuation\">,</span> $http</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">// criando a funcao \"pesquiser(q)\" que logo será usada em ng-keyup=\"pesquisar(search)\"</span>\n    $scope<span class=\"token punctuation\">.</span><span class=\"token function-variable function\">pesquisar</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">q</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      $scope<span class=\"token punctuation\">.</span>posts <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>q <span class=\"token operator\">!=</span> <span class=\"token string\">''</span> <span class=\"token operator\">&amp;&amp;</span> q <span class=\"token operator\">!=</span> <span class=\"token keyword\">undefined</span> <span class=\"token operator\">&amp;&amp;</span> q<span class=\"token punctuation\">.</span>length <span class=\"token operator\">>=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token comment\">// no $http.get() que toda a mágica acontece...</span>\n        $http\n          <span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'/search.json'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> data<span class=\"token operator\">:</span> q <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">.</span><span class=\"token function\">success</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">data</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token comment\">// atribuindo os objetos em uma variável \"posts\"</span>\n            $scope<span class=\"token punctuation\">.</span>posts <span class=\"token operator\">=</span> data\n          <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">.</span><span class=\"token function\">error</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">data</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            console<span class=\"token punctuation\">.</span><span class=\"token function\">error</span><span class=\"token punctuation\">(</span><span class=\"token string\">'error...'</span><span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<h2>O HTML</h2>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">ng-app</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>searchApp<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">ng-controller</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>searchController<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>input</span>\n      <span class=\"token attr-name\">type</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>text<span class=\"token punctuation\">\"</span></span>\n      <span class=\"token attr-name\">ng-model</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>search<span class=\"token punctuation\">\"</span></span>\n      <span class=\"token attr-name\">ng-keyup</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>pesquisar(search)<span class=\"token punctuation\">\"</span></span>\n      <span class=\"token attr-name\">placeholder</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>Digite: sass, javascript, ruby, gulp, php...<span class=\"token punctuation\">\"</span></span>\n      <span class=\"token attr-name\">autofocus</span>\n      <span class=\"token attr-name\">autocomplete</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>off<span class=\"token punctuation\">\"</span></span>\n    <span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>hr</span> <span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>ul</span> <span class=\"token attr-name\">ng-show</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>posts.length > 0<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>li</span> <span class=\"token attr-name\">ng-repeat</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>post in posts | filter:search<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>a</span> <span class=\"token attr-name\">href</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>{( post.url )}<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n          <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span><span class=\"token punctuation\">></span></span>{( post.title )}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>small</span><span class=\"token punctuation\">></span></span>{( post.category )}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>small</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>a</span><span class=\"token punctuation\">></span></span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>li</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>ul</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Bem, esse HTML ai em cima dispeça explicações né, se você sabe pelo menos o básico de AngularJS você já vai \"matar todas as charadas\" dele, mas vou dar uma explicação rápida.</p>\n<ul>\n<li><strong><code class=\"language-text\">ng-app=&quot;searchApp&quot;</code></strong>: iniciamos o app do Angular;</li>\n<li><strong><code class=\"language-text\">ng-controller=&quot;searchController&quot;</code></strong>: iniciamos o controller searchController;</li>\n<li><strong><code class=\"language-text\">ng-model=&quot;search&quot;</code></strong>: iniciamos o model search;</li>\n<li><strong><code class=\"language-text\">ng-keyup=&quot;pesquisar(search)&quot;</code></strong>: a funcao pesquisar() recebe como parâmetro o model search;</li>\n<li><strong><code class=\"language-text\">ng-show=&quot;posts.length &gt; 0&quot;</code></strong>: a <code class=\"language-text\">ul</code> só vai existir se a variável <code class=\"language-text\">posts</code> existir;</li>\n<li><strong><code class=\"language-text\">ng-repeat=&quot;post in posts | filter:search&quot;</code></strong>: caso haja objetos na variável <code class=\"language-text\">posts</code> criamos a lista com <code class=\"language-text\">ng-repeat</code>;</li>\n</ul>\n<h2>O filtro</h2>\n<p>Você deve ter notado que o nosso <code class=\"language-text\">searchController</code> e nossa função <code class=\"language-text\">pesquisar</code> retorna todos os objetos do arquivo <code class=\"language-text\">search.json</code> por isso passamos um filtro mágico do AngularJS chamado <code class=\"language-text\">filter:</code> que recebe o model <code class=\"language-text\">search</code> (que é basicamente as letras digitadas no input).</p>\n<p><a href=\"https://nando-experiments.github.io/busca-no-jekyll-com-angularjs/\">Demonstração</a> <a href=\"https://github.com/nando-experiments/busca-no-jekyll-com-angularjs\">Download</a></p>\n<p>Com isso fechamos nosso sisteminha de busca simples no Jekyll usando AngularJS ;)</p>\n<p>Gostou, comenta ai \\o/</p>\n<p>\\end</p>","excerpt":"Por alguns meses eu usei o plugin Simple Jekyll Search que funcionou muito bem no meu blog, mas agora ele foi totalmente feito em angular e ficou uma…","timeToRead":3,"frontmatter":{"category":["jekyll"],"date":"há 11 anos","description":"Por alguns meses eu usei o plugin Simple Jekyll Search que funcionou muito bem no meu blog","path":"/fazendo-sistema-de-busca-no-jekyll-com-angularjs","tags":["jekyll","angular","angularjs"],"title":"Fazendo um sistema de busca simples no Jekyll usando AngularJS","image":{"publicURL":"/static/angularjs-ac143796d23ba9bf2a8fb95d6d3783b5.png","name":"angularjs"}},"fields":{"readingTime":{"words":618}}}},{"node":{"id":"05feff9d-fb91-5fb8-9a42-4b1fa8b92459","html":"<p>Essa é uma dica rápida para os amantes da web, quem gosta, ama e trabalha com desenvolvimento de interfaces para o usuário.</p>\n<h2>O que é?</h2>\n<p>O <a href=\"http://usepanda.com/\">Panda 4 - News &#x26; Inspiration Dashboard</a> é um dashborad (painel) com freeds de websites, one pages, imagens, fotos e projetos inspiradores para quem gosta de apreciar essa arte.</p>\n<p>Ele tem a versão <a href=\"http://usepanda.com/app/\">web</a> e extensões para <a href=\"https://addons.mozilla.org/en-US/firefox/addon/panda-daily-news/\">Firefox</a> e <a href=\"https://chrome.google.com/webstore/detail/panda-4-news-inspiration/haafibkemckmbknhfkiiniobjpgkebko\">Google Chrome</a>. Eu uso ele nos dois navegadores (Firefox e Chrome).</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 75.55739058629231%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsSAAALEgHS3X78AAAChUlEQVQoz1VTu3LkNhDc/0/sxOfIga4sJZfZdS6HV66LHbhsrU7ScpckQOJFvJ/kSnJTjjxFAlPAANPTPTjUFEryOYVWS1vrurV1Xbf/GRYabH2fc84p5bq2uq6HUaQnEk9T7GcvZjcTPc+M0IlOE6UTIdNAOGXWaSO4kMZab5zV4nRauu4glJuF0zaNlHWn89DT7txfLn3XnTEOw/D8fJpmXlv68nTz+8MPn4/f3bOvx7tPf374cACKnGJKUS+LNcZYJxYHgCF4jADpvW+tvr69ljXm5lMxucX+7tP55vaQUrLWLssi1RJTdNZG70OI2pgYI9aVWhCAK5Aip5JjxvbDzV3308/7YRSilTSctp2FqwiLzW7bXqzzjIvSWkiJC3F/f//0bvD/ubn9+/sfD/kdNxJIznyI1+2ll8PIJvhSqWEcQ0ylVKXU8Xh8fHy8XC6c87/++CqP3/bMiNOCqWkIKa9tO7KHno5AjswgDDyUWkEGJXSGEpxj5ePt7cOpO8QQpFRacs2ICwGHqZkomyCmtpYQUmqB7ta6oe/ZPAOClPKXX3/DVcgMVrQWXNHep/RyfTnJbphIzsU4NxICaKBdaXc6k5HOjIEHwaTemwQ1O++1XqTgUOzt9a3X4yzYntnYS98jYN2uizZPzx16ZoepdQQRdT1gAgwmOMqBo7WZBFymdjwa3CAAGjkfQCqqdc5DOehXW9sJ00ajNijR9/23dwMxQvDzSLE+T5MSfDw/D4TgrnlG24I5DkYPpRScR04QqxaFbfApJGCakUmKzpSLWcRMumEkgIx62UxRIF7HXvN/ViuANLyh7Yp/rdldi71Wv7XgcnN5C2XzuSV0eVtDqfj+BYArO1oXLanVAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/17e0221d11d9d7b83d4ee663827e1eac/bc904/panda-app-chrome-extension.webp 250w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/4be29/panda-app-chrome-extension.webp 500w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/03f31/panda-app-chrome-extension.webp 1000w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/756ac/panda-app-chrome-extension.webp 1211w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/17e0221d11d9d7b83d4ee663827e1eac/43fa5/panda-app-chrome-extension.png 250w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/c6e3d/panda-app-chrome-extension.png 500w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/da8b6/panda-app-chrome-extension.png 1000w,\n/static/17e0221d11d9d7b83d4ee663827e1eac/44079/panda-app-chrome-extension.png 1211w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/17e0221d11d9d7b83d4ee663827e1eac/da8b6/panda-app-chrome-extension.png\"\n          alt=\"Panda App Chrome extension\"\n          title=\"Panda App Chrome extension\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Panda App Chrome extension</figcaption>\n  </figure></p>\n<p>Acho incrivel apreciar o trabalho de grandes mentes do mundo web e sempre que preciso buscar uma inspiração pra algo que estou criando é nesses sites que encontro o que preciso.</p>\n<h2>Isso não é só para designers</h2>\n<p>Como eu disse <a href=\"/nao-seja-apenas-um-recortador-de-psd\">nesse artigo aqui</a>, um front-end com um bom lado criativo tem o seu valor e demonstra ser capaz de criar interfaces sem precisar da ajuda de um designer.</p>\n<p>Navegue, pesquise, busque coisas novas. E <a href=\"http://usepanda.com/\">use panda</a>! :D</p>\n<p>/end.</p>","excerpt":"Essa é uma dica rápida para os amantes da web, quem gosta, ama e trabalha com desenvolvimento de interfaces para o usuário. O que é? O Panda 4 - News…","timeToRead":1,"frontmatter":{"category":["dicas"],"date":"há 11 anos","description":"Essa é uma dica rápida para quem ama e trabalha com desenvolvimento de interfaces para o usuário","path":"/ei-front-end-voce-conhece-o-panda","tags":["dicas","extensões"],"title":"Ei front-end! Você conhece o Panda? 🐼","image":{"publicURL":"/static/panda-app-chrome-extension-17e0221d11d9d7b83d4ee663827e1eac.png","name":"panda-app-chrome-extension"}},"fields":{"readingTime":{"words":160}}}},{"node":{"id":"df8485c5-b3f3-505f-a367-6c117e60ba75","html":"<blockquote>\n<p><strong>Nota:</strong> Eu pensei muito antes de escrever esse artigo, sério! Não sou muito bom em passar sermão ou dicas por textos, mas vamos lá...</p>\n</blockquote>\n<h2>Um assunto polêmico</h2>\n<p>Eu tenho um pouco mais de 6 anos de experiência em desenvolvimento web e posso falar que já vi de tudo um pouco nessa área, e esse artigo vai tratar de um assunto um pouco polêmico (como mamilos): <em><strong>O profissional deve saber de outras áreas que não são relacionadas a área dele?</strong></em></p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 956px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.30125523012552%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABnZU3LOEif//EABoQAQACAwEAAAAAAAAAAAAAAAECAwQQERL/2gAIAQEAAQUC8AB2uVYuMDCRr//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ASf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAABAAIQIREyQf/aAAgBAQAGPwLZNNk9yYuf/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAERITFB/9oACAEBAAE/IZmoRJ0+iljowwnvoicXRtp42f/aAAwDAQACAAMAAAAQhP8A/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxAf/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qp//EABwQAQACAwEBAQAAAAAAAAAAAAEAESExQWFRcf/aAAgBAQABPxAR+DNX2MaE0TZTjRW4qbl8m1d6XyFxLwfsWAC+M//Z'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/e21447ae4e5bb515154a0523ab14b209/bc904/polemico.webp 250w,\n/static/e21447ae4e5bb515154a0523ab14b209/4be29/polemico.webp 500w,\n/static/e21447ae4e5bb515154a0523ab14b209/98c77/polemico.webp 956w\"\n          sizes=\"(max-width: 956px) 100vw, 956px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/e21447ae4e5bb515154a0523ab14b209/0988f/polemico.jpg 250w,\n/static/e21447ae4e5bb515154a0523ab14b209/d1f95/polemico.jpg 500w,\n/static/e21447ae4e5bb515154a0523ab14b209/bd916/polemico.jpg 956w\"\n          sizes=\"(max-width: 956px) 100vw, 956px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/e21447ae4e5bb515154a0523ab14b209/bd916/polemico.jpg\"\n          alt=\"Mamilos polêmico\"\n          title=\"Mamilos polêmico\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Mamilos polêmico</figcaption>\n  </figure></p>\n<blockquote>\n<p><strong>Nota:</strong> Porque eu me referi ao <strong>profissional</strong> e não ao <strong>front-end</strong> no texto acima? Por que, apesar do texto ser focado no mundo front-end, onde estou mais ligado, ele também vale para designers, programadores, marketeiros, UX e afins.</p>\n</blockquote>\n<p>Durante minha trajetória até aqui eu já trabalhei com alguns programadores e designers que discordariam completamente da minha opinião, que é:</p>\n<p><strong><em>Sim, o profissional que trabalha com web deve saber, ou pelo menos entender das áreas a sua volta</em></strong>. Principamente as áreas nas quais sua equipe trabalha e as equipes que ele tem contato dentro da empresa onde trabalha.</p>\n<p>Calma jovem, antes de você vir com pedras nas mãos eu vou começar a defender a minha opinião com os 6 itens logo abaixo.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 600px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwAC/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAASXewJpP/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIRIgADIxL/2gAIAQEAAQUCsBaJx+iLy1j0w//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/AVf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAeEAACAQMFAAAAAAAAAAAAAAAAEQECEBIhIjJBcf/aAAgBAQAGPwLjp4Pq2MVI3S0OD//EABsQAQACAwEBAAAAAAAAAAAAAAEAESFBYTGh/9oACAEBAAE/IRzKDaIDqDqoh18hsRb3svQw2ioOHs//2gAMAwEAAgADAAAAEFMP/8QAFhEBAQEAAAAAAAAAAAAAAAAAACFx/9oACAEDAQE/EIw//8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERUf/aAAgBAgEBPxBc4//EAB0QAQEAAgIDAQAAAAAAAAAAAAERADEhQVFhkbH/2gAIAQEAAT8QLsDy5C9syw1NI6+YgsXuR+Yli3CVHjeDSdQBBe+fe8NNNVGf/9k='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/57317ed178a2ffcca9854923ef55d617/bc904/urso.webp 250w,\n/static/57317ed178a2ffcca9854923ef55d617/4be29/urso.webp 500w,\n/static/57317ed178a2ffcca9854923ef55d617/f8b1b/urso.webp 600w\"\n          sizes=\"(max-width: 600px) 100vw, 600px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/57317ed178a2ffcca9854923ef55d617/0988f/urso.jpg 250w,\n/static/57317ed178a2ffcca9854923ef55d617/d1f95/urso.jpg 500w,\n/static/57317ed178a2ffcca9854923ef55d617/2a8be/urso.jpg 600w\"\n          sizes=\"(max-width: 600px) 100vw, 600px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/57317ed178a2ffcca9854923ef55d617/2a8be/urso.jpg\"\n          alt=\"Urso, senta aqui jovem, vamos conversar\"\n          title=\"Urso, senta aqui jovem, vamos conversar\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Urso, senta aqui jovem, vamos conversar</figcaption>\n  </figure></p>\n<h2>1. Você raramente será passado para trás</h2>\n<p>Nessa área tem muito de, como dizia minha mãe: <em>\"Tentar tapar o sol com a peneira!\"</em>.</p>\n<p><img src=\"../../../assets/2015/12/turtles.gif\" alt=\"tartarugas rodando na agua\"></p>\n<p>Sempre tem um que \"acha\" que o jeito dele desenvolver é o certo, mas tá longe de ser, tem aquele \"espertalhão\" que enrola por horas em uma tarefa que ele levaria alguns minutos, e por ai vai.</p>\n<blockquote>\n<p>Eu conheci programador que passava designers para trás em orçamentos só porque eles não tinham noção de quanto tempo ele levaria para desenvolver um sistema.</p>\n</blockquote>\n<p>Entendendo como algumas coisas funcionam você pode cortar o barato desses fanfarrões :)</p>\n<h2>2. Entenda como está sendo feito</h2>\n<p>Não seja aquele programador que chega no horário, bate o ponto e cola o traseiro na cadeira o dia todo. De uma volta pela empresa, vá no departamento de marketing e assista um pouco do processo deles, pergunte como o designer chegou aquela ideia, acompanhe o UX no processo de planejamento do produto. Isso tudo pode trazer vários beneficios, agrega conhecimento a você e aos envolvidos.</p>\n<p><img src=\"../../../assets/2015/12/spok.gif\" alt=\"Spock - Star Trek\"></p>\n<blockquote>\n<p>De uma volta pela empresa, vai te fazer bem!</p>\n</blockquote>\n<h2>3. Não feche os olhos para as novidades</h2>\n<p>Essa vai, com um carinho especial, para programadores back-end, aqueles programadores que ainda tem medo das tags HTML5 e das animações das CSS3.</p>\n<p><img src=\"../../../assets/2015/12/robo.gif\" alt=\"Robo e gatinho\"></p>\n<p>Não seja esse cara. Entenda como as tecnologias novas podem ajudar em um projeto, como o HTML5 pode melhorar, e muito, o SEO de um website, como as animações das CSS3 podem, em alguns casos, até substituir o Javascript, não custa dar uma lida em artigos e tutoriais na internet.</p>\n<h2>4. Não tenha medo de aprender coisas novas</h2>\n<p>Um designer que aprende a programar não quer dizer que a empresa vai passar as tarefas do programador pra ele, quando ele estiver com o tempo livre, e assim vale para o programador ou para o front-end.</p>\n<p><img src=\"../../../assets/2015/12/skate.gif\" alt=\"Aprendendo skate de dedos\"></p>\n<p>Aprender algo novo eleva muito o seu valor, como pessoa e como profissional, e isso ninguém tira de você.</p>\n<p>Não tenha medo de saber como as coisas funcionam em outras áreas, aprenda de verdade, você vai se surpreender com quanta coisa legal tem por ai.</p>\n<h2>5. Não tenha medo que a empresa te explore por saber muitas coisas</h2>\n<p>Eu conversei com uma designer uma vez e ela mencionou aquelas empresas que abrem vagas para designers e exigem que o profissional saiba, HTML, CSS, JS, PHP, Java, Ruby, NodeJS, banco de dados, lavar, passar e cozinhar (mentira, nem é tudo isso eu exagerei um pouco).</p>\n<p>Isso ainda existe e duvido que vá mudar, mas... quanto mais você souber maior o seu valor, concorda?</p>\n<p>Geralmente, nas descrições das vagas, eles pedem um monte de coisas, mas muitas dessas coisas eles querem que o candidato saiba apenas o básico, apenas ter uma noção já basta. Não é que eles vão te contratar como front-end e vão te colocar como programador back-end, ou te contrata como designer e te colocar como desenvolvedor <em>full stack</em>.</p>\n<h2>6. E por último, não seja apenas um recortador de PSD!</h2>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 800px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsSAAALEgHS3X78AAADa0lEQVQozy2SXUxbdRjGn/8BdGg2Ix+bEDQzkRgTyXSSIGyulQx0H5nT4T5MNC7ZhYl3euGFuzEx8cYYESgd5bTU9pzTntJz+nVKu5bSrwy2CtYliqJOuNBsyxDb0m/o31PjxXv5vM/ze94XBRu2BVQcoG7seJBxIC+DLqASREkBTYDGUQ4gM4uKF1RBxYkcjy0rk+MZqOIMhyyPiqoJojyHrAvb8+T+HNIc2VwATWHbj7xC1I1VBRkbKdjxO9u6bt6PmoSyiJy6wo6yapUkpTDJh/Ale/Dy6Mt2qbOWQjaA2iKqC8g6kZ0l1IMNc9v6zH5QCdSFmhdFNzIyimFUb+1d9e/9RDj5mfTO+zPHFMc+mm7cWurI+lCYI7shoga8Y27/caqjHlvFqKmeEVKL426w/afvvo5Hui5+0X3po54r492fmp75IfZEalG/meiii6hcZ6purBrab08eQJZDRvivJy+pRlG4tW8tdfZbofNztoNTOr6Rn7o686ziab9zsy+beCSvNuciRRm/Gh//jW3FzizKMil6mbyfyQWZfJTUlpFPkwnhAB/uuso9PSlq6VpTZRnFG6SSYKoLDXQeG9a2P/5n9oFeB42B3oSqLC2DrsHr2fPBV499OPb2SvIKXcXubUZtbieOWhjUj3/E5k2uuc78/fRz89c0CeORlHBkWXwpwR9ekntd/At2y6Be/94NnyYdOrri6llxHFoSXkuZX4xMDa5bOvMC6hffMLd4RzX86EW36XKEOzarP+E3D0vm82FB47W8JbNayXSWH78QYAdE/QXTxMdJ40BGbK6IqDNTN/nT3vELfzDEnpEmTgVMGpdhaM56Omjtdxpelw2a4IzWZnhXGtMus0+mzT33xBb11FQm6mDHydyztW059vzMdftNI0nrgKLv886cT9peSdqOhrjTUeFkmNXGrYN35ZYNrvUv66N5G8oOoCQiwyOm6/NNvDk/NbjAany6oZjxsGI8p0wfDxi1EctI1HI8rO9VDCOybsQ3eW5l+vmc+tEcqTNnOLIj4j7XGjW8GhrvDeqHY2x/QNfvvzbs0Z8I6w6FpoecukvusVPBqTe2hGY1rGpZL6z+YWIdoCYxOVvj33xTydVYVRq3HI0FT9NusOGBvSknPVTxPpyzNzywNBRFhkpEPfDuLP4FMo7oMVX2RJYAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/087537c93e5e8c8ac6d3536107971aee/bc904/bugginho.webp 250w,\n/static/087537c93e5e8c8ac6d3536107971aee/4be29/bugginho.webp 500w,\n/static/087537c93e5e8c8ac6d3536107971aee/47a22/bugginho.webp 800w\"\n          sizes=\"(max-width: 800px) 100vw, 800px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/087537c93e5e8c8ac6d3536107971aee/43fa5/bugginho.png 250w,\n/static/087537c93e5e8c8ac6d3536107971aee/c6e3d/bugginho.png 500w,\n/static/087537c93e5e8c8ac6d3536107971aee/7842b/bugginho.png 800w\"\n          sizes=\"(max-width: 800px) 100vw, 800px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/087537c93e5e8c8ac6d3536107971aee/7842b/bugginho.png\"\n          alt=\"Bugginho developer, amiguinhos!\"\n          title=\"Bugginho developer, amiguinhos!\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Bugginho developer, amiguinhos!</figcaption>\n  </figure></p>\n<p>Se você se titula por ai um <strong><em>Front-end engineer</em></strong> e não sabe se virar bem com alguma linguagem de programação, não sabe otimizar a performance de um site, ou não sabe usar o terminal a seu favor, sinto muito te dizer amigo, mas <strong><em>você é apenas um recortador de PSD</em></strong>.</p>\n<p>Ser <strong><em>front-end</em></strong> vai muito além de apenas saber Javascript, você precisa cuidar do seu código, deixar seu JS performático e otimizar as variáveis.</p>\n<p>Ser <strong><em>front-end</em></strong> vai muito além de apenas saber CSS, você precisa saber pré-processadores e usá-los da forma correta otimizando as suas CSS.</p>\n<p>Saber HTML não basta para ser um bom <strong><em>front-end</em></strong>, você precisa entender, nas entrelinhas, o que cada tag tem pra te contar, ler o seu próprio HTML repetidas vezes a procura de uma imagem com um atributo <code class=\"language-text\">alt</code> vazio, saber pelo menos o básico de acessibilidade e de SEO é o mínimo para um bom <strong><em>front-end</em></strong>.</p>\n<p>Saber usar pacotes como <em>gems</em> e <em>npm</em> para automatizar tarefas repetidas, saber usar git, criar e compartilhar coisas no github, tudo isso te faz um bom <strong><em>front-end</em></strong> e aumenta o seu valor como profissional.</p>\n<p>Não deixe que digam que você é <strong><em>\"apenas um fatiador de layout\"</em></strong> e <strong><em>\"diagramador de telas\"</em></strong>, vá além do HTML, CSS e JS padrão de todos os sites, aprenda uma nova linguam de programação (recomendo ruby e python), tenha noção de design, cores e tipografia. Isso tudo vai te ajudar muito em sua carreira como <strong><em>Front-end</em></strong>.</p>\n<h2>Conclusão</h2>\n<p>O mercado necessita de profissionais que interajam e aprendem sobre outras áreas, que não estejam relacionadas apenas com a sua formação. Se você não correr poderá ficar para trás.</p>\n<p>Tem cada vez mais por ai, designers sabendo front-end, front-end sabendo UX e back-end tendo noções de design, não deixe que uma dessas pessoas tome sua vaga no mercado de trabalho.</p>\n<p>/end.</p>","excerpt":"Nota: Eu pensei muito antes de escrever esse artigo, sério! Não sou muito bom em passar sermão ou dicas por textos, mas vamos lá... Um assunto…","timeToRead":4,"frontmatter":{"category":["geral"],"date":"há 11 anos","description":"Durante minha trajetória até aqui eu já trabalhei com alguns programadores e designers que discordariam completamente da minha opinião","path":"/nao-seja-apenas-um-recortador-de-psd","tags":["front-end"],"title":"Não seja apenas um recortador de PSD!","image":{"publicURL":"/static/skate-52db76a56997aafe3652a51ea6ad6516.gif","name":"skate"}},"fields":{"readingTime":{"words":1037}}}}]}},"pageContext":{"limit":12,"skip":12,"numPages":4,"currentPage":2}}}