うちのサイトの中で1番更新を楽にするための色々が施されてるのが写真サイトである。ということで何をしてるのかをご紹介~~。
構成など
フレームワークはastro。単純に『いつもの』でもあるが、『静的サイトを作るならこれが最適解』だと思っているのもある。他のフレームワークでも静的サイトは作れるが、やや多機能すぎるという印象。
写真は全部Githubに直置き。いつか容量足りなくなりそうだが、足りなくなるほど更新を続けられたらその頃にはまた違う策がとれるようになってると思う。
デプロイ先はCloudflare Pages。これは単純にドメインがCloudflareにあるので。ドメイン更新の時期が近いが値段はあまり変わってなかった。ありがたや。
ページ内容
下記のようになっている。
photo/src/pages/photo/2024/10/22/index.astro at main · thetalemon/photo · GitHub
ぱっと見でわかる通り丁寧にひとつひとつやったらめっちゃめんどいやつである。
もちろん丁寧に1行1行書いてはいない。AIに生成させてもいない。ある程度自動化しているだけである。写真のピックアップと実際に記事レイアウトは人がやっているが、importや写真をhtmlにベタベタするのはScriptを書いている。
自動化していること
実は同じリポジトリに自動化スクリプトが置いてある。これでだいぶ楽している。
photo/script at main · thetalemon/photo · GitHub
rename.py - 名前変更
これはiCloudが謎なのだが、iCloudからダウンロードすると『JPG』というファイル名で吐き出してくることがある。XXX.jpgではなく『JPG』である。まあiCloudが微妙に不親切なのはいつものことなので良い。
なのでexif情報を見て撮影日順に並べてから採番している。採番する理由は大抵時系列で公開したいことが多いので、後の工程で写真が時系列に並ぶようにするため。
output.py - importとかHTMLタグとかを吐き出す
ここでimportやhtmlをファイル数分吐き出すようにしている。これをコピペするだけで、ページに写真が並ぶ!ってことである。
なので写真の大きさの調整とか、コメントとか、そういうのが要らなければこれだけでページが完成する。絶望的にやる気が出ないけど写真を公開したい日がきたらそうする日もあるかもしれない。ないと思うが。
resize.py - 画像をリサイズする
これは後で追加したのだが、そのままの画像サイズだとGithubにあげる時にめっちゃ重い。というか普通にそんなデカいサイズ要らないので、両方の辺が1200px以上の画像は半分以下に縮小している。写真も全画面表示してないからね。
自動化していないこと
写真を選ぶのと、自動化の後に写真の順番を並べたりコメントをいれたりとかは人間がやっている。そこは自動化できないのもあるし、『私がやりたい』作業なので残している。
つまり自動化っていうのはやりたくない単純作業をラクにする技術だと思うんですよ。ちなみに私はPythonは遠く昔にやっただけで現在はやっておらず専門外。今回の自動化ScriptはAIに『こういうことやるコードをPythonで書いてくれ』と頼んで出てきたものを私が調整しただけで、8割はAIが書いてます。そう、AIによって自動化スクリプトを書く難易度はぐっと下がっているのである。
ってことで皆さまも個人サイトなり何なりをぜひ自動化してみてくださいませ!
あざらしいっぴき Advent Calendar 2024 - Adventar 10日目の記事でした。おわり