터미널에서 django-markdownx를 설치한다.
pip install django-markdownx
새로운 라이브러리를 설치하면 settings.py에서 해당 모듈을 등록시켜 준다.
markdownx는 urls.py에도 경로를 추가해 주어야 원활하게 작동한다. settings.py와 같은 위치(프로젝트 폴더)에 있는 urls.py에 경로를 추가해 준다.
models.py에서 Post 모델의 content 필드를 MarkdownField로 바꿔준다.
from markdownx.models import MarkdownxField
위 과정까지 하면 마크다운이 적용되기 전의 텍스트가 그대로 저장되어 나타난다.
따라서 화면에 마크다운 문법으로 작성된 content 필드 값을 HTML로 변환하기 위해서는 marndownx에서 markdown을 import 하고 새로운 함수를 만들어주어야 한다.
from markdownx.utils import markdown
이렇게 만들어진 함수를 content를 가져오는 부분에 적용시켜 주면 된다.
포스트 내용과, 포스트 목록을 나타내는 html 파일에서 content를 가져오는 부분에 get_content_markdown 함수를 적용시켜 마크다운 형식으로 내용을 불러올 수 있도록 했다.
추가적으로 관리자페이지에서도 마크다운을 활용할 수 있도록 MarkdownxModelAdmin을 추가하고 다음과 같이 수정해 주었다.
다음과 같이 포스트 목록과 포스트 내용 모두 마크다운이 적용된 것을 볼 수 있다.
반응형