|
9 | 9 | import os
|
10 | 10 | import re
|
11 | 11 |
|
| 12 | +from copy import deepcopy |
| 13 | + |
12 | 14 | from django.conf import settings
|
13 | 15 | from django.core import validators
|
14 | 16 | from django.db import models
|
15 | 17 | from django.db.models.signals import post_save
|
16 | 18 | from django.dispatch import receiver
|
17 | 19 |
|
18 | 20 | from markupfield.fields import MarkupField
|
| 21 | +from markupfield.markup import DEFAULT_MARKUP_TYPES |
| 22 | + |
| 23 | +import cmarkgfm |
19 | 24 |
|
20 | 25 | from cms.models import ContentManageable
|
21 | 26 | from fastly.utils import purge_url
|
|
43 | 48 | ),
|
44 | 49 | )
|
45 | 50 |
|
| 51 | +RENDERERS = deepcopy(DEFAULT_MARKUP_TYPES) |
| 52 | +for i, renderer in enumerate(RENDERERS): |
| 53 | + if renderer[0] == 'markdown': |
| 54 | + markdown_index = i |
| 55 | + |
| 56 | +RENDERERS[markdown_index] = ( |
| 57 | + 'markdown', |
| 58 | + cmarkgfm.github_flavored_markdown_to_html, |
| 59 | + 'Markdown' |
| 60 | +) |
| 61 | + |
46 | 62 |
|
47 | 63 | class Page(ContentManageable):
|
48 | 64 | title = models.CharField(max_length=500)
|
49 | 65 | keywords = models.CharField(max_length=1000, blank=True, help_text="HTTP meta-keywords")
|
50 | 66 | description = models.TextField(blank=True, help_text="HTTP meta-description")
|
51 | 67 | path = models.CharField(max_length=500, validators=[is_valid_page_path], unique=True, db_index=True)
|
52 |
| - content = MarkupField(default_markup_type=DEFAULT_MARKUP_TYPE) |
| 68 | + content = MarkupField(markup_choices=RENDERERS, default_markup_type=DEFAULT_MARKUP_TYPE) |
53 | 69 | is_published = models.BooleanField(default=True, db_index=True)
|
54 | 70 | content_type = models.CharField(max_length=150, default='text/html')
|
55 | 71 | template_name = models.CharField(
|
|
0 commit comments