<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GatsbyJS  |  ぼちぼちブログ</title>
	<atom:link href="https://horumont.info/tag/gatsbyjs/feed/" rel="self" type="application/rss+xml" />
	<link>https://horumont.info</link>
	<description>教育／労働組合／プログラミング</description>
	<lastBuildDate>Sat, 05 Jun 2021 22:56:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.8</generator>

<image>
	<url>https://horumont.info/wp-content/uploads/2020/11/39cab8f0a1adc1a8ac2842b4a25f1e52-100x100.png</url>
	<title>GatsbyJS  |  ぼちぼちブログ</title>
	<link>https://horumont.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Gatsby-microCMSでブログサイトを構築してConnpass勉強会をしたので振り返り</title>
		<link>https://horumont.info/programming/make-blog-gatsby-microcms/</link>
					<comments>https://horumont.info/programming/make-blog-gatsby-microcms/#respond</comments>
		
		<dc:creator><![CDATA[ほるもんT]]></dc:creator>
		<pubDate>Sat, 05 Jun 2021 22:56:13 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Connpass勉強会]]></category>
		<category><![CDATA[GatsbyJS]]></category>
		<category><![CDATA[microCMS]]></category>
		<guid isPermaLink="false">https://horumont.info/?p=489</guid>

					<description><![CDATA[目次 Over40WebClub　Connpass勉強会何かを世に出すということの大変さGatsbyのサイト構築について前よりも深く理解 Over40WebClub　Connpass勉強会 ４回目の勉強会を終えました。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Over40WebClub　Connpass勉強会</a></li><li><a href="#toc2" tabindex="0">何かを世に出すということの大変さ</a></li><li><a href="#toc3" tabindex="0">Gatsbyのサイト構築について前よりも深く理解</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">Over40WebClub　Connpass勉強会</span></h2>
<p>４回目の勉強会を終えました。<br />
今回のテーマは次です。</p>
<p><a class="wp-editor-md-post-content-link" href="http://https://over40webclub.connpass.com/event/212129/" title="ヘッドレスCMSで爆速ブログ構築">ヘッドレスCMSで爆速ブログ構築</a></p>
<p>今回は、microCMSというヘッドレスCMSをデータベースにして、Gatsbyでブログサイトを構築しました。勉強会では、あらかじめ、そんが作成したサイトをGatsbyのスターターにして、ブログサイトを構築する様子を見てもらいました。</p>
<p><a class="wp-editor-md-post-content-link" href="http://https://github.com/sonho463/starter-microcms" title="スターターはこちら　＞＞＞">スターターはこちら　＞＞＞</a></p>
<p>しかし、今回、最後GitHubへのプッシュのときにトラブルが発生し、結局、そこを解決できずデプロイまでのようすを見てもらうことができませんでした😣</p>
<p>振り返りも兼ねて、このブログで上記ブログサイトを作る過程を記事にしていこうと思います。</p>
<p>まずは、今回の勉強会でぼくが学んだことについてここに記しておこうと思います。</p>
<h2><span id="toc2">何かを世に出すということの大変さ</span></h2>
<p>今回は作成したブログサイトをGatsyのスターターとしてお知らせするというつもりだったので、細かいところまでしっかり作り込まないといかん！と思っていました。<br />
そう思うと、今まで自分がプログラミングしたり、サイト構築するときに、いかにアバウトな感じでやっていたのかを思い知らされました。</p>
<ul>
<li>見やすいコードの書き方</li>
<li>コメントをどう入れるか</li>
<li>READMEファイルに各説明</li>
</ul>
<p>サイトの機能面でも、作り込めば作り込むほど、もうちょっとこうしたほうがいいかも、とか思って、次々と改善点が見えてきました。どこかで、切らないとおわらない感じ。ちゃんとだれが使うのかをイメージして、取捨選択が必要になるのかなと思いました。<br />
今後も少しずつ改善していきたいです。</p>
<h2><span id="toc3">Gatsbyのサイト構築について前よりも深く理解</span></h2>
<p>GatsbyはReactベースのフレームワークですので、実は、個々でやっていることのウラで、React、JavaScriptがいろいろとよしなにやってくれているのですが、それでも、難しくて、なんでこうすればこうなるのかということが理解できないことも多かったです。<br />
しかし、今回、一からブログサイトを調べながら作ってみて、いろいろなことを理解できました。</p>
<ul>
<li>Gatsbyが各記事ページを生成するCreatePageというAPIのこと</li>
<li>GraphQLからデータをとるときに、Nullだといろいろ大変で、その対応の仕方</li>
</ul>
<p>などなど。<br />
このあたりはこれから、切り分けつつ記事にアウトプットしていこうと思います。と、同時に、ベースになってるReactやJavaScriptについてももっと勉強したいなあと思いました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://horumont.info/programming/make-blog-gatsby-microcms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gatsby microCMSのブログ　Imgixで画像の処理をする</title>
		<link>https://horumont.info/programming/microcms-gatsby-imgix/</link>
					<comments>https://horumont.info/programming/microcms-gatsby-imgix/#respond</comments>
		
		<dc:creator><![CDATA[ほるもんT]]></dc:creator>
		<pubDate>Sun, 09 May 2021 00:44:10 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[GatsbyJS]]></category>
		<category><![CDATA[Imgix]]></category>
		<category><![CDATA[microCMS]]></category>
		<guid isPermaLink="false">https://horumont.info/?p=472</guid>

					<description><![CDATA[目次 こまったことmicroCMS運営さんにチャットで問い合わせImgixを使って画像を最適化Imgixではもっといろいろできます。 こまったこと microCMSでは、gatsby-plugin-imageに対応してい [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">こまったこと</a></li><li><a href="#toc2" tabindex="0">microCMS運営さんにチャットで問い合わせ</a></li><li><a href="#toc3" tabindex="0">Imgixを使って画像を最適化</a></li><li><a href="#toc4" tabindex="0">Imgixではもっといろいろできます。</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">こまったこと</span></h2>
<p>microCMSでは、gatsby-plugin-imageに対応していないため<br />
graphqlで画像データが渡ってこず、URLだけ渡ってくる仕様。<br />
どうやって画像の最適化をしようかな</p>
<h2><span id="toc2">microCMS運営さんにチャットで問い合わせ</span></h2>
<p>チャットで問い合わせをしました。</p>
<blockquote><p>
  いつもお世話になります。 GatsbyとmicroCMSでブログを作ろうとしています。 gatsby-plugin-imageで>microCMSの画像を扱いたいのですが、graphqlのデータを見ると、urlとwidthとheightしかわたってきてい>ないので、扱うことができません。 なにかやり方があるかご教示お願いしたいです
</p></blockquote>
<p>ご丁寧に対応いただき、次のことがわかりました。<br />
・ImgixというCDNを通して、APIを利用するとよい</p>
<p>あとから考えれば、ドキュメントなどをしっかり読めばわかりそうなことでした😅</p>
<h2><span id="toc3">Imgixを使って画像を最適化</span></h2>
<h3><a class="wp-editor-md-post-content-link" href="https://www.imgix.com/">Imgix</a>とは</h3>
<p>公式サイトより</p>
<blockquote><p>
  Powerful image processing, simple API<br />
  imgix transforms, optimizes, and intelligently caches your entire image library for fast websites and apps using simple and robust URL parameters.</p>
<p>  強力な画像処理、シンプルなAPI<br />
  imgixは、シンプルで堅牢なURLパラメーターを使用して、高速なWebサイトやアプリ用に画像ライブラリ全体を変換、最適化、およびインテリジェントにキャッシュします。
</p></blockquote>
<p>microCMSの画像タイプのコンテンツは基本的にこのCDNを通ってくるということなので<br />
ここのAPIでできることが基本的にできるということです。</p>
<h3>やりたいこと</h3>
<ol>
<li>レンダリングのときに、画像のサイズ、容量を節約</li>
<li>サイズの調整やトリミング</li>
</ol>
<h3>Imgixでは</h3>
<p><a class="wp-editor-md-post-content-link" href="https://docs.imgix.com/apis/rendering">Rendering API</a>を使うとできそう。</p>
<p>画像URLの最後に<code>?</code>をつけて、その後にいろいろなパラメータを付けることで、画像に対していろいろな処理ができます。<br />
例えば</p>
<pre><code class="line-numbers">https://&lt;graphqlで渡ってきた画像のurl&gt;?w=200
</code></pre>
<p>とすると、画像の幅を２００（ｐｘ？）に設定できます。<br />
その後ろに<code>&amp;</code>でつなげれば、複数のパラメータを付けることができます。</p>
<p>いろいろオートの設定もありました。<br />
例えば<br />
1. 画像の圧縮　<code>auto=compress</code><br />
基本的には７５％。<code>q=</code>で圧縮率を指定することもできます。<br />
2. フォーマット選択　<code>auto=format</code><br />
対応しているブラウザなら、自動でwebp形式に変換してくれる。<br />
3. 画像のトリミング　<code>ar=2:1&amp;fit=crop&amp;fp-y=0.5"</code><br />
アスペクト比と中心を決めてトリミングできます。切り抜いた部分以外はデータとしても削除。（残す設定もできる）</p>
<p>とりあえず、今回のプロジェクトでは、<br />
この３つを設定することにしました。</p>
<p>ブログの記事ごとのアイキャッチ画像に対して<br />
これらの加工をして、<br />
各記事ページタイトルのバックにおくことにしました。</p>
<h3>実装したコード</h3>
<ul>
<li>各記事のテンプレートファイル post-template.js</li>
</ul>
<pre><code class="language-javascript line-numbers">&lt;MicroCmsImage                                   
  url={data.microcmsPosts.eye_catch.url}                                     
  compress="auto=compress"                                   
  format="auto=format"                                   
  ar="ar=2:1&amp;fit=crop&amp;fp-y=0.5"
/&gt;                              /&gt;
</code></pre>
<ul>
<li>画像をレンダリングするコンポーネント　microcmsimage.js</li>
</ul>
<pre><code class="language-javascript line-numbers">import React from "react"
import styled from "styled-components"

export default function MicroCmsImg(props) {
  // imgタグを親要素に対して幅いっぱいに表示する
  const ImgWrapper = styled.img`
    width: 100%;
  `
  const { url } = props // 画像のURL
  // url以外のパラメータを１つの文字列型変数にセット
  let array = Object.values(props)
  let param = ""
  array.map(function (elem) {
  // propsの最初はurlなのでそれは入れない
    if (array.indexOf(elem) !== 0) {
      //最初の要素は?をつける
      if (array.indexOf(elem) == 1) {
        param = `?${elem}`
      } else {
        param = `${param}&amp;${a}`
      }
    }
  })

  return (
    &lt;&gt;
　　　// imgのsrcにurlとparamをつなげたものをセット
     &lt;ImgWrapper src={url + param} alt="" /&gt;
    &lt;/&gt;
  )
}

</code></pre>
<h2><span id="toc4">Imgixではもっといろいろできます。</span></h2>
<p>例えば、画像にフィルターをかけることもできます。<br />
モザイク加工したり、blur効果つけたり。<br />
顔認識でそこにクローズアップとか。<br />
文字入れたり、ノイズリダクションに回転。</p>
<p>gatsbyプロジェクトでは、<br />
対応していればgatsby-plugin-imageが使えますが、<br />
そうでないプロジェクトなら、<br />
これを使うのもいいかもしれません。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://horumont.info/programming/microcms-gatsby-imgix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ヘッドレスCMSで爆速ブログ構築~Gatsby-StartBootstrap-microCMS</title>
		<link>https://horumont.info/programming/study-meeting-gatsby-microcms/</link>
					<comments>https://horumont.info/programming/study-meeting-gatsby-microcms/#respond</comments>
		
		<dc:creator><![CDATA[ほるもんT]]></dc:creator>
		<pubDate>Sun, 02 May 2021 08:46:44 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[GatsbyJS]]></category>
		<category><![CDATA[JAMstack]]></category>
		<category><![CDATA[勉強会ドリブン勉強法]]></category>
		<guid isPermaLink="false">https://horumont.info/?p=463</guid>

					<description><![CDATA[というタイトルの勉強会を開きます。Over40WebClub主催です。 勉強会ドリブン勉強法の考え方でとりくんでいます。 勉強会をやると決めて、それに向けて、学習をすすめていくというものです。 今までに３回ほど講師をさせ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>というタイトルの勉強会を開きます。Over40WebClub主催です。<br />
勉強会ドリブン勉強法の考え方でとりくんでいます。<br />
勉強会をやると決めて、それに向けて、学習をすすめていくというものです。<br />
今までに３回ほど講師をさせてもらっています。<a href="https://over40webclub.connpass.com/">＞＞＞こちら</a></p>
<p>２回めを終えたときの感想もまとめました。</p>
<p class="o-noteContentText__title"><strong><a href="https://note.com/horumont/n/n506175ad0a35">勉強会ドリブン学習法</a></strong></p>
<div data-v-07d3b562="" class="o-noteContentText__status">
<div data-v-07d3b562="" class="o-noteContentText__like">たくさんたくさん助けてもらってなんとかできましたが、今回は今までよりも自分の力でやっている割合高め😁だんだん、いろいろわかるようになってきています。</div>
</div>
<div data-v-07d3b562=""></div>

  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">今回の勉強会では</a></li><li><a href="#toc2" tabindex="0">なぜ、StartBootstrap?</a></li><li><a href="#toc3" tabindex="0">たくさんのご参加おねがいいたします</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">今回の勉強会では</span></h2>
<p>わたしがずっと学習しているGatsbyでヘッドレスCMSを使ったブログを作ります。<br />
ヘッドレスCMSの中でも、唯一（なのかな？）の日本製、microCMSを使うことにしました。</p>
<p>ヘッドレスCMSサービスはいろいろあるんですが、英語が多くて・・・という人もいるのではないでしょうか。<br />
もちろん、勉強会でやった「ヘッドレスWordPress」も１つの選択肢なのですが、せっかくなら、勉強がてらつくってみようと思いたちました。</p>
<p>勉強会では私がつくったブログをスターターにして、サクッとブログを構築します。<br />
その後、Gatsbyでブログ記事が自動的にできていく仕組みやちょっとカスタマイズする方法などを<br />
解説していこうと思っています。</p>
<p>今回の勉強会は<a href="https://over40webclub.connpass.com/event/212129/">こちら</a></p>
<h2><span id="toc2">なぜ、StartBootstrap?</span></h2>
<p>使うテンプレートはStartbootstrapで配布されているClean Blogというテンプレートです。</p>
<p>これでピンと来た人がいるかも知れませんが、UdemyのWordPress開発講座（たにぐちまことさん）で使用されているテンプレートなのです。</p>
<p>私自身が、その講座をやっていて、そのときに、<br />
なるほど、こうやってHTMLサイトをWordPressに変身させられるのか・・・！！<br />
と気づいて、これをGatsbyでやってみたい！と思ったのです。</p>
<p>この講座で学んだことがとてもやくだっていますし、<br />
でも、PHPとJavaScriptはちがうなあと思いながらコードを組んでいくのが<br />
今、とても楽しいのです。</p>
<h2><span id="toc3">たくさんのご参加おねがいいたします</span></h2>
<p>今、ウェブ制作学習中でも、ブログ構築まではサクッとできるようになると思います！</p>
<p>デプロイまで無料でできます！</p>
<p>まずは、練習で体験に来てみてください！</p>
<p><a href="https://over40webclub.connpass.com/event/212129/">ヘッドレスCMSで爆速ブログ構築~Gatsby-StartBootstrap-microCMS</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://horumont.info/programming/study-meeting-gatsby-microcms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GatsbyでヘッドレスWordPress｜Netlifyへデプロイ＆Webフック設定</title>
		<link>https://horumont.info/programming/headless-wordpress-netlify-buildhooks/</link>
					<comments>https://horumont.info/programming/headless-wordpress-netlify-buildhooks/#respond</comments>
		
		<dc:creator><![CDATA[ほるもんT]]></dc:creator>
		<pubDate>Sat, 20 Feb 2021 00:10:49 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[GatsbyJS]]></category>
		<category><![CDATA[Webhooks]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://horumont.info/?p=273</guid>

					<description><![CDATA[Gatsbyの持っている強みとWordPressの持っている強みをかけ合わせてのブログ構築に挑戦中。 GatsbyCloudでのWebhook設定はとてもかんたんにできたのですが、他のホスティングサービスでもできるのか、 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Gatsbyの持っている強みとWordPressの持っている強みをかけ合わせてのブログ構築に挑戦中。</p>
<p>GatsbyCloudでのWebhook設定はとてもかんたんにできたのですが、他のホスティングサービスでもできるのか、やってみました。まだまだ初学者に毛が生えたくらいなので、本当はもっとちゃんとしたやり方があるかもしれませんが、その経過を残しておきたいと思います。</p>

  <div id="toc" class="toc tnt-number tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Webフックとは</a></li><li><a href="#toc2" tabindex="0">前提</a></li><li><a href="#toc3" tabindex="0">ウェブフック設定手順</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">Webフックとは</span></h2>
<p><a href="https://qiita.com/soarflat/items/ed970f6dc59b2ab76169">Webhookとは？  </a><a href="https://qiita.com/soarflat" class="it-Header_authorName">@soarflat</a><a href="https://qiita.com/soarflat/items/ed970f6dc59b2ab76169"></a>さんの記事より</p>
<ul>
<li>アプリケーションの更新情報を他のアプリケーションへリアルタイム提供する仕組みや概念のこと。</li>
<li>イベント（リポジトリにプッシュなど）発生時、指定したURLにPOSTリクエストする仕組みのこと。</li>
</ul>
<p>要するにここでは、WordPressの投稿が更新されたことをリアルタイムでホスティングサービスに伝えて、ビルド操作を自動で行うことを言っています。NetlifyではGithubリポジトリと連動してビルドが自動で走るようになっていますが、データベース（ここではWordPress）からの更新はGithubには直接反映されないので、自動で更新されません。</p>
<p>ヘッドレスWordPressブログにおいては、ブログ更新するだけでは、ブログが更新されません。次のいずれかの操作が必要です。</p>
<ol>
<li><code>netlify deploy --prod</code></li>
<li><code></code>なにかファイル更新をして、Githubリポジトリを更新</li>
</ol>
<p>この記事のウェブフックを設定することで、今まで通りのWordPressの更新作業だけで、本番サイトも更新されるようになるのは大きなメリットです。</p>
<h2><span id="toc2">前提</span></h2>
<ol>
<li>Gatsby-WordPressブログの公式スターターを使って、WordPressサイトと連携したブログサイトを構築</li>
<li>Netlifyにおいてデプロイしている</li>
</ol>
<h2><span id="toc3">ウェブフック設定手順</span></h2>
<p>Netlify公式の説明はこちら ー＞ <a href="https://docs.netlify.com/configure-builds/build-hooks/">Build hooks</a></p>
<ol>
<li>ウェブフックURLを取得
<ol>
<li>対象サイトの設定画面において<br />
Site settings &gt; Build &amp; deploy &gt; Continuous deployment &gt; Build hooks.</li>
<li>ビルドフック名設定<br />
なんでもOK。あとで見てなんのフックかわかる用意設定します。</li>
<li>デフォルトでビルドするブランチを設定します<br />
基本的にはmainブランチがおおいのでしょうか。チーム開発していたりすると、確認のために、featureとかdevlopブランチとか。チーム開発経験浅くてわからない😅</li>
<li>Saveボタンをクリック</li>
</ol>
</li>
<li>生成されたURLをWordPressブログのGatsbyJS設定のBuildHookに設定
<ol>
<li>WordPressブログの管理画面から<br />
設定　ー＞　GatsbyJS</li>
<li>BuildsWebhookのところに、取得したURLを貼り付ける</li>
</ol>
</li>
</ol>
<p>以上でおしまいです。<br />
記事をなにか更新して、netlifyのdeploysタブを開いておくと、勝手にビルド処理が走るのを確認できます！</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://horumont.info/programming/headless-wordpress-netlify-buildhooks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
