From 99f548e28d26a2ef6f3d203871093d45b1569ff0 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Tue, 13 Nov 2018 15:21:25 +0100 Subject: [PATCH] Add markdown filter with mistune and markdown editor pagedown (from stackoverflow). --- .../apply/funds/templatetags/markdown_tags.py | 11 +++ opentech/settings/base.py | 1 + .../static_src/src/images/editor-buttons.png | Bin 0 -> 7465 bytes .../src/sass/apply/components/_editor.scss | 75 ++++++++++++++++++ opentech/static_src/src/sass/apply/main.scss | 1 + requirements.txt | 2 + 6 files changed, 90 insertions(+) create mode 100644 opentech/apply/funds/templatetags/markdown_tags.py create mode 100644 opentech/static_src/src/images/editor-buttons.png create mode 100644 opentech/static_src/src/sass/apply/components/_editor.scss diff --git a/opentech/apply/funds/templatetags/markdown_tags.py b/opentech/apply/funds/templatetags/markdown_tags.py new file mode 100644 index 000000000..9ba5ff19d --- /dev/null +++ b/opentech/apply/funds/templatetags/markdown_tags.py @@ -0,0 +1,11 @@ +import mistune + +from django import template + +register = template.Library() + + +@register.filter +def markdown(value): + markdown = mistune.Markdown() + return markdown(value) diff --git a/opentech/settings/base.py b/opentech/settings/base.py index dd2c51d8b..ba0565c37 100644 --- a/opentech/settings/base.py +++ b/opentech/settings/base.py @@ -118,6 +118,7 @@ INSTALLED_APPS = [ 'hijack', 'compat', + 'pagedown', 'django.contrib.admin', 'django.contrib.auth', diff --git a/opentech/static_src/src/images/editor-buttons.png b/opentech/static_src/src/images/editor-buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..50b37090363e6757e7bd0ba75cd1e0dfaabd13d2 GIT binary patch literal 7465 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 literal 0 HcmV?d00001 diff --git a/opentech/static_src/src/sass/apply/components/_editor.scss b/opentech/static_src/src/sass/apply/components/_editor.scss new file mode 100644 index 000000000..22affba70 --- /dev/null +++ b/opentech/static_src/src/sass/apply/components/_editor.scss @@ -0,0 +1,75 @@ +.wmd-panel { +} + +.wmd-button-bar { +} + +.wmd-input { +} + +.wmd-preview { + background-color: $color--sky-blue; +} + +.wmd-button-row { + position: relative; + margin-left: 5px; + margin-right: 5px; + margin-bottom: 5px; + margin-top: 10px; + padding: 0; + height: 20px; +} + +.wmd-spacer { + width: 1px; + height: 20px; + margin-left: 14px; + + position: absolute; + background-color: $color--mid-grey; + display: inline-block; + list-style: none; +} + +.wmd-button { + width: 20px; + height: 20px; + padding-left: 2px; + padding-right: 3px; + position: absolute; + display: inline-block; + list-style: none; + cursor: pointer; + + & > span { + background-image: url('./../../images/editor-buttons.png'); + background-repeat: no-repeat; + background-position: 0 0; + width: 20px; + height: 20px; + display: inline-block; + } +} + +.wmd-spacer1 { + left: 50px; +} + +.wmd-spacer2 { + left: 175px; +} + +.wmd-spacer3 { + left: 300px; +} + +.wmd-prompt-background { + background-color: $color--black; +} + +.wmd-prompt-dialog { + border: 4px solid $color--primary; + background-color: $color--light-grey; + padding: .5em; +} diff --git a/opentech/static_src/src/sass/apply/main.scss b/opentech/static_src/src/sass/apply/main.scss index 014c32220..745f50807 100644 --- a/opentech/static_src/src/sass/apply/main.scss +++ b/opentech/static_src/src/sass/apply/main.scss @@ -13,6 +13,7 @@ @import 'components/activity-feed'; @import 'components/comment'; @import 'components/button'; +@import 'components/editor'; @import 'components/feed'; @import 'components/filters'; @import 'components/grid'; diff --git a/requirements.txt b/requirements.txt index 470eff2f7..662083dc2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42,3 +42,5 @@ django-storages==1.6.6 boto3==1.7.75 mailchimp3==3.0.4 scout-apm==1.3.4 +mistune==0.8.4 +django-pagedown==1.0.6 -- GitLab