<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tommy Vedvik</title>
    <description>The latest articles on DEV Community by Tommy Vedvik (@tomtev).</description>
    <link>https://dev.to/tomtev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F117048%2F09490179-2686-4b9b-b670-aa1ca25dabe0.png</url>
      <title>DEV Community: Tommy Vedvik</title>
      <link>https://dev.to/tomtev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tomtev"/>
    <language>en</language>
    <item>
      <title>Gridsome v0.5</title>
      <dc:creator>Tommy Vedvik</dc:creator>
      <pubDate>Wed, 20 Feb 2019 23:37:22 +0000</pubDate>
      <link>https://dev.to/gridsome/gridsome-v05-1i61</link>
      <guid>https://dev.to/gridsome/gridsome-v05-1i61</guid>
      <description>&lt;p&gt;Gridsome is a Vue.js-powered, modern site generator &lt;a href="https://gridsome.org" rel="noopener noreferrer"&gt;Gridsome.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We're really excited to release Gridsome 0.5. The biggest update yet. It has many important features that make data handling easier and a lot more flexible. It opens up a whole new world of what you can build with Gridsome. Easily build Taxonomy pages and connections for any data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filtering GraphQL data
&lt;/h2&gt;

&lt;p&gt;Each content type collection in the GraphQL schema has a new &lt;code&gt;filter&lt;/code&gt; argument which can be used to filter the results. You can filter by &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;slug&lt;/code&gt;, &lt;code&gt;path&lt;/code&gt; or any custom field.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="http://gridsome.org/docs/filtering-data" rel="noopener noreferrer"&gt;Filtering data&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create taxonomy pages
&lt;/h2&gt;

&lt;p&gt;All references in the GraphQL schema has been a one-way relation. This release introduces a new field called &lt;code&gt;belongsTo&lt;/code&gt; for all content types. The field will list all nodes that have a reference back to the current node which makes it very useful to create taxonomy pages etc. The field can also take the same arguments as a collection. And the &lt;code&gt;@paginate&lt;/code&gt; directive can be used to automatically paginate the results.&lt;/p&gt;

&lt;p&gt;For example, this can be used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;List blog posts for an author.&lt;/li&gt;
&lt;li&gt;List posts for a tag or category.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We're using this feature on &lt;strong&gt;Gridsome blog&lt;/strong&gt; for the &lt;strong&gt;authors&lt;/strong&gt;. The authors here are just a YAML file that lists authors, and then Gridsome magically connects it all.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="http://gridsome.org/docs/taxonomies" rel="noopener noreferrer"&gt;Taxonomies&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Variables in Page Query
&lt;/h2&gt;

&lt;p&gt;Previously, only &lt;code&gt;$path&lt;/code&gt; and &lt;code&gt;$page&lt;/code&gt; were available as variables for &lt;code&gt;page-query&lt;/code&gt; in templates. But you can now use &lt;code&gt;$id&lt;/code&gt;, &lt;code&gt;$title&lt;/code&gt;, &lt;code&gt;$slug&lt;/code&gt;, &lt;code&gt;$date&lt;/code&gt; or any custom field from the current &lt;code&gt;node&lt;/code&gt;. Deep objects and arrays can also be used as variables.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$id&lt;/code&gt; resolves to &lt;code&gt;node.id&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$value&lt;/code&gt; resolves to &lt;code&gt;node.fields.value&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$object__value&lt;/code&gt; resolves to &lt;code&gt;node.fields.object.value&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$array__3__id&lt;/code&gt; resolves to &lt;code&gt;node.fields.array[3].id&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read more about &lt;a href="http://gridsome.org/docs/querying-data#query-data-in-templates" rel="noopener noreferrer"&gt;Query data in templates&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Environment variables
&lt;/h2&gt;

