문제

나는 Markdown (2.0.1) & pygments (1.0)를 사용하여 간단한 django (1.1) 테스트 앱에서 일하는 구문 강조를 받으려고 노력했습니다. 아이디어는 Markdown 형식의 사용자 입력에서 HTML을 생성하고 DB에 둘 다 저장하는 것입니다.

지금까지 Markdown 처리가 작동하지만 구문을 강조 표시 할 수는 없습니다. my models.py는 다음과 같습니다.

from django.db import models
from django.contrib import admin
from markdown import markdown

class BlogPost( models.Model ):
    title = models.CharField( max_length = 150 )
    body = models.TextField()
    body_html = models.TextField(editable=False, blank=True, null=True)
    timestamp = models.DateTimeField()

    def save(self):
        self.body_html = markdown(self.body, ['codehilite'])
        super( BlogPost, self).save()

    class Meta:
        ordering = ( '-timestamp', )

class BlogPostAdmin( admin.ModelAdmin ):
    list_display = ( 'title', 'timestamp' )

admin.site.register(BlogPost, BlogPostAdmin)

지금까지 테스트는 마크 다운 구문이 작동하지만 다음과 같은 것을 시도하면 출력 또는 출력 소스에서 구문 강조 표시를 보지 못했습니다.

   :::python
   from foo import bar
   foobar = bar('foo')

출력 소스에서 적어도 일련의 코드 요소를 볼 것으로 예상됩니다.

도움이 되었습니까?

해결책

고쳤다! 코드는 3 개가 아닌 4 개의 공간에 들여 졌어야합니다!

질문을하기 전에이를 테스트하기 위해 여러 편집을했지만 Firefox가 테스트 게시물로 사용하는 것으로 페이지를 캐시 한 것 같습니다. Wind

나는 4 개의 공간 들여 쓰기로 좌절감으로 새로운 테스트 게시물을 만들었을 때 그것이 작동하는 것을 발견 한 다음 페이지 소스를 검사했습니다.

다른 팁

데이터베이스를 Markdown 형식으로 저장 한 다음 디스플레이 시간에 원하는 프레젠테이션 형식 (HTML)으로 변환하는 것이 좋습니다. 이렇게하면 처음에 추가 한 것과 같은 방식으로 데이터를 편집 할 수 있습니다.

템플릿 상단에는 다음을 포함해야합니다.

{% load markup %}

그런 다음 템플릿 필터 마크 다운을 사용하십시오.

{{ blog_post.body|markdown}}

그런 다음 CSS를 사용하여 올바른 형식을 갖도록하십시오.

당신도 필요합니다 Markdown 패키지를 설치하십시오 여기에 없다면.

그리고 당신의 settings.py에서 당신의 installed_apps에 당신은 'django.contrib.markup'을 포함시켜야합니다.

자세한 내용은이 페이지를 참조하십시오.

형식이 보이지 않는 이유는 마크 업 소스를 확인하고 올바르게 작동하는지 확인하십시오. 즉, 제대로 표시되고 있는지 확인하십시오. 그런 다음 필요한 스타일 시트가 있는지 확인하십시오.

Markdown 형식은 표시되기 전에 형식입니다.

당신은 또한 사용할 수 있습니다 jQuery 표시된 요소에 클래스를 추가하려면 나머지 페이지에 영향을 미치지 않고 Markdown 텍스트를 스타일링 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top