May 12, 2017
ここ最近、CSSを殺した世界で生きています。 長大なサイドバーやら記事リストが本文の前に表れ、スクロールバーの80%以上を占める、そんな世界です。
そんな世界に身を置いてきたせいか、記事一覧やらなんやらが全て滑稽な物に思えてくるようになりました。 もはや、そんな滑稽な物をgenerateするために構築した、CI環境やらなんやらも、全てゴミにしか見えません。
という訳で、全てを捨てました。これぞ断捨離。
手元に残ったのはmarkdownで記述してきた記事。 HTMLに変換するのも手間なので、そのまま公開するようにしました。 markdownは「書きやすくて読みやすいプレーンテキスト」なんでね、問題無い。
デプロイの方法も単純で自由、gitやらレポジトリやらに縛られる事も無い。 これが桃源郷なんですね……
ApacheにはDirectory Listingの機能があり、ファイルを最終更新日でソートできたりもする。 この時点で、下手なCMSが吐き出す記事一覧よりも便利で最高。 さらに、ヘッダ(HeaderName directive)やフッタ(ReadmeName directive)も設定できる。 皆魅力に気づけ。
これまでの記事を再アップロードする際に、最終更新日が異常になってしまうという問題があるという方も居るかもしれません。 これは、markdownファイルに記載されている(hugoに強制されていた)お陰で、スクリプトで問題解決で最の高です。
#!/bin/sh
set -ue
umask 0027
export PATH='/bin:/usr/bin'
# deps: gnu coreutils, ftp, wget
FTP_HOST=example.sakura.ne.jp
FTP_USER=example
FTP_PASS=example
DOMAIN=kamikakushi.net
printf -- '--- %s ---\nHOST: %s\nUSER: %s\nPASS: %s\n\n' \
"${DOMAIN}" "${FTP_HOST}" "${FTP_USER}" "${FTP_PASS}"
phpscript=$(mktemp XXXXXXXX.php)
readonly phpscript
trap "rm -f ${phpscript}" EXIT INT TRAP TERM
prepare_touching () {
printf 'if (file_exists("%s")) { touch("%s", %d, %d); }' \
"$1" "$1" "$2" "$2" >> "${phpscript}"
}
printf '<?php\n' >> "${phpscript}"
for f in $(find -type f -name '*.md'); do
raw_date=$(fgrep 'date:' "${f}" | cut -d: -f2- | tr -d ' ')
[ -z "${raw_date}" ] && continue
datetime=$(date --date "${raw_date}" --utc +%s)
parent_dir=$(find -type d -name $(basename ${f%.md}))
if [ -z "${parent_dir}" ]; then
prepare_touching "${f}" ${datetime}
else
prepare_touching "${parent_dir}" ${datetime}
for f in $(find "${parent_dir}" -type f); do
prepare_touching "${f}" ${datetime}
done
fi
done
ftp -nvp ${FTP_HOST} <<- _EOF
user ${FTP_USER} ${FTP_PASS}
cd /home/${FTP_USER}/www/${DOMAIN}/
ascii
put ${phpscript}
chmod 755 ${phpscript}
bye
_EOF
wget -q -O - "http://${DOMAIN}/${phpscript}" || true
ftp -nvp ${FTP_HOST} <<- _EOF
user ${FTP_USER} ${FTP_PASS}
cd /home/${FTP_USER}/www/${DOMAIN}/
delete ${phpscript}
bye
_EOF
さくらのレンタルサーバの最安プランでは、FTPのMDTMすら対応していないようなので、phpスクリプトを力技で生成してアレをコレしてハッピーとなります。
このリニューアルで、見た目は古いわ、画面はアニメーションしないわと、UX最悪のサイトになりました。
ですが、このページを見て、ファンが唸りだす事はありません。 スクロールが不自然な位置で止まる事も無いですし、画面の黒い部分には必ず情報が記されています。
また、ツールチェインの情報を追いかけたり、サイトのデプロイが成功したかどうかを気にかける必要も無くなりました。
このサイトは文章を書き捨てするための場所でしかないので、必要十分だと私は思います。
諸事情あって混沌の時代に逆戻りしました。 若気の至り……