2019年に入ってから友人とUCSB留学ブログ を運営しており、主に友人が記事の執筆、自分はブログサイトの開発を担当しています。
そこで現在、Netlify CMS を利用して執筆と開発を分離しているのですが、CMSからアップロードした画像のサイズが変更できないという苦情を受けたのでごにょごにょして修正しました。
EditorComponentを追加する
Netlify CMSはreactで書かれているということで、最初はカスタマイズできるか自信がなかったのですが、document を確認してみると、意外にもeditorのcomponentを簡単にカスタマイズできるようになっていて素敵でした。Hugoのfront matterに合わせて適当にボタンとかインプットとか増やせるみたいですね。
早速documentに従って、/static/admin/index.html
に記述していきます。
|
|
上記のようにindex.htmlにscriptを追加すると、CMSからcustomImageという項目を選択することができるようになります。
これで終わりかと思いきや、まだ一つやることがあります。
上記のEditorComponentを使用してcustomImageを選択し画像を挿入すると、
{ {< customImage "example.jpg" 400 >} }
このようなshortcodeが実際のmarkdownファイルには記述されます。
このままではまだhugoがimageとして解釈してくれないため、custom shortcode を追加しましょう。
hugoのcustom shortcodeを追加する
hugoのプロジェクトルートにある/layout/shortcodes
にcustomImage.html
というファイルを作成し、以下のコードを保存してください。
<figure>
<img src="{{.Get 0}}" width="{{.Get 1}}" style="height:auto;"/>
</figure>
shortcodeの第一引数にimageへのパス、第二引数にwidthの数値を入れることでサイズ可変のfigureを挿入することが可能になっています。
これで、CMSからサイズの変更できるcustomImageを挿入することができるようになりました。
Netlify CMS良き
CMSを選定する際にforestly.io とも迷いましたが、もともとの機能がシンプルな分Netlify CMSのほうが拡張性があったので、選んで正解だったかなと思いました。