DEV Community

Shootacean
Shootacean

Posted on • Edited on • Originally published at shootacean.com

3 2

英文をブログURLに適した形式に変換するPythonスクリプト

Image from Gyazo

Python script to convert English text to a format suitable for blog URLs

こんにちは。shootaceanです。

ブログ記事を書いた後にはURLを決める必要がありますが、
その際に活用できるPythonスクリプトを紹介します。

Pythonを実行する環境さえあればコピペだけで真似できるので、ぜひ試してみてください。

以下のPythonコードを main.py というファイル名で保存します。

import sys

def convert(title: str) -> str:
    """英文を記事URLの形式に変換する"""

    newTitle = title.lower()
    newTitle = newTitle.replace("/", "-", -1)
    newTitle = newTitle.replace(" ", "-", -1)
    newTitle = newTitle.replace("'", "", -1)
    # 他に変換したい文字がある場合は、ここに追記していく
    # newTitle = newTitle.replace("変換前の文字", "変換後の文字", -1)

    return newTitle

if __name__ == "__main__":

    # コマンドライン引数を受け取る ( sys.argv[0]はプログラム名なので使用しない )
    if (len(sys.argv) == 2):
        # 引数が1つの場合は、そのまま使用する
        title = sys.argv[1]
    else:
        # 引数が2つ以上の場合は、文字列として連結する
        title = " ".join(sys.argv[1:])

    print(convert(title))
Enter fullscreen mode Exit fullscreen mode

以下のコマンドで実行できます。
実行すると変換後の文字が表示されるので、それを記事URLとして使います。

$ python3 main.py "Your Blog's Title"
your-blogs-title

$ python3 main.py Your Blog\'s Title
your-blogs-title
Enter fullscreen mode Exit fullscreen mode

以上これだけです。

ブログ記事のURLを決める

という作業は今後頻繁に行っていく作業なため、早い段階で自動化した方が時間の節約になります。

プログラムとしては単純なものなので、活用していただければ嬉しいです。

この記事で試してみた例

英文をブログURLに適した形式に変換するPythonスクリプト

というブログタイトルを翻訳ツールで翻訳すると、

Python script to convert English text to a format suitable for blog URLs

となりました。
その英文をPythonスクリプトで変換してみると

$ python3 blog_title.py Python script to convert English text to a format suitable for blog URLs
python-script-to-convert-english-text-to-a-format-suitable-for-blog-urls
Enter fullscreen mode Exit fullscreen mode

という感じで変換され、

python-script-to-convert-english-text-to-a-format-suitable-for-blog-urls

という記事URLとして利用できる形式になります。

変換する文字を追加したい場合

上記のPythonコード内の

他に変換したい文字がある場合は、ここに追記していく

と記載されている行へ以下のように追記していきます。

# 他に変換したい文字がある場合は、ここに追記していく
# newTitle = newTitle.replace("変換前の文字", "変換後の文字", -1)
# ダブルクォートを削除する
newTitle = newTitle.replace("\"", "", -1)
Enter fullscreen mode Exit fullscreen mode

参考

Top comments (1)

Collapse
 
aungsoemoe profile image
Aung SoeMoe

参考させて頂きます。ありがとう!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up