From 9d5ec5e3bc01c6174dea048e118edee579c36565 Mon Sep 17 00:00:00 2001
From: nsfisis
# 指定した URL からスタートしてリンクを辿りながら全ファイルをファイルに書き出す
-#
-# --mirror リンクを再帰的に辿ってダウンロードする
-# --page-requisites CSS や画像等も含めて HTML から参照されている全ファイルをダウンロードする
-# --convert-links リンクを相対リンクへ変換する
-# --adjust-extension URL に拡張子が無くてもいい感じに推測する
-# --no-parent 親ディレクトリは見に行かない
-# --no-wait=1 リクエスト間で 1 秒待機する
-# -P ./archive/ 指定したディレクトリに保存する
-wget \
- --mirror \
- --page-requisites \
- --convert-links \
- --adjust-extension \
- --no-parent \
- --wait=1 \
- -P ./archive/ \
- https://t.nil.ninja/phperkaigi/2024/golf/
-
-# ディレクトリ構造を調整する
-mv ./archive/t.nil.ninja/phperkaigi/2024/golf/* ./archive
-rmdir ./archive/t.nil.ninja/phperkaigi/2024/golf/
-rmdir ./archive/t.nil.ninja/phperkaigi/2024/
-rmdir ./archive/t.nil.ninja/phperkaigi/
-rmdir ./archive/t.nil.ninja/
-
-mkdir -p ./archive/api/quizzes/{1,2,3}
-
-# 動的な API エンドポイントを叩いて結果を JSON ファイルとして保存する
-wget -O ./archive/api/quizzes/1/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/1/chart
-wget -O ./archive/api/quizzes/2/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/2/chart
-wget -O ./archive/api/quizzes/3/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/3/chart
-
-# 上記 API を叩いている箇所を、落としてきた静的ファイルを参照するように変更する
-sed -i -e 's#/chart`#/chart.json`#' ./archive/assets/chart.js
-
+ # 指定した URL からスタートしてリンクを辿りながら全ファイルをファイルに書き出す
+#
+# --mirror リンクを再帰的に辿ってダウンロードする
+# --page-requisites CSS や画像等も含めて HTML から参照されている全ファイルをダウンロードする
+# --convert-links リンクを相対リンクへ変換する
+# --adjust-extension URL に拡張子が無くてもいい感じに推測する
+# --no-parent 親ディレクトリは見に行かない
+# --no-wait=1 リクエスト間で 1 秒待機する
+# -P ./archive/ 指定したディレクトリに保存する
+wget \
+ --mirror \
+ --page-requisites \
+ --convert-links \
+ --adjust-extension \
+ --no-parent \
+ --wait=1 \
+ -P ./archive/ \
+ https://t.nil.ninja/phperkaigi/2024/golf/
+
+# ディレクトリ構造を調整する
+mv ./archive/t.nil.ninja/phperkaigi/2024/golf/* ./archive
+rmdir ./archive/t.nil.ninja/phperkaigi/2024/golf/
+rmdir ./archive/t.nil.ninja/phperkaigi/2024/
+rmdir ./archive/t.nil.ninja/phperkaigi/
+rmdir ./archive/t.nil.ninja/
+
+mkdir -p ./archive/api/quizzes/{1,2,3}
+
+# 動的な API エンドポイントを叩いて結果を JSON ファイルとして保存する
+wget -O ./archive/api/quizzes/1/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/1/chart
+wget -O ./archive/api/quizzes/2/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/2/chart
+wget -O ./archive/api/quizzes/3/chart.json https://t.nil.ninja/phperkaigi/2024/golf/api/quizzes/3/chart
+
+# 上記 API を叩いている箇所を、落としてきた静的ファイルを参照するように変更する
+sed -i -e 's#/chart`#/chart.json`#' ./archive/assets/chart.js
このように wget に適切なオプションを渡すことで、指定したページから遷移可能なページを再帰的に辿っていき、サイト内の全ページをファイルへ落とすことができる。今回のサイトにはページ遷移では辿り着けないページがあったが (管理画面など)、運用が停止している今そういったページはアーカイブしなくてもよい。 @@ -145,17 +144,16 @@ wget -O ./archive/api/quizzes/3/chart.json h あとはこのファイルを適当にサーブしてやればよい。
server {
- listen 80 default;
- listen [::]:80;
-
- charset UTF-8;
-
- location /phperkaigi/2024/golf/ {
- alias /archive/;
- }
-}
-
+ server {
+ listen 80 default;
+ listen [::]:80;
+
+ charset UTF-8;
+
+ location /phperkaigi/2024/golf/ {
+ alias /archive/;
+ }
+}