데브허브 | DEVHUB | Django - Creating a custom Markdown Template FilterDjango - Creating a custom Markdown Template Filter
- Django에서 데이터베이스에 저장된 마크다운 텍스트를 HTML로 변환하여 웹 페이지에 렌더링하는 커스텀 템플릿 필터 생성 방법을 다룹니다. 📝
- 마크다운의 기본 개념(헤더, 목록, 인용구, 코드 블록 등)과 HTML 변환 예시를 간략히 소개합니다. 📚
MarkdownPost 모델(Text field), views.py에서 게시물 가져오기, posts.html 템플릿 구조로 초기 프로젝트를 설정합니다. 🏗️
- 마크다운을 HTML로 변환하기 위해 Python
markdown 패키지(pip install markdown)를 설치하고 markdown.markdown(text) 함수를 사용합니다. 🐍
- 모델 속성(Property)을 통해 초기 구현을 시도하지만, 데이터베이스 로직과 프레젠테이션 로직의 혼합으로 인해 이상적이지 않음을 지적합니다. 🚫
template_tags 디렉토리에 markdown_filters.py 파일을 생성하고 @register.filter 데코레이터를 사용하여 render_markdown 필터를 정의하는 과정을 상세히 설명합니다. 🛠️
- Django의
mark_safe 함수를 필터 내부에 통합하여, 템플릿에서 |safe 필터를 매번 사용할 필요 없이 HTML 출력을 안전하게 처리하는 방법을 보여줍니다. ✅
- 커스텀 템플릿 필터는 마크다운 변환 로직을 중앙 집중화하고 프로젝트 내 여러 템플릿에서 쉽게 재사용할 수 있게 하여 코드의 깔끔함과 효율성을 높입니다. ✨
- 코드 블록 확장 등 마크다운 필터의 추가적인 기능 구현 가능성을 언급하며 마무리합니다. 💡