Notionにすべてをまとめたくてastro-notion-blogを始めたものの、運用にあたってぶつかった壁を逐一メモしておく。
筆者のwebサイト運用スキルレベルは
- HTMLとCSSチョトカケル
- WordPressのカスタマイズチョトデキル
- アクセス解析ヤッタコトアル
くらいのものであることをご承知おき願いたい。
サイトマップを置きたい
参考URL
ほぼこのページの手順通りでできた。
ポイント
- generate-sitemap.tsは/src/lib/配下に
- sitemap.xml.tsは/src/pages/配下に
自分のURLを書き込むのを忘れずに。
よく見りゃちゃんと書いてある。ちゃんと読もう(自戒)
サイトマップがサーチコンソールでエラーを吐く
サイトマップ(sitemap.xml)は問題なく吐かれてるけど、いざGoogle Search Consoleに登録してみたら自分の独自ドメインと違うURL吐いててエラーと言われる時。
要するに、サイトマップ生成時にURLがカスタムドメインになってなかったというだけの話だった。
src/server-constants.tsの中にカスタムドメインを入れる欄がちゃんとある。
自分のドメインを入れて解決。ちゃんと読もう(自戒)
データベースを使い回しつつ、特定のカテゴリの記事だけを別サイトとして分離したい
雑多な記事のデータベースは据え置きにしつつ、そこから一部の記事だけを抽出した別サイトをつくりたくなった。
今ここ(ゴモクマ書跡)は手術の体験談からゲームの感想までノンカテゴリーだが、この中から感想の記事だけを取り出して本棚のように並べたくなったのだ。
やってみたら意外と難しくなかった。
- 自分のastro-notion-blogのリポジトリをもうひとつ作る。
この時、設定するNotionAPIキーやデータベースIDは今までと同じものを使う - lib>notion>client.tsファイル内の72行目あたりに以下のようなフィルターの記述があるので、好きな条件を付け加える。
条件の書き方は自分もよくわからないので調べよう。
const params: requestParams.QueryDatabase = {
database_id: DATABASE_ID,
filter: {
and: [
{
property: 'Published',
checkbox: {
equals: true,
},
},
{
property: 'Date',
date: {
on_or_before: new Date().toISOString(),
},
},
],
},
自分はとりあえず、元のデータベースに新しいチェックボックスのプロパティ(英字で指定する。とりあえずExampleとした)をつくり、Publishedの形式を真似て足したらうまくいった。
const params: requestParams.QueryDatabase = {
database_id: DATABASE_ID,
filter: {
and: [
{
property: 'Published',
checkbox: {
equals: true,
},
},
{
property: 'Date',
date: {
on_or_before: new Date().toISOString(),
},
},
{
property: 'Example',
checkbox: {
equals: true,
},
},
],
},
Exampleにチェックが入っている記事は、元サイトにも、新しいサイトにも表示されるという寸法だ。
更新する時は、今まで通りNotionのページをつくればいい。
運用とカスタマイズでつまずいたら随時更新。