タグがないからで、プロジェクト直下/gridsome.config.js
ファイルにsiteDescription
を追加することで 100点です。サイトのタイトルはsiteName
なので、あわせて適切な名前と説明を設定します。(以下、設定項目の全文を抜粋)
1 | module.exports = { |
デフォルト値を入れていおくプルリクを出しましたが、本質的ではないのでマージされるのは難しいかな。。。
続いて@zefman/gridsome-source-instagram
を導入します。
プロジェクトのディレクトリで下記コマンドを実行します。
1 | yarn add -D @zefman/gridsome-source-instagram |
/gridsome.config.js
ファイルにプラグインの設定をします。(以下、設定項目の全文を抜粋)
username
は、取得したいインスタグラムのユーザー名です。(現在のところタグは対応していないのでユーザー名が必要で、今回は公式のinstagram
さんにしました)typeName
は、GraphQL のクエリーで、このプラグインと設定を示すのに使う文字列です。1 | module.exports = { |
この状態でyarn develop
でローカルサーバーを再起動します。
起動したらhttp://localhost:8080/___explore
へアクセスします。
GraphQL の Playground が表示されるので、左側のクエリーエディターに以下を入力して画面中央の [▷ (再生)] ボタンをクリックします。
photos: allInstagramPhoto
は、Plugin で指定したtypeName
の文字列allInstagramPhoto
にphotos
の名前で使うという指定です。id
とdisplay_url
が Instagram から取得した ID と、画像の URL です。text
は、Instagram のコメント(一番最初のだけ)です。1 | query { |
右にある [DOCS] や [SCHEMA] タブを確認しながら欲しいデータが取得できるクエリーを作っていきます。(たとえばshortcode
はhttps://www.instagram.com/p/[shortcode の値]
でページを表示するための文字列が返ります。)
/src/pages
ディレクトリにページ用のファイルを作ります。URL に対応するアッパーキャメルケース(パスカルケース)の文字列でファイル名 +.vue
を作ります。
今回はInstagramPhotos.vue
としました。URL としては slug 化されて/instagram-photos
となります(Pages - Gridsome)。
ここからはローカルサーバーを立ち上げておきhttp://localhost:8080/instagram-photos
へアクセスした状態で作業を進めます。ホットリロードでブラウザが自動更新するので確認が容易です。
コードは下記で、基本的に Vue.js です。<page-query>
タグが Gridsome 特有の GraphQL のクエリーを書くための場所になります。
また画像も Gridsome 特有の<g-image>
タグで、これにより最適化されます(Images - Gridsome)。
1 | <template> |
ページが作れたら、そのページへアクセスするためのリンクを作ります。(以下、テンプレート部分のみ抜粋)
[Home] と [About] のリンクがあるのは/src/layouts/Default.vue
です。
サイト内のページ遷移は Gridsome 特有の<g-link>
タグを使います。これによりプリフェッチが効いてページ遷移を高速化できます(Linking - Gridsome)。
1 | <template> |
GitHub Pages にホスティングもしました。動作している状態を確認する場合は、こちらへアクセスしてください。
(公開サイトは1つのため記事公開に合わせて変わり、本記事の内容とは異なることがあります)
また、今回作成した部分までのソースを GitHub へアップしました。
当日の発表資料と、サマリーの記事はこちらです。
もしよかったら、ご参照ください。
『Gridsome で作る JAMstack な サーバーレス Web Front』の発表資料はこちらになります。(下記、スライド埋め込み)
また発表のサマリー記事は、こちらになります。
Gridsome アプリの実装例になります。
GraphQL で簡単にデータソースの内容にアクセスできるのを感じていただけたでしょうか。このように Gridsome は Source 系 Plugin を使うことでさまざまなデータソースに容易にアクセスすることができ、GraphQL として画一的に扱うことができます。いろいろなデータソースを扱っておもしろいサイトが作れそうです。