公開日:2023-02-08
昨日は静的サイト管理する方法を教えました。
でも、編集はどう?
例えば、会社名が変わったら、一個ずつ編集は必要でしょうか?
必要はないわ!
sedコマンドですべてのページで変更出来ますよ
cd src find . -type f -name "*.html" -exec sed -i 's/クソガキ株式会社/テクニカル諏訪子開発サービス/g' {} +
上記コマンドですべてのページで「クソガキ株式会社」が「テクニカル諏訪子開発サービス」に変更されます。
でも、「クソガキ株式会社」の方が良いですので:
find . -type f -name "*.html" -exec sed -i 's/テクニカル諏訪子開発サービス/クソガキ株式会社/g' {} +
この同じsedコマンドで、すべての「\」を「<br />」に交換出来ます。
そうして、「# ほげほげ」を「<h1>ほげほげ</h1>」に交換し、「[ほげほげ](/hogehoge.html)」を「<a href="/hogehoge.html">ほげほげ</a>」に交換します。
例えば、toiawase.htmlページで:
# 問い合わせ クソガキ株式会社\ 地獄県鬼市死亡街6丁目6-6 サタンパレス666階\ 最寄り駅:JL神様線 死後駅 徒歩約5ヶ月\ エレベーターがありません。\ [トップページへ](/index.html)
sed -i 's/^# \(.*\)/<h1>\0<\/h1>/g' toiawase.html #h1タグ sed -i 's/\\/<br \/>/g' toiawase.html #brタグ sed -i 's/^\(.*\)/ \0/g' toiawase.html #4つ空白を入る sed -i 's/\[\(.*\)\](\(.*\))/<a href="\2">\1<\/a>/g' toiawase.html #リンクタグ
結果は下記ですね:
<h1>問い合わせ</h1> クソガキ株式会社<br /> 地獄県鬼市死亡街6丁目6-6 サタンパレス666階<br /> 最寄り駅:JL神様線 死後駅 徒歩約5ヶ月<br /> エレベーターがありません。<br /> <a href="/index.html">トップページへ</a>
その時から、マークダウンで書きましょう!!
mv index.{html,md} mv toiawase.{html,md}
# クソガキ株式会社へようこそ 私達のサービスはクソ物凄いだぜ!!
# 問い合わせ クソガキ株式会社\ 地獄県鬼市死亡街6丁目6-6 サタンパレス666階\ 最寄り駅:JL神様線 死後駅 徒歩約5ヶ月\ エレベーターがありません。\ [トップページへ](/index.html)
まずはCSSで新しい行列を追加して下さい:
... .active { background: #ea44fb; color: #000 !important; padding: 4px; }
catでマージした後、下記のsedコマンドを使ってこのタグを追加出来ます。
今回は凄く簡単だわ〜
sed -i "s/href=\"\/\"/href=\"\/\" class=\"active\"/g" index.html sed -i "s/href=\"\/toiawase.html\"/href=\"\/toiawase.html\" class=\"active\"/g" toiawase.html
スクリプトはこれになりました:
#!/bin/sh rm -rf www/* cp -v src/style.css www cd src for name in *.md; do newname="$(echo "$name" | sed -ne 's/md/html/gp')" cp $name $newname #mdからhtmlにコピーする # マークダウンはHTML化 sed -i 's/^# \(.*\)/<h1>\1<\/h1>/g' $newname #h1タグ sed -i 's/\\/<br \/>/g' $newname #brタグ sed -i 's/^\(.*\)/ \0/g' $newname #4つ空白を入る sed -i 's/\[\(.*\)\](\(.*\))/<a href="\2">\1<\/a>/g' $newname #リンクタグ # 合体 cat include/header.html include/menu.html $newname include/footer.html >> ../www/$newname echo "'src/$name' -> 'www/$newname'" # HTMLファイルはもう不要だ rm -rf $newname done cd ../www # 「active」タグを付く for name in *.html; do if [ $name = 'index.html' ]; then sed -i "s/href=\"\/\"/href=\"\/\" class=\"active\"/g" $name else sed -i "s/href=\"\/$name\"/href=\"\/$name\" class=\"active\"/g" $name fi done cd ..
ところで、こちらのプロジェクトのファイルは全部Gitlerにコミットしました。
以上