ブログとか
ブログとか
2025-06-09
気まぐれにテーマを変更してみたら、どれも横幅が狭くて、PCで見ると見づらいことに気づいた。
それで、色々変更したりCSSをいじったりしてみたが、どうもしっくりこない。
というか、記事を修正してcommit&pushし、CIがGitHub Pagesを更新するという作業サイクルが遅くて、面倒だったので、ローカルビルド環境を用意した。
今まではそんなのどうでもよかったけど、まあ、AIさんに頼めばやってくるってことで、ちょっとやる気になり、サイトのリノベーションを行うことにした。
作業コストを考えるとやる気にならないことも、多少やる気になるというのは良いことかもしれない。
GitHub Actionsがページをビルドして更新するのを毎回待つのは面倒なので、claude code に DockerでJekyllのビルド環境を作らせた。
Dockerfile (Ruby のツールだったのか…)
FROM ruby:3.2-alpine
# Install dependencies
RUN apk add --no-cache \
build-base \
git \
linux-headers
# Set working directory
WORKDIR /app
# Copy Gemfile and Gemfile.lock
COPY Gemfile* ./
# Install gems
RUN bundle install
# Copy the rest of the application
COPY . .
# Expose port 4000
EXPOSE 4000
# Default command
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--port", "4000", "--livereload", "--force_polling"]
compose.yml
services:
jekyll:
build: .
ports:
- "4000:4000"
- "35729:35729"
volumes:
- bundle_cache:/usr/local/bundle
environment:
- JEKYLL_ENV=development
command: bundle exec jekyll serve --host 0.0.0.0 --port 4000 --livereload --force_polling
develop:
watch:
- action: sync
path: ./
target: /app/
ignore:
- .git/
- .github/
- .idea/
- .vscode/
- .claude/
- .envrc
- .DS_Store
- tmp/
- Dockerfile
- bin/
volumes:
bundle_cache:
docker compose watch
これで修正直後に http://localhost:4000 で画面を確認できるようになった。
普通にWEBアプリケーション開発するなら最初にやるけどな。
claude code に頼んだら、他にも docker compose
を叩くためのシェルスクリプトみたいなのを生成してた。
よくわからんが、AIの都合上あったほうが楽なのかもしれない。
Jekyllのテーマは便利だけど、とにかく横幅が狭いのと、気に入るものが無かった。
探せばあるのかもしれんが、気軽に切り替えて試せない。
カスタムCSSを使えるというのは知っていたので、AIに頼んでデザインを刷新してもらった。
「Neumorphic designで頼む」と頼んだら、サイドメニュー、目次、テーブル表示のデザインが改善された。
個人的に、ニューモーフィックデザインに詳しいわけではないけど、AIに頼めば言葉と雰囲気を知っているだけで使える。何事もそうだが、人々が時間をかけて生み出した概念にちゃんと名前がついていることがありがたい。
目次の折りたたみ時の動作は、当初カクカクしていたので、スムーズにアニメーションするように調整した。シンプルなブログツールでも、 script
タグで自由にスクリプトを使えるのは、便利やな。
ニューモーフィックデザインを適用したテーブル
ヘッダ1 | ヘッダ2 | ヘッダ3 |
---|---|---|
データ1 | データ2 | データ3 |
データ4 | データ5 | データ6 |
これは結構気に入っている。
最初、縦の区切り線が無かったので、さすがに薄い縦線を入れてくれと頼んだ。
TOC( Table of Contents )を自動生成
* toc
{:toc}
という、謎の ”おまじない” 的記述を追加することで目次が自動生成される。
kramdownの機能なのかな。
折りたたみ
TOCを自動生成すると、目次が長くなりすぎて邪魔なときもある。
デフォルトで閉じておき、必要な場合のみボタンで開きたいんだが、 details
タグで上の ”おまじない” を囲むと、TOCが生成されない。
というわけで、TOC部分を後からdetailsタグでwrapするという、キモいスクリプトを追加した。
生成したTOCには、 markdown-toc
というIDが付与されるが、detailsタグ配下にあるときだけ表示されるようにCSSで制御すれば良い。
Chromeのデベロッパーツールなどで、#markdown-toc
周辺を見てもらえると、detailsタグに囲まれていて、その前にstyleタグ、その後ろにscriptタグがあることがわかると思う。
Rougeによるシンタックスハイライトが動作するよう設定。
markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge
syntax_highlighter_opts:
css_class: 'highlight'
line_numbers: false
highlighter: rouge
ローカルビルド用にgemfileにRougeを追加したりした
gem 'rouge'
コードブロックの言語指定も、ちゃんと文法の名前を書くように見直した
既存の文章の修正はもちろん、記事の生成もAIを使っている。
そんなもん書く意味があるのかという気にもなるが、以下の点で一応意味がある気がする。
書きたいことだけを書いて、構造や体裁やレビューなどめんどいことやってくれるので、そもそも書くのが楽だから試しに書いてみている。
自分が良いと思ってる書かせ方は、こんな感じ。(別にこの通りにしてないけど)