markdownで記述したファイルをhtmlに変換するプログラムを書いた(Python3)

f:id:sakage24:20170809213226j:plain

ちょっとhtmlを触らなくてはならなくなったのですが、正直しんどいというかそんな気分じゃないのです…markdownで書いてhtmlに変換してくれたら楽だなぁという根性でスクリプト書きました

退屈なことはPythonにやらせようの根性で行きましょう!!

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

前提条件

  • Python3がインストールされていること
  • Markdownモジュールがインストールされていること
>pip freeze
Markdown==2.6.8

インストールされていない場合は下記のコマンドをコマンドプロンプト上で入力すること

pip install markdown

ソースコード

sourcesフォルダに格納されている特定のファイル形式(.md, .markdown, .txt)を順番に開き、markdown形式からhtml形式に変換してdestフォルダ内に同名 + .htmlとして新規作成します(元のファイルには変更を加えません)


# md.py
import markdown
import os
import sys
md = markdown.Markdown()
source_dir = "sources"
dest_dir = "dest"
ext_list = ("md", "markdown", "txt",)
if not os.path.exists(source_dir):
os.mkdir(source_dir)
sys.exit(0)
if not os.path.exists(dest_dir):
os.mkdir(dest_dir)
file_lists = os.listdir(source_dir)
if file_lists:
for file in file_lists:
root, ext = os.path.splitext(file)
if ext[1:] in ext_list:
source = ""
with open(os.path.join(source_dir, file), "rt", encoding="utf-8") as f:
source = md.convert(f.read())
with open(os.path.join(dest_dir, root) + ".html", "wt", encoding="utf-8") as f:
f.write(source)
else:
input(source_dir + "フォルダ内にmarkdownで記述されたファイル(例:\"hoge.md\")を配置して下さい。")
sys.exit(0)

markdownモジュールなんてあったんですね。とりあえず何も考えずに書きましたがちゃんと出来ました。

実行してみる

元のファイル(sources/sample.md)

## 操作方法
移動: **↑↓←→**キー
再起動: **r**キー
## 現在の状況
**お絵描き中**
## 製作者情報
[ブログ](https://www.kiwi-bird.xyz/)
[twitter](https://twitter.com/Ops_kiwi)
**(c) 2017 kiwi-bird**
変換後のファイル(dest/sample.html)

<h5>変換後のファイル(<code>dest/sample.html</code>)</h5>
<pre class="line-numbers"><code class="language-markup">
<h2>操作方法</h2>
<p>移動: <strong>↑↓←→</strong>キー
再起動: <strong>r</strong>キー</p>
<h2>現在の状況</h2>
<p><strong>お絵描き中</strong></p>
<h2>製作者情報</h2>
<p><a href="https://www.kiwi-bird.xyz/">ブログ</a>
<a href="https://twitter.com/Ops_kiwi">twitter</a></p>
<p><strong>(c) 2017 kiwi-bird</strong></p>

終わり

退屈なことはPythonに(ry

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

コメントを残す

メールアドレスが公開されることはありません。