静的サイトジェネレーターの中でも、自分はGraphQLのデータ層を採用しているGatsbyJSを激推ししている。
しかし、GatsbyJSはビューをReactで書く必要があり既存のサイトを移植するというのが大変だった。
今日見つけたのは、GatsbyJSにインスパイアされVue.jsでビューを書けるGridsomeという静的サイトジェネレーターである。
まだバージョンは0.2.2
なので、ファーストインプレッション程度に思ってもらいたい。
複数のデータソースを元に、静的サイトを生成する図はほとんどGatsbyのそれと変わらず、Vue.jsでビューを書くことが出来る。
例えば、公式のWordPressのstarterを取り上げてみる。
@gridsome/source-wordpress
のようなソースデータを扱うパッケージをインストールしたのち、gridsome.config.js
にプラグインを利用するための記述を追加する。
module.exports = {
plugins: [
{
use: '@gridsome/source-wordpress',
options: {
baseUrl: 'YOUR_WORDPRESS_URL'
}
}
]
}
@gridsome/source-wordpressによって追加されたソースデータはGraphQLで取得出来るようになる。
vueの単一ファイルコンポーネントの中のpage-queryにデータを取得するGraphQLを書くと、template内で参照出来るようになる。という話。
<template>
<div>
<h2>Latest blog posts</h2>
<ul>
<li v-for="edge in $page.allWordPressPost.edges" :key="edge.node._id">
{{ edge.node.title }}
</li>
</ul>
</div>
</template>
<page-query>
query Blog {
allWordPressPost (limit: 5) {
edges {
node {
_id
title
}
}
}
}
</page-query>
Nuxtの静的サイトじゃダメなのか?という話があるが、Nuxtは1ページ目については静的サイト化してくれるが、2ページ目以降は、asyncDataに記述されたAPIリクエストが行われてしまうので、キレイな静的サイトではないという認識。
GridsomeはGraphQLで取得したデータを静的ファイルに保存するので、本番環境で外部のAPIへのリクエストは発生しない。静的化されたファイルはレスポンス早いし、先読みも出来る。
みやおかさんの「Firebase、Flamelink、Nuxt、Netlify、PWAを使ってJAMstackなブログを作る」が詳しい。
勢いで書いた。
ここ最近、Web技術を利用した画像生成に興味があります。本記事では、日本語における表現の一種である縦書きに焦点を当て、Web技術を使った縦書きを含む画像生成方法についての調査をまとめました。 > 現
追記(2022/12/29): 問い合わせに対応する窓口をTwitterに統一したいので、フォームページは削除しました。 当ブログは静的サイトホスティングサービスのNetlifyでホスティングされ
毎年10月に開催されるHacktoberfestに参加しました。このイベントはOSSへの貢献を行い、期間中に規定数(4つ)の貢献を行った人に特典がプレゼントされるものになっています。 自分はドキュメ