파이썬으로 마크다운 문서를 HTML로 변환하기

Python // 2024년 06월 02일 작성 // 2024년 08월 13일 업데이트

파이썬으로 마크다운(markdown) 문서를 HTML로 변환하는 방법을 간단히 정리해 보자. 이 글에서는 Python-Markdown 패키지를 이용한다.

Python-Markdown 패키지 설치

단순하게 늘 하던 대로(?) pipmarkdown 패키지를 설치하면 된다.

pip install markdown

마크다운 문서를 HTML로 변환하기

예를 들어 마크다운 텍스트 문서를 읽어들여 text라는 변수에 담아놨다면 아래와 같이 호출할 수 있다.

import markdown

html = markdown.markdown(text)

이런 식으로 하면 HTML로 변환된 결과물이 html 변수에 담기게 된다.

이 방법 말고 아래와 같은 식으로 Markdown 인스턴스를 생성해서 변환할 수도 있다.

import markdown

md = markdown.Markdown()
html = md.convert(text)

이렇게 하면 하나의 마크다운 인스턴스로 여러 번 변환시키는 것도 가능하다. 다만 마크다운 인스턴스에 특정한 정보를 쌓아서 사용하는 경우 연속 변환 시 사이드이펙트가 있을 수도 있으므로 리셋 시키면서 사용할 수도 있다.

import markdown

md = markdown.Markdown()
html1 = md.convert(text1)
md.reset()
html2 = md.convert(text2)

마크다운 파일에서 바로 불러들여서 HTML로 변환한 후 바로 파일로 저장하기

markdownFromFile이라는 함수를 사용하면 마크다운 파일에서 내용을 바로 로드한 후 변환한 HTML 텍스트를 얻을 수 있다.

import markdown

html = markdown.markdownFromFile(input=input_path)

이름과는 다르게 이 함수는 출력 기능도 제공한다. 아래와 같이 output을 명시하면 해당 파일 경로로 HTML 파일을 출력해 준다.

import markdown

html = markdown.markdownFromFile(input=input_path, output=output_path)

필요하다면 encoding도 명시할 수 있지만 utf-8이 기본 값이니 이외의 인코딩이 필요한 경우가 아니라면 굳이 명시할 필요는 없다.

참고로 이 외에 Markdown 인스턴스에서 convertFile이라는 메서드도 사용할 수 있다.

import markdown

md = markdown.Markdown()
md.convertFile(input=input_path, output=output_path)

전달하는 파라미터 구성은 앞서 살펴본 markdownFromFile과 동일하다.

관련된 글들