今年(2024年)から画面外字幕表示用のスクリプトを新しくしました。この時、スタイルも若干変更したため、2023年以前の動画字幕にも影響が出てしまいました。
放置しておいては落ち着かないので、過去記事も字幕スクリプト名を置き換え、スクリプトを一本化することにしました。以下、行った作業のメモです。
“outscreen-subtitles.js” ➔ “outscreen-subtitles-2024.js” 一括変更
過去記事の原稿ファイルを見たところ、画面外字幕をつけ始めたのは2021年からでした。
# 過去記事フォルダでgrepを実行 ➔ hoge.txtに書き出し
grep -ril outscreen-subtitles.js > hoge.txt
# hoge.txtから書き換えが必要なファイル名の一覧を作る
with open("hoge.txt", "r") as f:
oldJimak = f.readlines()
# oldJimakの要素サンプル ➔ "post/2022/01-29.md"
Year = []
for i in oldJimak:
y = i.split("post/")[1][0:4]
if not y in Year:
Year.append(y)
print(Year)
Yearの中身は[‘2022’, ‘2021’, ‘2023’]で、対象ファイルは150件ほどあります。
これらのファイルの中の4箇所を変える必要があります。
【旧】
<a href="#Japanese_translation_full_text">和訳全文へ</a>
<hr class="kugiri">
<div>
_____________________________________________________________
<track onload="onTrackLoad(1);" id="jtrack" label="和訳"
_____________________________________________________________
<div id="display-cues-1" class="display-cues">
<p id="start-point-1">* * * Start * * *<p>
</div>
_____________________________________________________________
<script src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/outscreen-subtitles.js"></script>
<hr class="kugiri">
【新】
<a href="#Japanese_translation_full_text">和訳全文へ</a>
<div style="margin-bottom: 4px">
_____________________________________________________________
<track id="jtrack" label="Japanese"
_____________________________________________________________
<div id="display-cues-1" class="display-cues" style="margin-top: -20px !important;">
</div>
_____________________________________________________________
<script src="/js/outscreen-subtitles-2024.js"></script>
<br>
対象ファイルの文字列を見てみます。
with open("post/2023/02-06.md", "r") as f:
hoge = f.read()
文字列hogeの中の次の部分を変更してファイルに上書きすればよさそうです。
old1 = '<a href="#Japanese_translation_full_text">和訳全文へ</a>\n\n<hr class="kugiri">\n<div>\n'
old2 = ' <track onload="onTrackLoad(1);" id="jtrack" label="和訳" '
old3 = '<div id="display-cues-1" class="display-cues">\n <p id="start-point-1">* * * Start * * *<p>\n</div>\n'
old4 = '<script src="/js/jquery-1.11.3.min.js"></script>\n<script src="/js/outscreen-subtitles.js"></script>\n<hr class="kugiri">\n'
new1 = '<a href="#Japanese_translation_full_text">和訳全文へ</a>\n\n<div style="margin-bottom: 4px">\n'
new2 = ' <track id="jtrack" label="Japanese" '
new3 = '<div id="display-cues-1" class="display-cues" style="margin-top: -20px !important;">\n</div>\n'
new4 = '<script src="/js/outscreen-subtitles-2024.js"></script>\n<br>\n'
hoge = hoge.replace(old1, new1)
hoge = hoge.replace(old2, new2)
hoge = hoge.replace(old3, new3)
hoge = hoge.replace(old4, new4)
with open("post/2023/02-06.md", "w") as ff:
ff.write(hoge)
一通りチェックしたところ、きれいになったと判断して良さそうです。