3 from django.contrib.auth.models import User
4 from django.db import models
5 from django.utils.safestring import mark_safe
9 class Post(models.Model):
10 title = models.CharField(max_length=256, null=True)
11 slug = models.SlugField()
12 author = models.ForeignKey(User, on_delete=models.CASCADE)
13 publication_utc = models.DateTimeField(null=True, blank=True)
14 body_markdown = models.TextField(null=True)
21 return mark_safe(commonmark.commonmark(self.body_markdown))
24 def teaser_html(self):
25 paragraphs = re.split(r'\n(\s*\n)+', self.body_markdown)
27 if len(paragraphs) == 0:
30 teaser_markdown = paragraphs[0]
32 for p in paragraphs[1:]:
33 if len(teaser_markdown) > 512:
35 teaser_markdown += '\n\n' + p
37 return mark_safe(commonmark.commonmark(teaser_markdown))