&lt;p&gt;Sometimes you want configuration values that are different from what you have in the production build. Gridsome now utilizes the &lt;a href="https://www.npmjs.com/package/dotenv" rel="noopener noreferrer"&gt;dotenv&lt;/a&gt; package to make this easy. Special thanks to &lt;a href="https://github.com/isoppp" rel="noopener noreferrer"&gt;isoppp&lt;/a&gt; for implementing this feature 😄&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="http://gridsome.org/docs/environment-variables" rel="noopener noreferrer"&gt;Environment Variables&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  New Plugin library
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://dev.to/plugins"&gt;Plugins&lt;/a&gt; page now gets plugins from NPM directory. Any plugin with keyword &lt;code&gt;gridsome-plugin&lt;/code&gt; will be listed here. You can also use the search field for filtering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgridsome.org%2Fassets%2Fstatic%2Fplugins.cbab2cf.e38d753.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgridsome.org%2Fassets%2Fstatic%2Fplugins.cbab2cf.e38d753.png" alt="Plugin page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other features and fixes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Updated to &lt;a href="https://medium.com/the-vue-point/vue-2-6-released-66aa6c8e785e" rel="noopener noreferrer"&gt;Vue 2.6&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Create references in any node field. &lt;a href="http://gridsome.org/docs/data-store-api#storecreatereferencetypename-id" rel="noopener noreferrer"&gt;Read more&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Hook for configuring the development server. &lt;a href="http://gridsome.org/docs/server-api#apiconfigureserverfn" rel="noopener noreferrer"&gt;Read more&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Customize default &lt;code&gt;index.html&lt;/code&gt; template (by &lt;a href="https://github.com/K3TH3R" rel="noopener noreferrer"&gt;K3TH3R&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Add custom CSS loader options (by &lt;a href="https://github.com/maoberlehner" rel="noopener noreferrer"&gt;maoberlehner&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Breaking changes 😅
&lt;/h2&gt;

&lt;p&gt;There are no breaking API changes, but some changes might have consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;External image URLs has previously been converted to objects. Which required you to get the actual URL in a &lt;code&gt;imageField.src&lt;/code&gt; property. But those fields are no longer converted to objects.&lt;/li&gt;
&lt;li&gt;Filepaths in front matter or markdown must start with &lt;code&gt;./&lt;/code&gt; or &lt;code&gt;../&lt;/code&gt; to be resolved and processed. Which means &lt;code&gt;image.png&lt;/code&gt; will not be processed, but &lt;code&gt;./image.png&lt;/code&gt; will be.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download and process external images.&lt;/li&gt;
&lt;li&gt;Page transitions.&lt;/li&gt;
&lt;li&gt;Smoother image loading for &lt;code&gt;&amp;lt;g-image&amp;gt;&lt;/code&gt; (Fade in).&lt;/li&gt;
&lt;li&gt;GraphQL schema stitching.&lt;/li&gt;
&lt;li&gt;Full PWA support.&lt;/li&gt;
&lt;li&gt;Performance optimizations.&lt;/li&gt;
&lt;li&gt;Move the &lt;a href="https://gridsome.org" rel="noopener noreferrer"&gt;gridsome.org&lt;/a&gt; repository into core repository for easier contribution.&lt;/li&gt;
&lt;li&gt;Create a starter gallery where anyone can submit a starter.&lt;/li&gt;
&lt;li&gt;Docs docs docs!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for all contributions to documentation, features, bugfixes and plugins so far!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mouafa" rel="noopener noreferrer"&gt;mouafa&lt;/a&gt;, &lt;a href="https://github.com/ekoeryanto" rel="noopener noreferrer"&gt;ekoeryanto&lt;/a&gt;, &lt;a href="https://github.com/stefanoverna" rel="noopener noreferrer"&gt;stefanoverna&lt;/a&gt;, &lt;a href="https://github.com/jankal" rel="noopener noreferrer"&gt;jankal&lt;/a&gt;, &lt;a href="https://github.com/valentinvieriu" rel="noopener noreferrer"&gt;valentinvieriu&lt;/a&gt;, &lt;a href="https://github.com/andrewhl" rel="noopener noreferrer"&gt;andrewhl&lt;/a&gt;, &lt;a href="https://github.com/0aveRyan" rel="noopener noreferrer"&gt;0aveRyan&lt;/a&gt;, &lt;a href="https://github.com/hagata" rel="noopener noreferrer"&gt;hagata&lt;/a&gt;, &lt;a href="https://github.com/ameistad" rel="noopener noreferrer"&gt;ameistad&lt;/a&gt;, &lt;a href="https://github.com/physcocode" rel="noopener noreferrer"&gt;physcocode&lt;/a&gt;, &lt;a href="https://github.com/Devportobello" rel="noopener noreferrer"&gt;Devportobello&lt;/a&gt;, &lt;a href="https://github.com/boedlen" rel="noopener noreferrer"&gt;boedlen&lt;/a&gt;, &lt;a href="https://github.com/tyankatsu0105" rel="noopener noreferrer"&gt;tyankatsu0105&lt;/a&gt;, &lt;a href="https://github.com/thien-hoang" rel="noopener noreferrer"&gt;thien-hoang&lt;/a&gt;, &lt;a href="https://github.com/EldoranDev" rel="noopener noreferrer"&gt;EldoranDev&lt;/a&gt;, &lt;a href="https://github.com/matt-e-king" rel="noopener noreferrer"&gt;matt-e-king&lt;/a&gt;, &lt;a href="https://github.com/mottox2" rel="noopener noreferrer"&gt;mottox2&lt;/a&gt;, &lt;a href="https://github.com/crsten" rel="noopener noreferrer"&gt;crsten&lt;/a&gt;, &lt;a href="https://github.com/erquhart" rel="noopener noreferrer"&gt;erquhart&lt;/a&gt;, &lt;a href="https://github.com/alexjoverm" rel="noopener noreferrer"&gt;alexjoverm&lt;/a&gt;, &lt;a href="https://github.com/simonswiss" rel="noopener noreferrer"&gt;simonswiss&lt;/a&gt;, &lt;a href="https://github.com/JimmyAppelt" rel="noopener noreferrer"&gt;JimmyAppelt&lt;/a&gt;, &lt;a href="https://github.com/HTMLbyJoe" rel="noopener noreferrer"&gt;HTMLbyJoe&lt;/a&gt;, &lt;a href="https://github.com/seahken" rel="noopener noreferrer"&gt;seahken&lt;/a&gt;, &lt;a href="https://github.com/stursby" rel="noopener noreferrer"&gt;stursby&lt;/a&gt;, &lt;a href="https://github.com/kimihito" rel="noopener noreferrer"&gt;kimihito&lt;/a&gt;, &lt;a href="https://github.com/davidleininger" rel="noopener noreferrer"&gt;davidleininger&lt;/a&gt;, &lt;a href="https://github.com/newbornfrontender" rel="noopener noreferrer"&gt;newbornfrontender&lt;/a&gt;, &lt;a href="https://github.com/gangsthub" rel="noopener noreferrer"&gt;gangsthub&lt;/a&gt;, &lt;a href="https://github.com/maikelvl" rel="noopener noreferrer"&gt;maikelvl&lt;/a&gt;, &lt;a href="https://github.com/NTpspE" rel="noopener noreferrer"&gt;NTpspE&lt;/a&gt;, &lt;a href="https://github.com/robaxelsen" rel="noopener noreferrer"&gt;robaxelsen&lt;/a&gt;, &lt;a href="https://github.com/Truemedia" rel="noopener noreferrer"&gt;Truemedia&lt;/a&gt;, &lt;a href="https://github.com/wonder95" rel="noopener noreferrer"&gt;wonder95&lt;/a&gt;, &lt;a href="https://github.com/Stegosource" rel="noopener noreferrer"&gt;Stegosource&lt;/a&gt;, &lt;a href="https://github.com/ovsw" rel="noopener noreferrer"&gt;ovsw&lt;/a&gt;, &lt;a href="https://github.com/erwin16" rel="noopener noreferrer"&gt;erwin16&lt;/a&gt;, &lt;a href="https://github.com/itsnwa" rel="noopener noreferrer"&gt;itsnwa&lt;/a&gt;, &lt;a href="https://github.com/luklus" rel="noopener noreferrer"&gt;luklus&lt;/a&gt;, &lt;a href="https://github.com/FistMeNaruto" rel="noopener noreferrer"&gt;FistMeNaruto&lt;/a&gt;, &lt;a href="https://github.com/eostrom" rel="noopener noreferrer"&gt;eostrom&lt;/a&gt;, &lt;a href="https://github.com/tonyspiro" rel="noopener noreferrer"&gt;tonyspiro&lt;/a&gt;, &lt;a href="https://github.com/Qoyyuum" rel="noopener noreferrer"&gt;Qoyyuum&lt;/a&gt;, &lt;a href="https://github.com/tanc" rel="noopener noreferrer"&gt;tanc&lt;/a&gt;, &lt;a href="https://github.com/dapd007" rel="noopener noreferrer"&gt;dapd007&lt;/a&gt;, &lt;a href="https://github.com/samuelgoddard" rel="noopener noreferrer"&gt;samuelgoddard&lt;/a&gt;, &lt;a href="https://github.com/Splode" rel="noopener noreferrer"&gt;Splode&lt;/a&gt;, &lt;a href="https://github.com/SteveEdson" rel="noopener noreferrer"&gt;SteveEdson&lt;/a&gt;, &lt;a href="https://github.com/YogliB" rel="noopener noreferrer"&gt;YogliB&lt;/a&gt;, &lt;a href="https://github.com/mittalyashu" rel="noopener noreferrer"&gt;mittalyashu&lt;/a&gt; and &lt;a href="https://github.com/sanscheese" rel="noopener noreferrer"&gt;sanscheese&lt;/a&gt; 💪&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://github.com/gridsome/gridsome/blob/master/gridsome/CHANGELOG.md" rel="noopener noreferrer"&gt;change log&lt;/a&gt; for all new features and bugfixes.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>jamstack</category>
      <category>staticsitegenerator</category>
    </item>
  </channel>
</rss>
