Skip to content

Commit e60fba5

Browse files
authored
switch to github flavored markdown for CMS pages (#1613)
1 parent 0756588 commit e60fba5

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

base-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ django-sitetree==1.10.0
44
Django==2.0.13
55
docutils==0.12
66
Markdown==2.5.2
7+
cmarkgfm==0.4.2
78
Pillow==5.1.0
89
psycopg2==2.7.3.2
910
python3-openid==3.1.0

pages/models.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@
99
import os
1010
import re
1111

12+
from copy import deepcopy
13+
1214
from django.conf import settings
1315
from django.core import validators
1416
from django.db import models
1517
from django.db.models.signals import post_save
1618
from django.dispatch import receiver
1719

1820
from markupfield.fields import MarkupField
21+
from markupfield.markup import DEFAULT_MARKUP_TYPES
22+
23+
import cmarkgfm
1924

2025
from cms.models import ContentManageable
2126
from fastly.utils import purge_url
@@ -43,13 +48,24 @@
4348
),
4449
)
4550

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+
4662

4763
class Page(ContentManageable):
4864
title = models.CharField(max_length=500)
4965
keywords = models.CharField(max_length=1000, blank=True, help_text="HTTP meta-keywords")
5066
description = models.TextField(blank=True, help_text="HTTP meta-description")
5167
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)
5369
is_published = models.BooleanField(default=True, db_index=True)
5470
content_type = models.CharField(max_length=150, default='text/html')
5571
template_name = models.CharField(

0 commit comments

Comments
 (0)