50 장고 마크다운 설치 / 적용 하기
50.1 마크다운 markdownx, Pygments
참고 : https://neutronx.github.io/django-markdownx/example/
마크다운은 복잡한 html을 사용하지 않고 읽고, 쓰는 양식을 간편하게 할 수있게 해준다.
마크다운을 처음 접하는 분은 익숙하지 않아 어렵게 생각할 수 있지만, 적응이 되면 간편하게 글을 작성할 수 있다.
requirements/base.txt 에 django-markdownx 모듈을 추가하고 base.txt 읽어 설치하도록 합니다.
따로 파일을 관리하지 않으시면 pip install django-markdownx로 설치해도 됩니다.
#https://python-markdown.github.io/extensions/code_hilite/
django-markdownx==3.0.1
#https://pypi.org/project/Pygments/
Pygments==2.8.0
50.2 마크다운 설치하기
가상환경 모드인지 확인하고 django-markdownx 를 설치 합니다.
pip install django-markdownx==3.0.1
pip install Pygments==2.8.0
50.3 설정파일 변경 - base.py
설정파일 내용에 마크다운을 추가합니다.
설정에 대한 옵션은 https://python-markdown.github.io/
DJANGO_BASE_APP = [
...
'markdownx'
]
MARKDOWNX_MARKDOWN_EXTENSIONS = [
'markdown.extensions.codehilite',
'markdown.extensions.fenced_code',
'markdown.extensions.extra',
'markdown.extensions.toc'
]
MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = {
'markdown.extensions.codehilite': {
'linenums': True,
'use_pygments': True,
'noclasses': True
}
}
50.4 설정파일 변경 - urls.py
50.5 마크다운 admin.py
admin 페이지에서 글 작성시 마크다운이 어떻게 표현될지 미리 적용되는 것을 확인 할 수 있습니다.
#myapp/blog/admin.py
from django.contrib import admin
# Register your models here.
from .models import PyBlog, PyBlogDetail
from markdownx.admin import MarkdownxModelAdmin
from markdownx.widgets import AdminMarkdownxWidget
from markdownx.models import MarkdownxField
#admin.TabularInline
class containPythonBlog(admin.StackedInline ):
model = PyBlogDetail
extra = 3
formfield_overrides = {
MarkdownxField: {'widget': AdminMarkdownxWidget}
}
class admin_pythonblog(admin.ModelAdmin):
list_display = ('id','title','regist_dt','update_dt')
fieldsets = [
(None, { 'fields': ['title'] }),
]
inlines = [ containPythonBlog ]
admin.site.register(PyBlog, admin_pythonblog)
admin.site.register(PyBlogDetail,MarkdownxModelAdmin)
50.6 사용자정의 필터 만들기
50.7 템플릿 html에 적용하기
50.8 브라우저에서 확인하기
50.9 admin 글입력 가로로 나열하기
Comments
Login: