過去記事のテキストを一部修正する作業

画面外字幕のスクリプト名を変更(2021〜2023年分)

今年(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)

一通りチェックしたところ、きれいになったと判断して良さそうです。


Python 

関連記事