<?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>microCMS  |  ぼちぼちブログ</title>
	<atom:link href="https://horumont.info/tag/microcms/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.13</generator>

<image>
	<url>https://horumont.info/wp-content/uploads/2020/11/39cab8f0a1adc1a8ac2842b4a25f1e52-100x100.png</url>
	<title>microCMS  |  ぼちぼちブログ</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>
	</channel>
</rss>
