파이썬(python)에서 마크다운(markdown, 통상 .md 확장자) 형식의 파일을 html 파일로 변환하는 방법이다. markdown 모듈을 이용하면 간편하게 작업 가능.
우선 markdown 모듈을 설치한다.
pip3 install markdown
데비안/우분투 계열 리눅스일 경우 python3-markdown 패키지를 설치해도 된다. 아래와 같이 진행하면 되겠다.
# S/W 저장소 정보 갱신
sudo apt update
# python3-markdown 패키지 설치
sudo apt install python3-markdown
이제 아래의 예제 코드와 같이 작성해 볼 수 있다. md 파일을 인자로 입력 받아서 확장자를 html로 바꾸고 변환 결과를 저장한다.
import sys
import markdown
md_file = sys.argv[1]
# md 파일 읽기
f = open(md_file, 'r', encoding='utf-8')
md_content = f.read()
f.close()
# md -> html 변환
html_content = markdown.markdown(md_content, extensions=['extra'])
# html 파일 경로
# 문자열의 rsplit() 함수를 이용, 구분자를 '.'으로 하여 맨오른쪽을 기준으로 한번 분할
# 확장자가 제거된 파일 경로에 '.html' 붙임
html_file = md_file.rsplit('.', 1)[0] + '.html'
# html 파일 저장
f = open(html_file, 'w', encoding='utf-8')
f.write('<!DOCTYPE html><html>' + html_content + '</html>')
f.close()
md 파일에 코드 또는 표(테이블) 등이 포함되어 있을 경우를 처리하기 위해 markdown.markdown() 함수를 사용할 때 "extra" 확장을 사용하도록 지정했다. 이렇게 해야 마크다운에 포함된 코드나 표가 제대로 변환할 수 있다.
파일 확장자를 md에서 html로 바꾸기 위해 문자열을 맨 오른쪽 기준으로 분할하여 리스트를 만드는 rsplit() 함수를 이용했다. 구분자를 '.', 최대 분할 회수를 1로 지정하여 분할한 후 첫번째 원소를 취하면 파일 경로의 맨 오른쪽에 위치한 확장자가 제거된 결과를 얻는다. 여기에 '.html' 문자열을 붙이면 된다.
markdown.markdown() 함수로 형식을 변환한 결과에 html임을 나타내는 헤더는 포함되지 않는다. 따라서 html 파일을 만들 때 변환 결과 앞에는 <!DOCTYPE html><html>, 뒤에는 </html> 태그를 붙여 주었다.
위의 스크립트를 md2html.py로 저장하고 아래와 같이 my_file.md 파일을 my_file.html 파일로 변환할 수 있다.
python3 md2html.py my_file.md
파이썬 markdown 모듈에 대한 사용 설명서는 아래의 링크를 참고하자.
https://python-markdown.github.io/
'파이썬(python)' 카테고리의 다른 글
파이썬에서 정규표현식(regex)을 이용한 문자열 대체 - re.sub() (0) | 2025.05.06 |
---|---|
파이썬에서 문자열을 절반으로 나누기(중간에서 분할하기) (0) | 2025.05.04 |
파이썬(python)을 이용해서 디스코드 채널에 메시지 자동 전송 (0) | 2025.04.23 |
파이썬(python)에서 텍스트 파일을 한줄씩 읽기 (0) | 2025.04.16 |
파이썬 딕셔너리(dict) 원소의 순서 보존 여부 (0) | 2025.04.05 |