Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added MarkItUp editor and preview

  • Loading branch information...
commit d7eb445d14507082ba7134fa5092fc46147baa7e 1 parent f103730
@dimka665 authored
Showing with 1,802 additions and 99 deletions.
  1. +7 −0 .hgignore
  2. +1 −1  markitup_field/__init__.py
  3. +79 −54 markitup_field/fields.py
  4. +1 −0  markitup_field/management/__init__.py
  5. +1 −0  markitup_field/management/commands/__init__.py
  6. +39 −0 markitup_field/management/commands/dice_markup_build_css.py
  7. +17 −11 markitup_field/markup.py
  8. +28 −0 markitup_field/settings.py
  9. +25 −0 markitup_field/static/markitup/ajax_csrf.js
  10. +563 −0 markitup_field/static/markitup/jquery.markitup.js
  11. +5 −0 markitup_field/static/markitup/preview.css
  12. BIN  markitup_field/static/markitup/sets/default/images/bold.png
  13. BIN  markitup_field/static/markitup/sets/default/images/clean.png
  14. BIN  markitup_field/static/markitup/sets/default/images/image.png
  15. BIN  markitup_field/static/markitup/sets/default/images/italic.png
  16. BIN  markitup_field/static/markitup/sets/default/images/link.png
  17. BIN  markitup_field/static/markitup/sets/default/images/picture.png
  18. BIN  markitup_field/static/markitup/sets/default/images/preview.png
  19. BIN  markitup_field/static/markitup/sets/default/images/stroke.png
  20. +27 −0 markitup_field/static/markitup/sets/default/set.js
  21. +27 −0 markitup_field/static/markitup/sets/default/style.css
  22. BIN  markitup_field/static/markitup/sets/markdown/images/bold.png
  23. BIN  markitup_field/static/markitup/sets/markdown/images/code.png
  24. BIN  markitup_field/static/markitup/sets/markdown/images/h1.png
  25. BIN  markitup_field/static/markitup/sets/markdown/images/h2.png
  26. BIN  markitup_field/static/markitup/sets/markdown/images/h3.png
  27. BIN  markitup_field/static/markitup/sets/markdown/images/h4.png
  28. BIN  markitup_field/static/markitup/sets/markdown/images/h5.png
  29. BIN  markitup_field/static/markitup/sets/markdown/images/h6.png
  30. BIN  markitup_field/static/markitup/sets/markdown/images/italic.png
  31. BIN  markitup_field/static/markitup/sets/markdown/images/link.png
  32. BIN  markitup_field/static/markitup/sets/markdown/images/list-bullet.png
  33. BIN  markitup_field/static/markitup/sets/markdown/images/list-numeric.png
  34. BIN  markitup_field/static/markitup/sets/markdown/images/picture.png
  35. BIN  markitup_field/static/markitup/sets/markdown/images/preview.png
  36. BIN  markitup_field/static/markitup/sets/markdown/images/quotes.png
  37. +11 −0 markitup_field/static/markitup/sets/markdown/readme.txt
  38. +54 −0 markitup_field/static/markitup/sets/markdown/set.js
  39. +54 −0 markitup_field/static/markitup/sets/markdown/style.css
  40. BIN  markitup_field/static/markitup/sets/restructuredtext/images/bold.png
  41. BIN  markitup_field/static/markitup/sets/restructuredtext/images/close.png
  42. BIN  markitup_field/static/markitup/sets/restructuredtext/images/code.png
  43. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h1.png
  44. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h2.png
  45. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h3.png
  46. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h4.png
  47. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h5.png
  48. BIN  markitup_field/static/markitup/sets/restructuredtext/images/h6.png
  49. BIN  markitup_field/static/markitup/sets/restructuredtext/images/italic.png
  50. BIN  markitup_field/static/markitup/sets/restructuredtext/images/link.png
  51. BIN  markitup_field/static/markitup/sets/restructuredtext/images/list-bullet.png
  52. BIN  markitup_field/static/markitup/sets/restructuredtext/images/list-numeric.png
  53. BIN  markitup_field/static/markitup/sets/restructuredtext/images/picture.png
  54. BIN  markitup_field/static/markitup/sets/restructuredtext/images/preview.png
  55. BIN  markitup_field/static/markitup/sets/restructuredtext/images/quotes.png
  56. +53 −0 markitup_field/static/markitup/sets/restructuredtext/set.js
  57. +53 −0 markitup_field/static/markitup/sets/restructuredtext/style.css
  58. +1 −0  markitup_field/static/markitup/sets/style.css
  59. BIN  markitup_field/static/markitup/sets/textile/images/bold.png
  60. BIN  markitup_field/static/markitup/sets/textile/images/code.png
  61. BIN  markitup_field/static/markitup/sets/textile/images/h1.png
  62. BIN  markitup_field/static/markitup/sets/textile/images/h2.png
  63. BIN  markitup_field/static/markitup/sets/textile/images/h3.png
  64. BIN  markitup_field/static/markitup/sets/textile/images/h4.png
  65. BIN  markitup_field/static/markitup/sets/textile/images/h5.png
  66. BIN  markitup_field/static/markitup/sets/textile/images/h6.png
  67. BIN  markitup_field/static/markitup/sets/textile/images/italic.png
  68. BIN  markitup_field/static/markitup/sets/textile/images/link.png
  69. BIN  markitup_field/static/markitup/sets/textile/images/list-bullet.png
  70. BIN  markitup_field/static/markitup/sets/textile/images/list-numeric.png
  71. BIN  markitup_field/static/markitup/sets/textile/images/paragraph.png
  72. BIN  markitup_field/static/markitup/sets/textile/images/picture.png
  73. BIN  markitup_field/static/markitup/sets/textile/images/preview.png
  74. BIN  markitup_field/static/markitup/sets/textile/images/quotes.png
  75. BIN  markitup_field/static/markitup/sets/textile/images/stroke.png
  76. +11 −0 markitup_field/static/markitup/sets/textile/readme.txt
  77. +39 −0 markitup_field/static/markitup/sets/textile/set.js
  78. +60 −0 markitup_field/static/markitup/sets/textile/style.css
  79. BIN  markitup_field/static/markitup/skins/markitup/images/bg-container.png
  80. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-bbcode.png
  81. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-dotclear.png
  82. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-html.png
  83. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-json.png
  84. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-markdown.png
  85. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-textile.png
  86. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-wiki.png
  87. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-xml.png
  88. BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor.png
  89. BIN  markitup_field/static/markitup/skins/markitup/images/handle.png
  90. BIN  markitup_field/static/markitup/skins/markitup/images/menu.png
  91. BIN  markitup_field/static/markitup/skins/markitup/images/submenu.png
  92. +148 −0 markitup_field/static/markitup/skins/markitup/style.css
  93. BIN  markitup_field/static/markitup/skins/simple/images/handle.png
  94. BIN  markitup_field/static/markitup/skins/simple/images/menu.png
  95. BIN  markitup_field/static/markitup/skins/simple/images/submenu.png
  96. +118 −0 markitup_field/static/markitup/skins/simple/style.css
  97. +5 −0 markitup_field/static/markitup/templates/preview.css
  98. +11 −0 markitup_field/static/markitup/templates/preview.html
  99. +77 −0 markitup_field/static/markitup/update_widget.js
  100. +12 −0 markitup_field/templates/markitup/editor.html
  101. +2 −0  markitup_field/templates/markitup/include_all.html
  102. +2 −0  markitup_field/templates/markitup/include_css.html
  103. +6 −0 markitup_field/templates/markitup/include_js.html
  104. +11 −0 markitup_field/templates/markitup/preview.html
  105. 0  markitup_field/templatetags/__init__.py
  106. +67 −0 markitup_field/templatetags/markitup_tags.py
  107. +0 −2  markitup_field/tests/settings.py
  108. +11 −25 markitup_field/tests/tests.py
  109. +8 −0 markitup_field/urls.py
  110. +9 −0 markitup_field/util.py
  111. +12 −0 markitup_field/views.py
  112. +147 −6 markitup_field/widgets.py
View
7 .hgignore
@@ -0,0 +1,7 @@
+syntax: glob
+
+
+.idea*
+*.pyc
+
+*.pyo
View
2  markitup_field/__init__.py
@@ -1 +1 @@
-__version__ = '1.1.0-dev'
+__version__ = '1.0.2'
View
133 markitup_field/fields.py
@@ -1,31 +1,29 @@
import django
-from django.conf import settings
+#from django.conf import settings
from django.db import models
from django.utils.safestring import mark_safe
from django.utils.html import escape
-from django.utils.encoding import python_2_unicode_compatible
-from markupfield import widgets
-from markupfield import markup
+from markitup_field import widgets
+#from markitup_field import markup
+from markitup_field import settings
_rendered_field_name = lambda name: '_%s_rendered' % name
-_markup_type_field_name = lambda name: '%s_markup_type' % name
+_markup_format_field_name = lambda name: '%s_markup_format' % name
# for fields that don't set markup_types: detected types or from settings
-_MARKUP_TYPES = getattr(settings, 'MARKUP_FIELD_TYPES', markup.DEFAULT_MARKUP_TYPES)
+#MARKUP_CHOICES = getattr(settings, 'MARKUP_FILTERS', markup.MARKUP_FILTERS)
-@python_2_unicode_compatible
class Markup(object):
- def __init__(self, instance, field_name, rendered_field_name,
- markup_type_field_name):
+ def __init__(self, instance, field_name, rendered_field_name, markup_format_field_name):
# instead of storing actual values store a reference to the instance
# along with field names, this makes assignment possible
self.instance = instance
self.field_name = field_name
self.rendered_field_name = rendered_field_name
- self.markup_type_field_name = markup_type_field_name
+ self.markup_format_field_name = markup_format_field_name
# raw is read/write
def _get_raw(self):
@@ -36,14 +34,15 @@ def _set_raw(self, val):
raw = property(_get_raw, _set_raw)
- # markup_type is read/write
- def _get_markup_type(self):
- return self.instance.__dict__[self.markup_type_field_name]
+ # markup_format is read/write
+ def _get_markup_format(self):
+ return self.instance.__dict__[self.markup_format_field_name]
- def _set_markup_type(self, val):
- return setattr(self.instance, self.markup_type_field_name, val)
+ def _set_markup_format(self, val):
+# return setattr(self.instance, self.markup_format_field_name, val)
+ setattr(self.instance, self.markup_format_field_name, val)
- markup_type = property(_get_markup_type, _set_markup_type)
+ markup_format = property(_get_markup_format, _set_markup_format)
# rendered is a read only property
def _get_rendered(self):
@@ -51,7 +50,7 @@ def _get_rendered(self):
rendered = property(_get_rendered)
# allows display via templates to work without safe filter
- def __str__(self):
+ def __unicode__(self):
return mark_safe(self.rendered)
@@ -59,8 +58,8 @@ class MarkupDescriptor(object):
def __init__(self, field):
self.field = field
- self.rendered_field_name = _rendered_field_name(self.field.name)
- self.markup_type_field_name = _markup_type_field_name(self.field.name)
+ self.rendered_field_name = field.rendered_field_name
+ self.markup_format_field_name = field.markup_format_field_name
def __get__(self, instance, owner):
if instance is None:
@@ -68,42 +67,58 @@ def __get__(self, instance, owner):
markup = instance.__dict__[self.field.name]
if markup is None:
return None
- return Markup(instance, self.field.name, self.rendered_field_name,
- self.markup_type_field_name)
+ return Markup(instance, self.field.name, self.rendered_field_name, self.markup_format_field_name)
def __set__(self, obj, value):
if isinstance(value, Markup):
obj.__dict__[self.field.name] = value.raw
setattr(obj, self.rendered_field_name, value.rendered)
- setattr(obj, self.markup_type_field_name, value.markup_type)
+ setattr(obj, self.markup_format_field_name, value.markup_format)
else:
obj.__dict__[self.field.name] = value
class MarkupField(models.TextField):
- def __init__(self, verbose_name=None, name=None, markup_type=None,
- default_markup_type=None, markup_choices=_MARKUP_TYPES,
+ def __init__(self, verbose_name=None, name=None,
+ markup_format=None, default_markup_format=None, markup_choices=settings.MARKUP_CHOICES,
+ rendered_field_name=None,
escape_html=False, **kwargs):
- if markup_type and default_markup_type:
- raise ValueError('Cannot specify both markup_type and default_markup_type')
+ if markup_format and default_markup_format:
+ raise ValueError("Cannot specify both 'markup_format' and 'default_markup_format'")
- self.default_markup_type = markup_type or default_markup_type
- self.markup_type_editable = markup_type is None
+ if not default_markup_format:
+ default_markup_format = settings.MARKUP_DEFAULT_FORMAT
+
+# if render_to_field and rendered_field_name:
+# raise ValueError("Cannot specify both 'render_to_field' and 'rendered_field_name'")
+
+# if render_to_field:
+# render_to_field_class_is_child_of_field = False
+# try:
+# render_to_field_class_is_child_of_field = issubclass(render_to_field.__class__, models.Field)
+# except TypeError:
+# pass
+#
+# if not render_to_field_class_is_child_of_field:
+# raise ValueError("'render_to_field' must be Field")
+
+# self.render_to_field = render_to_field
+# print(render_to_field.)
+ self.rendered_field_name = rendered_field_name
+
+ self.default_markup_format = markup_format or default_markup_format
+ self.markup_format_editable = markup_format is None
self.escape_html = escape_html
- # pre-1.0 markup_choices might have been a dict
- if isinstance(markup_choices, dict):
- raise ValueError('passing a dict as markup_choices removed in 1.1')
- else:
- self.markup_choices_list = [mc[0] for mc in markup_choices]
- self.markup_choices_dict = dict(markup_choices)
+ self.markup_choices = markup_choices
+ self.markup_choices_list = [mc[0] for mc in markup_choices]
+# self.markup_choices_dict = dict(markup_choices)
- if (self.default_markup_type and
- self.default_markup_type not in self.markup_choices_list):
- raise ValueError("Invalid default_markup_type for field '%s', allowed values: %s" %
- (name, ', '.join(self.markup_choices_list)))
+ # default_markup_format in markup_choices ?
+ if (self.default_markup_format and (self.default_markup_format not in self.markup_choices_list)):
+ raise ValueError("Invalid 'default_markup_format' for field '{}', allowed values: {}".format(name, ', '.join(self.markup_choices_list)))
# for South FakeORM compatibility: the frozen version of a
# MarkupField can't try to add a _rendered field, because the
@@ -114,32 +129,42 @@ def __init__(self, verbose_name=None, name=None, markup_type=None,
super(MarkupField, self).__init__(verbose_name, name, **kwargs)
def contribute_to_class(self, cls, name):
+ self.rendered_field_name = self.rendered_field_name or _rendered_field_name(name)
+ self.markup_format_field_name = _markup_format_field_name(name)
+
if not cls._meta.abstract:
- choices = zip(self.markup_choices_list, self.markup_choices_list)
- markup_type_field = models.CharField(max_length=30,
- choices=choices, default=self.default_markup_type,
- editable=self.markup_type_editable, blank=self.blank)
+# choices = zip(self.markup_choices_list, self.markup_choices_list)
+
+ markup_format_field = models.CharField(max_length=30, choices=self.markup_choices, default=self.default_markup_format, editable=self.markup_format_editable, blank=self.blank)
+ markup_format_field.creation_counter = self.creation_counter - 1
+ cls.add_to_class(_markup_format_field_name(name), markup_format_field)
+
+# self.creation_counter += 1
+
+# if not self.render_to_field:
rendered_field = models.TextField(editable=False)
- markup_type_field.creation_counter = self.creation_counter+1
- rendered_field.creation_counter = self.creation_counter+2
- cls.add_to_class(_markup_type_field_name(name), markup_type_field)
- cls.add_to_class(_rendered_field_name(name), rendered_field)
- super(MarkupField, self).contribute_to_class(cls, name)
+# rendered_field = models.TextField(editable=True)
+ rendered_field.creation_counter = self.creation_counter + 1
+
+ cls.add_to_class(self.rendered_field_name, rendered_field)
+ super(MarkupField, self).contribute_to_class(cls, name)
setattr(cls, self.name, MarkupDescriptor(self))
def pre_save(self, model_instance, add):
value = super(MarkupField, self).pre_save(model_instance, add)
- if value.markup_type not in self.markup_choices_list:
- raise ValueError('Invalid markup type (%s), allowed values: %s' %
- (value.markup_type,
+ if value.markup_format not in self.markup_choices_list:
+ raise ValueError('Invalid markup format (%s), allowed values: %s' %
+ (value.markup_format,
', '.join(self.markup_choices_list)))
if self.escape_html:
raw = escape(value.raw)
else:
raw = value.raw
- rendered = self.markup_choices_dict[value.markup_type](raw)
- setattr(model_instance, _rendered_field_name(self.attname), rendered)
+# rendered = self.markup_choices_dict[value.markup_format](raw)
+ rendered = settings.MARKUP_FILTERS[value.markup_format](raw)
+# setattr(model_instance, _rendered_field_name(self.attname), rendered)
+ setattr(model_instance, self.rendered_field_name, rendered)
return value.raw
def get_prep_value(self, value):
@@ -163,7 +188,7 @@ def formfield(self, **kwargs):
# register MarkupField to use the custom widget in the Admin
from django.contrib.admin.options import FORMFIELD_FOR_DBFIELD_DEFAULTS
-FORMFIELD_FOR_DBFIELD_DEFAULTS[MarkupField] = {'widget': widgets.AdminMarkupTextareaWidget}
+FORMFIELD_FOR_DBFIELD_DEFAULTS[MarkupField] = {'widget': widgets.AdminMarkupWidget}
# allow South to handle MarkupField smoothly
try:
@@ -173,6 +198,6 @@ def formfield(self, **kwargs):
# True in a frozen MarkupField, which is what we want.
add_introspection_rules(rules=[
( (MarkupField,), [], { 'rendered_field': ['rendered_field', {}], })
- ], patterns=['markupfield\.fields\.MarkupField'])
+ ], patterns=['markitup_field\.fields\.MarkupField'])
except ImportError:
pass
View
1  markitup_field/management/__init__.py
@@ -0,0 +1 @@
+__author__ = 'dimka'
View
1  markitup_field/management/commands/__init__.py
@@ -0,0 +1 @@
+__author__ = 'dimka'
View
39 markitup_field/management/commands/dice_markup_build_css.py
@@ -0,0 +1,39 @@
+
+from django.core.management.base import BaseCommand, CommandError
+
+import os
+
+from scss import Scss
+css = Scss()
+
+class Command(BaseCommand):
+# args = '<arg_x arg_y ...>'
+ help = "Builds 'style.css' of markups in one css-file using pySCSS"
+
+ def handle(self, *args, **options):
+ my_path = os.path.dirname(__file__)
+ sets_path = os.path.join(my_path, '../../static/markitup/sets/')
+ sets_path = os.path.abspath(sets_path)
+
+ style_scss = ''
+ # sets list
+ sets = [set_dir for set_dir in os.listdir(sets_path) if os.path.isdir(os.path.join(sets_path, set_dir))]
+ for set_dir in sets:
+ set_path = os.path.join(sets_path, set_dir, 'style.css')
+
+ set_css = open(set_path, 'r').read()
+ set_css = set_css.replace('url(images/', 'url({}/images/'.format(set_dir))
+
+ set_scss = '.{set_dir} {{\n{set_css}\n}}\n'.format(set_dir=set_dir, set_css=set_css)
+
+ style_scss += set_scss
+
+ style_css = css.compile(style_scss)
+
+ with open(os.path.join(sets_path, 'style.css'), 'w') as style_css_file:
+ style_css_file.write(style_css)
+
+# style_css_file = open(os.path.join(sets_path, 'style.css'), 'w')
+# style_css_file.write(style_css)
+# style_css_file.close()
+
View
28 markitup_field/markup.py
@@ -1,15 +1,15 @@
-from __future__ import unicode_literals
-
from django.utils.html import linebreaks, urlize
from django.utils.functional import curry
from django.conf import settings
-# build DEFAULT_MARKUP_TYPES
-DEFAULT_MARKUP_TYPES = [
- ('html', lambda markup: markup),
- ('plain', lambda markup: urlize(linebreaks(markup))),
-]
+# build MARKUP_FILTERS
+MARKUP_FILTERS = {
+ 'text': lambda markup: urlize(linebreaks(markup)),
+ 'html': lambda markup: markup,
+}
+
+# Pygments
try:
import pygments
PYGMENTS_INSTALLED = True
@@ -34,7 +34,7 @@ def pygments_directive(name, arguments, options, content, lineno,
# no lexer found - use the text one instead of an exception
lexer = TextLexer()
formatter = options and VARIANTS[options.keys()[0]] or DEFAULT
- parsed = highlight('\n'.join(content), lexer, formatter)
+ parsed = highlight(u'\n'.join(content), lexer, formatter)
return [nodes.raw('', parsed, format='html')]
pygments_directive.arguments = (1, 0, 1)
pygments_directive.content = 1
@@ -43,6 +43,8 @@ def pygments_directive(name, arguments, options, content, lineno,
except ImportError:
PYGMENTS_INSTALLED = False
+
+# Markdown
try:
import markdown
@@ -57,11 +59,13 @@ def pygments_directive(name, arguments, options, content, lineno,
pass
# whichever markdown_filter was available
- DEFAULT_MARKUP_TYPES.append(('markdown', md_filter))
+ MARKUP_FILTERS['markdown'] = md_filter
except ImportError:
pass
+
+# ReStructured Text
try:
from docutils.core import publish_parts
@@ -74,14 +78,16 @@ def render_rest(markup):
settings_overrides=overrides)
return parts["fragment"]
- DEFAULT_MARKUP_TYPES.append(('restructuredtext', render_rest))
+ MARKUP_FILTERS['restructuredtext'] = render_rest
except ImportError:
pass
+
+# Textile
try:
import textile
textile_filter =curry(textile.textile, encoding='utf-8', output='utf-8')
- DEFAULT_MARKUP_TYPES.append(('textile', textile_filter))
+ MARKUP_FILTERS['textile'] = textile_filter
except ImportError:
pass
View
28 markitup_field/settings.py
@@ -0,0 +1,28 @@
+
+from django.conf import settings
+
+from markitup_field.markup import MARKUP_FILTERS
+
+
+MARKUP_FILTERS.update(getattr(settings, 'MARKUP_FILTERS', {}))
+MARKUP_CHOICES = getattr(settings, 'MARKUP_CHOICES', None)
+
+if not MARKUP_CHOICES:
+ MARKUP_CHOICES = (
+ ('text', 'Text'),
+ ('html', 'HTML'),
+ ('markdown', 'Markdown'),
+ ('textile', 'Textile'),
+ ('restructuredtext', 'ReStructured Text'),
+ )
+
+ MARKUP_CHOICES = [markup for markup in MARKUP_CHOICES if markup[0] in MARKUP_FILTERS.keys()]
+
+MARKUP_DEFAULT_FORMAT = getattr(settings, 'MARKUP_DEFAULT_FORMAT', 'default')
+
+MARKUP_AUTO_PREVIEW = getattr(settings, 'MARKUP_AUTO_PREVIEW', False)
+
+MARKUP_SKIN = getattr(settings, 'MARKUP_SKIN', 'markitup/skins/simple')
+
+JQUERY_URL = getattr(settings, 'JQUERY_URL', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js')
+
View
25 markitup_field/static/markitup/ajax_csrf.js
@@ -0,0 +1,25 @@
+(function($) {
+ // from http://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#ajax
+ $('html').ajaxSend(
+ function(event, xhr, settings) {
+ function getCookie(name) {
+ var cookieValue = null;
+ if (document.cookie && document.cookie != '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = $.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+ }
+ if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
+ // Only send the token to relative URLs i.e. locally.
+ xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
+ }
+ });
+ })(jQuery);
View
563 markitup_field/static/markitup/jquery.markitup.js
@@ -0,0 +1,563 @@
+// ----------------------------------------------------------------------------
+// markItUp! Universal MarkUp Engine, JQuery plugin
+// v 1.1.6.2
+// Dual licensed under the MIT and GPL licenses.
+// ----------------------------------------------------------------------------
+// Copyright (C) 2007-2010 Jay Salvat
+// http://markitup.jaysalvat.com/
+// ----------------------------------------------------------------------------
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// ----------------------------------------------------------------------------
+(function($) {
+ $.fn.markItUp = function(settings, extraSettings) {
+ var options, ctrlKey, shiftKey, altKey;
+ ctrlKey = shiftKey = altKey = false;
+
+ options = { id: '',
+ nameSpace: '',
+ root: '',
+ previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes'
+ previewAutoRefresh: true,
+ previewPosition: 'after',
+ previewTemplatePath: '~/templates/preview.html',
+ previewParserPath: '',
+ previewParserVar: 'data',
+ resizeHandle: true,
+ beforeInsert: '',
+ afterInsert: '',
+ onEnter: {},
+ onShiftEnter: {},
+ onCtrlEnter: {},
+ onTab: {},
+ markupSet: [ { /* set */ } ]
+ };
+ $.extend(options, settings, extraSettings);
+
+ // compute markItUp! path
+ if (!options.root) {
+ $('script').each(function(a, tag) {
+ miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/);
+ if (miuScript !== null) {
+ options.root = miuScript[1];
+ }
+ });
+ }
+
+ return this.each(function() {
+ var $$, textarea, levels, scrollPosition, caretPosition, caretOffset,
+ clicked, hash, header, footer, previewWindow, template, iFrame, abort;
+ $$ = $(this);
+ textarea = this;
+ levels = [];
+ abort = false;
+ scrollPosition = caretPosition = 0;
+ caretOffset = -1;
+
+ options.previewParserPath = localize(options.previewParserPath);
+ options.previewTemplatePath = localize(options.previewTemplatePath);
+
+ // apply the computed path to ~/
+ function localize(data, inText) {
+ if (inText) {
+ return data.replace(/("|')~\//g, "$1"+options.root);
+ }
+ return data.replace(/^~\//, options.root);
+ }
+
+ // init and build editor
+ function init() {
+ id = '';
+ nameSpace = '';
+ if (options.id) {
+ id = 'id="'+options.id+'"';
+ } else if ($$.attr("id")) {
+ id = 'id="markItUp'+($$.attr("id").substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"';
+// .substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"';
+ }
+ if (options.nameSpace) {
+ nameSpace = 'class="'+options.nameSpace+'"';
+ }
+ $$.wrap('<div '+nameSpace+'></div>');
+ $$.wrap('<div '+id+' class="markItUp"></div>');
+ $$.wrap('<div class="markItUpContainer"></div>');
+ $$.addClass("markItUpEditor");
+
+ // add the header before the textarea
+ header = $('<div class="markItUpHeader"></div>').insertBefore($$);
+ $(dropMenus(options.markupSet)).appendTo(header);
+
+ // add the footer after the textarea
+ footer = $('<div class="markItUpFooter"></div>').insertAfter($$);
+
+ // add the resize handle after textarea
+ if (options.resizeHandle === true && $.browser.safari !== true) {
+ resizeHandle = $('<div class="markItUpResizeHandle"></div>')
+ .insertAfter($$)
+ .bind("mousedown", function(e) {
+ var h = $$.height(), y = e.clientY, mouseMove, mouseUp;
+ mouseMove = function(e) {
+ $$.css("height", Math.max(20, e.clientY+h-y)+"px");
+ return false;
+ };
+ mouseUp = function(e) {
+ $("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp);
+ return false;
+ };
+ $("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp);
+ });
+ footer.append(resizeHandle);
+ }
+
+ // listen key events
+ $$.keydown(keyPressed).keyup(keyPressed);
+
+ // bind an event to catch external calls
+ $$.bind("insertion", function(e, settings) {
+ if (settings.target !== false) {
+ get();
+ }
+ if (textarea === $.markItUp.focused) {
+ markup(settings);
+ }
+ });
+
+ // remember the last focus
+ $$.focus(function() {
+ $.markItUp.focused = this;
+ });
+ }
+
+ // recursively build header with dropMenus from markupset
+ function dropMenus(markupSet) {
+ var ul = $('<ul></ul>'), i = 0;
+ $('li:hover > ul', ul).css('display', 'block');
+ $.each(markupSet, function() {
+ var button = this, t = '', title, li, j;
+ title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||'');
+ key = (button.key) ? 'accesskey="'+button.key+'"' : '';
+ if (button.separator) {
+ li = $('<li class="markItUpSeparator">'+(button.separator||'')+'</li>').appendTo(ul);
+ } else {
+ i++;
+ for (j = levels.length -1; j >= 0; j--) {
+ t += levels[j]+"-";
+ }
+ li = $('<li class="markItUpButton markItUpButton'+t+(i)+' '+(button.className||'')+'"><a href="" '+key+' title="'+title+'">'+(button.name||'')+'</a></li>')
+ .bind("contextmenu", function() { // prevent contextmenu on mac and allow ctrl+click
+ return false;
+ }).click(function() {
+ return false;
+ }).mousedown(function() {
+ if (button.call) {
+ eval(button.call)();
+ }
+ setTimeout(function() { markup(button) },1);
+ return false;
+ }).hover(function() {
+ $('> ul', this).show();
+ $(document).one('click', function() { // close dropmenu if click outside
+ $('ul ul', header).hide();
+ }
+ );
+ }, function() {
+ $('> ul', this).hide();
+ }
+ ).appendTo(ul);
+ if (button.dropMenu) {
+ levels.push(i);
+ $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu));
+ }
+ }
+ });
+ levels.pop();
+ return ul;
+ }
+
+ // markItUp! markups
+ function magicMarkups(string) {
+ if (string) {
+ string = string.toString();
+ string = string.replace(/\(\!\(([\s\S]*?)\)\!\)/g,
+ function(x, a) {
+ var b = a.split('|!|');
+ if (altKey === true) {
+ return (b[1] !== undefined) ? b[1] : b[0];
+ } else {
+ return (b[1] === undefined) ? "" : b[0];
+ }
+ }
+ );
+ // [![prompt]!], [![prompt:!:value]!]
+ string = string.replace(/\[\!\[([\s\S]*?)\]\!\]/g,
+ function(x, a) {
+ var b = a.split(':!:');
+ if (abort === true) {
+ return false;
+ }
+ value = prompt(b[0], (b[1]) ? b[1] : '');
+ if (value === null) {
+ abort = true;
+ }
+ return value;
+ }
+ );
+ return string;
+ }
+ return "";
+ }
+
+ // prepare action
+ function prepare(action) {
+ if ($.isFunction(action)) {
+ action = action(hash);
+ }
+ return magicMarkups(action);
+ }
+
+ // build block to insert
+ function build(string) {
+ openWith = prepare(clicked.openWith);
+ placeHolder = prepare(clicked.placeHolder);
+ replaceWith = prepare(clicked.replaceWith);
+ closeWith = prepare(clicked.closeWith);
+ if (replaceWith !== "") {
+ block = openWith + replaceWith + closeWith;
+ } else if (selection === '' && placeHolder !== '') {
+ block = openWith + placeHolder + closeWith;
+ } else {
+ block = openWith + (string||selection) + closeWith;
+ }
+ return { block:block,
+ openWith:openWith,
+ replaceWith:replaceWith,
+ placeHolder:placeHolder,
+ closeWith:closeWith
+ };
+ }
+
+ // define markup to insert
+ function markup(button) {
+ var len, j, n, i;
+ hash = clicked = button;
+ get();
+
+ $.extend(hash, { line:"",
+ root:options.root,
+ textarea:textarea,
+ selection:(selection||''),
+ caretPosition:caretPosition,
+ ctrlKey:ctrlKey,
+ shiftKey:shiftKey,
+ altKey:altKey
+ }
+ );
+ // callbacks before insertion
+ prepare(options.beforeInsert);
+ prepare(clicked.beforeInsert);
+ if (ctrlKey === true && shiftKey === true) {
+ prepare(clicked.beforeMultiInsert);
+ }
+ $.extend(hash, { line:1 });
+
+ if (ctrlKey === true && shiftKey === true) {
+ lines = selection.split(/\r?\n/);
+ for (j = 0, n = lines.length, i = 0; i < n; i++) {
+ if ($.trim(lines[i]) !== '') {
+ $.extend(hash, { line:++j, selection:lines[i] } );
+ lines[i] = build(lines[i]).block;
+ } else {
+ lines[i] = "";
+ }
+ }
+ string = { block:lines.join('\n')};
+ start = caretPosition;
+ len = string.block.length + (($.browser.opera) ? n : 0);
+ } else if (ctrlKey === true) {
+ string = build(selection);
+ start = caretPosition + string.openWith.length;
+ len = string.block.length - string.openWith.length - string.closeWith.length;
+ len -= fixIeBug(string.block);
+ } else if (shiftKey === true) {
+ string = build(selection);
+ start = caretPosition;
+ len = string.block.length;
+ len -= fixIeBug(string.block);
+ } else {
+ string = build(selection);
+ start = caretPosition + string.block.length ;
+ len = 0;
+ start -= fixIeBug(string.block);
+ }
+ if ((selection === '' && string.replaceWith === '')) {
+ caretOffset += fixOperaBug(string.block);
+
+ start = caretPosition + string.openWith.length;
+ len = string.block.length - string.openWith.length - string.closeWith.length;
+
+ caretOffset = $$.val().substring(caretPosition, $$.val().length).length;
+ caretOffset -= fixOperaBug($$.val().substring(0, caretPosition));
+ }
+ $.extend(hash, { caretPosition:caretPosition, scrollPosition:scrollPosition } );
+
+ if (string.block !== selection && abort === false) {
+ insert(string.block);
+ set(start, len);
+ } else {
+ caretOffset = -1;
+ }
+ get();
+
+ $.extend(hash, { line:'', selection:selection });
+
+ // callbacks after insertion
+ if (ctrlKey === true && shiftKey === true) {
+ prepare(clicked.afterMultiInsert);
+ }
+ prepare(clicked.afterInsert);
+ prepare(options.afterInsert);
+
+ // refresh preview if opened
+ if (previewWindow && options.previewAutoRefresh) {
+ refreshPreview();
+ }
+
+ // reinit keyevent
+ shiftKey = altKey = ctrlKey = abort = false;
+ }
+
+ // Substract linefeed in Opera
+ function fixOperaBug(string) {
+ if ($.browser.opera) {
+ return string.length - string.replace(/\n*/g, '').length;
+ }
+ return 0;
+ }
+ // Substract linefeed in IE
+ function fixIeBug(string) {
+ if ($.browser.msie) {
+ return string.length - string.replace(/\r*/g, '').length;
+ }
+ return 0;
+ }
+
+ // add markup
+ function insert(block) {
+ if (document.selection) {
+ var newSelection = document.selection.createRange();
+ newSelection.text = block;
+ } else {
+ $$.val($$.val().substring(0, caretPosition) + block + $$.val().substring(caretPosition + selection.length, $$.val().length));
+ }
+ }
+
+ // set a selection
+ function set(start, len) {
+ if (textarea.createTextRange){
+ // quick fix to make it work on Opera 9.5
+ if ($.browser.opera && $.browser.version >= 9.5 && len == 0) {
+ return false;
+ }
+ range = textarea.createTextRange();
+ range.collapse(true);
+ range.moveStart('character', start);
+ range.moveEnd('character', len);
+ range.select();
+ } else if (textarea.setSelectionRange ){
+ textarea.setSelectionRange(start, start + len);
+ }
+ textarea.scrollTop = scrollPosition;
+ textarea.focus();
+ }
+
+ // get the selection
+ function get() {
+ textarea.focus();
+
+ scrollPosition = textarea.scrollTop;
+ if (document.selection) {
+ selection = document.selection.createRange().text;
+ if ($.browser.msie) { // ie
+ var range = document.selection.createRange(), rangeCopy = range.duplicate();
+ rangeCopy.moveToElementText(textarea);
+ caretPosition = -1;
+ while(rangeCopy.inRange(range)) { // fix most of the ie bugs with linefeeds...
+ rangeCopy.moveStart('character');
+ caretPosition ++;
+ }
+ } else { // opera
+ caretPosition = textarea.selectionStart;
+ }
+ } else { // gecko & webkit
+ caretPosition = textarea.selectionStart;
+ selection = $$.val().substring(caretPosition, textarea.selectionEnd);
+ }
+ return selection;
+ }
+
+ // open preview window
+ function preview() {
+ if (!previewWindow || previewWindow.closed) {
+ if (options.previewInWindow) {
+ previewWindow = window.open('', 'preview', options.previewInWindow);
+ } else {
+ iFrame = $('<iframe class="markItUpPreviewFrame"></iframe>');
+ if (options.previewPosition == 'after') {
+ iFrame.insertAfter(footer);
+ } else {
+ iFrame.insertBefore(header);
+ }
+ previewWindow = iFrame[iFrame.length - 1].contentWindow || frame[iFrame.length - 1];
+ }
+ } else if (altKey === true) {
+ // Thx Stephen M. Redd for the IE8 fix
+ if (iFrame) {
+ iFrame.remove();
+ } else {
+ previewWindow.close();
+ }
+ previewWindow = iFrame = false;
+ }
+ if (!options.previewAutoRefresh) {
+ refreshPreview();
+ }
+ }
+
+ // refresh Preview window
+ function refreshPreview() {
+ renderPreview();
+ }
+
+ function renderPreview() {
+ var phtml;
+ if (options.previewParserPath !== '') {
+ $.ajax( {
+ type: 'POST',
+ url: options.previewParserPath,
+// data: options.previewParserVar+'='+encodeURIComponent($$.val()),
+ data: options.previewParserVar+'='+encodeURIComponent($$.val()) +
+ ';markup_format=' + get_format_from_markup_id($$.attr('id')),
+ success: function(data) {
+ writeInPreview( localize(data, 1) );
+ }
+ } );
+ } else {
+ if (!template) {
+ alert('ajax not template');
+ $.ajax( {
+ url: options.previewTemplatePath,
+ success: function(data) {
+ writeInPreview( localize(data, 1).replace(/<!-- content -->/g, $$.val()) );
+ }
+ } );
+ }
+ }
+ return false;
+ }
+
+ function writeInPreview(data) {
+ if (previewWindow.document) {
+ try {
+ sp = previewWindow.document.documentElement.scrollTop
+ } catch(e) {
+ sp = 0;
+ }
+ previewWindow.document.open();
+ previewWindow.document.write(data);
+ previewWindow.document.close();
+ previewWindow.document.documentElement.scrollTop = sp;
+ }
+ if (options.previewInWindow) {
+ previewWindow.focus();
+ }
+ }
+
+ // set keys pressed
+ function keyPressed(e) {
+ shiftKey = e.shiftKey;
+ altKey = e.altKey;
+ ctrlKey = (!(e.altKey && e.ctrlKey)) ? e.ctrlKey : false;
+
+ if (e.type === 'keydown') {
+ if (ctrlKey === true) {
+ li = $("a[accesskey="+String.fromCharCode(e.keyCode)+"]", header).parent('li');
+ if (li.length !== 0) {
+ ctrlKey = false;
+ setTimeout(function() {
+ li.triggerHandler('mousedown');
+ },1);
+ return false;
+ }
+ }
+ if (e.keyCode === 13 || e.keyCode === 10) { // Enter key
+ if (ctrlKey === true) { // Enter + Ctrl
+ ctrlKey = false;
+ markup(options.onCtrlEnter);
+ return options.onCtrlEnter.keepDefault;
+ } else if (shiftKey === true) { // Enter + Shift
+ shiftKey = false;
+ markup(options.onShiftEnter);
+ return options.onShiftEnter.keepDefault;
+ } else { // only Enter
+ markup(options.onEnter);
+ return options.onEnter.keepDefault;
+ }
+ }
+ if (e.keyCode === 9) { // Tab key
+ if (shiftKey == true || ctrlKey == true || altKey == true) { // Thx Dr Floob.
+ return false;
+ }
+ if (caretOffset !== -1) {
+ get();
+ caretOffset = $$.val().length - caretOffset;
+ set(caretOffset, 0);
+ caretOffset = -1;
+ return false;
+ } else {
+ markup(options.onTab);
+ return options.onTab.keepDefault;
+ }
+ }
+ }
+ }
+
+ init();
+ });
+ };
+
+ $.fn.markItUpRemove = function() {
+ return this.each(function() {
+ var $$ = $(this).unbind().removeClass('markItUpEditor');
+ $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$);
+ }
+ );
+ };
+
+ $.markItUp = function(settings) {
+ var options = { target:false };
+ $.extend(options, settings);
+ if (options.target) {
+ return $(options.target).each(function() {
+ $(this).focus();
+ $(this).trigger('insertion', [options]);
+ });
+ } else {
+ $('textarea').trigger('insertion', [options]);
+ }
+ };
+})(jQuery);
View
5 markitup_field/static/markitup/preview.css
@@ -0,0 +1,5 @@
+/* preview style examples */
+body {
+ background-color:#EFEFEF;
+ font:70% Verdana, Arial, Helvetica, sans-serif;
+}
View
BIN  markitup_field/static/markitup/sets/default/images/bold.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/clean.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/image.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/italic.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/link.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/picture.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/preview.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/default/images/stroke.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
27 markitup_field/static/markitup/sets/default/set.js
@@ -0,0 +1,27 @@
+// ----------------------------------------------------------------------------
+// markItUp!
+// ----------------------------------------------------------------------------
+// Copyright (C) 2008 Jay Salvat
+// http://markitup.jaysalvat.com/
+// ----------------------------------------------------------------------------
+// Html tags
+// http://en.wikipedia.org/wiki/html
+// ----------------------------------------------------------------------------
+// Basic set. Feel free to add more tags
+// ----------------------------------------------------------------------------
+mySettings = {
+ onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'},
+ onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>'},
+ onTab: {keepDefault:false, replaceWith:' '},
+ markupSet: [
+ {name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' },
+ {name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)' },
+ {name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' },
+ {separator:'---------------' },
+ {name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' },
+ {name:'Link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
+ {separator:'---------------' },
+ {name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } },
+ {name:'Preview', className:'preview', call:'preview'}
+ ]
+}
View
27 markitup_field/static/markitup/sets/default/style.css
@@ -0,0 +1,27 @@
+/* -------------------------------------------------------------------
+// markItUp!
+// By Jay Salvat - http://markitup.jaysalvat.com/
+// ------------------------------------------------------------------*/
+.markItUp .markItUpButton1 a {
+ background-image:url(images/bold.png);
+}
+.markItUp .markItUpButton2 a {
+ background-image:url(images/italic.png);
+}
+.markItUp .markItUpButton3 a {
+ background-image:url(images/stroke.png);
+}
+
+.markItUp .markItUpButton4 a {
+ background-image:url(images/picture.png);
+}
+.markItUp .markItUpButton5 a {
+ background-image:url(images/link.png);
+}
+
+.markItUp .markItUpButton6 a {
+ background-image:url(images/clean.png);
+}
+.markItUp .preview a {
+ background-image:url(images/preview.png);
+}
View
BIN  markitup_field/static/markitup/sets/markdown/images/bold.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/code.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h4.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h5.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/h6.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/italic.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/link.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/list-bullet.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/list-numeric.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/picture.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/preview.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/markdown/images/quotes.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
11 markitup_field/static/markitup/sets/markdown/readme.txt
@@ -0,0 +1,11 @@
+Markup language:
+Markdown
+
+Description:
+A basic Markdown markup set with Headings, Bold, Italic, Picture, Link, List, Quotes, Code, Preview button.
+
+Install:
+- Download the zip file
+- Unzip it in your markItUp! sets folder
+- Modify your JS link to point at this set.js
+- Modify your CSS link to point at this style.css
View
54 markitup_field/static/markitup/sets/markdown/set.js
@@ -0,0 +1,54 @@
+// -------------------------------------------------------------------
+// markItUp!
+// -------------------------------------------------------------------
+// Copyright (C) 2008 Jay Salvat
+// http://markitup.jaysalvat.com/
+// -------------------------------------------------------------------
+// MarkDown tags example
+// http://en.wikipedia.org/wiki/Markdown
+// http://daringfireball.net/projects/markdown/
+// -------------------------------------------------------------------
+// Feel free to add more tags
+// -------------------------------------------------------------------
+//alert('markdown set js');
+mySettings = {
+ onShiftEnter: {keepDefault:false, openWith:'\n\n'},
+ markupSet: [
+ {name:'First Level Heading', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
+ {name:'Second Level Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
+ {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...' },
+ {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
+ {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
+ {name:'Heading 6', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
+ {separator:'---------------' },
+ {name:'Bold', key:'B', openWith:'**', closeWith:'**'},
+ {name:'Italic', key:'I', openWith:'_', closeWith:'_'},
+ {separator:'---------------' },
+ {name:'Bulleted List', openWith:'- ' },
+ {name:'Numeric List', openWith:function(markItUp) {
+ return markItUp.line+'. ';
+ }},
+ {separator:'---------------' },
+ {name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
+ {name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
+ {separator:'---------------'},
+ {name:'Quotes', openWith:'> '},
+ {name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'},
+ {separator:'---------------'},
+ {name:'Preview', call:'preview', className:"preview"}
+ ]
+}
+
+// mIu nameSpace to avoid conflict.
+miu = {
+ markdownTitle: function(markItUp, char) {
+ heading = '';
+ n = $.trim(markItUp.selection||markItUp.placeHolder).length;
+ // work around bug in python-markdown where header underlines must be at least 3 chars
+ if (n < 3) { n = 3; }
+ for(i = 0; i < n; i++) {
+ heading += char;
+ }
+ return '\n'+heading;
+ }
+}
View
54 markitup_field/static/markitup/sets/markdown/style.css
@@ -0,0 +1,54 @@
+/* -------------------------------------------------------------------
+// markItUp!
+// By Jay Salvat - http://markitup.jaysalvat.com/
+// ------------------------------------------------------------------*/
+.markItUp .markItUpButton1 a {
+ background-image:url(images/h1.png);
+}
+.markItUp .markItUpButton2 a {
+ background-image:url(images/h2.png);
+}
+.markItUp .markItUpButton3 a {
+ background-image:url(images/h3.png);
+}
+.markItUp .markItUpButton4 a {
+ background-image:url(images/h4.png);
+}
+.markItUp .markItUpButton5 a {
+ background-image:url(images/h5.png);
+}
+.markItUp .markItUpButton6 a {
+ background-image:url(images/h6.png);
+}
+
+.markItUp .markItUpButton7 a {
+ background-image:url(images/bold.png);
+}
+.markItUp .markItUpButton8 a {
+ background-image:url(images/italic.png);
+}
+
+.markItUp .markItUpButton9 a {
+ background-image:url(images/list-bullet.png);
+}
+.markItUp .markItUpButton10 a {
+ background-image:url(images/list-numeric.png);
+}
+
+.markItUp .markItUpButton11 a {
+ background-image:url(images/picture.png);
+}
+.markItUp .markItUpButton12 a {
+ background-image:url(images/link.png);
+}
+
+.markItUp .markItUpButton13 a {
+ background-image:url(images/quotes.png);
+}
+.markItUp .markItUpButton14 a {
+ background-image:url(images/code.png);
+}
+
+.markItUp .preview a {
+ background-image:url(images/preview.png);
+}
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/bold.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/close.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/code.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h1.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h2.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h3.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h4.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h5.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/h6.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/italic.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/link.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/list-bullet.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/list-numeric.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/picture.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/preview.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/restructuredtext/images/quotes.png
Diff not rendered
View
53 markitup_field/static/markitup/sets/restructuredtext/set.js
@@ -0,0 +1,53 @@
+// -------------------------------------------------------------------
+// markItUp!
+// -------------------------------------------------------------------
+// Copyright (C) 2008 Jay Salvat
+// http://markitup.jaysalvat.com/
+// -------------------------------------------------------------------
+// ReStructured Text
+// http://docutils.sourceforge.net/
+// http://docutils.sourceforge.net/rst.html
+// -------------------------------------------------------------------
+// Mark Renron <indexofire@gmail.com>
+// http://www.indexofire.com
+// -------------------------------------------------------------------
+// Jannis Leidel <jannis@leidel.info>
+// http://enn.io
+// -------------------------------------------------------------------
+mySettings = {
+ nameSpace: 'ReST',
+ onShiftEnter: {keepDefault:false, openWith:'\n\n'},
+ onTab: {keepDefault:false, replaceWith:' '},
+ markupSet: [
+ {name:'Level 1 Heading', key:'1', placeHolder:'Your title Here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '#'); } },
+ {name:'Level 2 Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '*'); } },
+ {name:'Level 3 Heading', key:'3', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '='); } },
+ {name:'Level 4 Heading', key:'4', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-'); } },
+ {name:'Level 5 Heading', key:'5', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '^'); } },
+ {name:'Level 6 Heading', key:'6', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '"'); } },
+ {separator:'---------------' },
+ {name:'Bold', key:'B', openWith:'**', closeWith:'**', placeHolder:'Input Your Bold Text Here...'},
+ {name:'Italic', key:'I', openWith:'`', closeWith:'`', placeHolder:'Input Your Italic Text Here...'},
+ {separator:'---------------' },
+ {name:'Bulleted List', openWith:'- ' },
+ {name:'Numeric List', openWith:function(markItUp) { return markItUp.line+'. '; } },
+ {separator:'---------------' },
+ {name:'Picture', key:'P', openWith:'.. image:: ', placeHolder:'Link Your Images Here...'},
+ {name:'Link', key:"L", openWith:'`', closeWith:'`_ \n\n.. _`Link Name`: [![Url:!:http://]!]', placeHolder:'Link Name' },
+ {name:'Quotes', openWith:' '},
+ {name:'Code', openWith:'\n:: \n\n '},
+ {name:'Preview', className:'preview', call:'preview'}
+ ]
+};
+
+// mIu nameSpace to avoid conflict.
+miu = {
+ markdownTitle: function(markItUp, character) {
+ heading = '';
+ n = $.trim(markItUp.selection||markItUp.placeHolder).length;
+ for(i = 0; i < n; i++) {
+ heading += character;
+ }
+ return '\n'+heading;
+ }
+};
View
53 markitup_field/static/markitup/sets/restructuredtext/style.css
@@ -0,0 +1,53 @@
+/* -------------------------------------------------------------------
+// ReST!
+// ------------------------------------------------------------------*/
+.ReST .markItUpButton1 a {
+ background-image:url(images/h1.png);
+}
+.ReST .markItUpButton2 a {
+ background-image:url(images/h2.png);
+}
+.ReST .markItUpButton3 a {
+ background-image:url(images/h3.png);
+}
+.ReST .markItUpButton4 a {
+ background-image:url(images/h4.png);
+}
+.ReST .markItUpButton5 a {
+ background-image:url(images/h5.png);
+}
+.ReST .markItUpButton6 a {
+ background-image:url(images/h6.png);
+}
+
+.ReST .markItUpButton7 a {
+ background-image:url(images/bold.png);
+}
+.ReST .markItUpButton8 a {
+ background-image:url(images/italic.png);
+}
+
+.ReST .markItUpButton9 a {
+ background-image:url(images/list-bullet.png);
+}
+.ReST .markItUpButton10 a {
+ background-image:url(images/list-numeric.png);
+}
+
+.ReST .markItUpButton11 a {
+ background-image:url(images/picture.png);
+}
+.ReST .markItUpButton12 a {
+ background-image:url(images/link.png);
+}
+
+.ReST .markItUpButton13 a {
+ background-image:url(images/quotes.png);
+}
+.ReST .markItUpButton14 a {
+ background-image:url(images/code.png);
+}
+
+.ReST .preview a {
+ background-image:url(images/preview.png);
+}
View
1  markitup_field/static/markitup/sets/style.css
@@ -0,0 +1 @@
+.default .markItUp .markItUpButton1 a{background-image:url(default/images/bold.png)}.default .markItUp .markItUpButton2 a{background-image:url(default/images/italic.png)}.default .markItUp .markItUpButton3 a{background-image:url(default/images/stroke.png)}.default .markItUp .markItUpButton4 a{background-image:url(default/images/picture.png)}.default .markItUp .markItUpButton5 a{background-image:url(default/images/link.png)}.default .markItUp .markItUpButton6 a{background-image:url(default/images/clean.png)}.default .markItUp .preview a{background-image:url(default/images/preview.png)}.markdown .markItUp .markItUpButton1 a{background-image:url(markdown/images/h1.png)}.markdown .markItUp .markItUpButton2 a{background-image:url(markdown/images/h2.png)}.markdown .markItUp .markItUpButton3 a{background-image:url(markdown/images/h3.png)}.markdown .markItUp .markItUpButton4 a{background-image:url(markdown/images/h4.png)}.markdown .markItUp .markItUpButton5 a{background-image:url(markdown/images/h5.png)}.markdown .markItUp .markItUpButton6 a{background-image:url(markdown/images/h6.png)}.markdown .markItUp .markItUpButton7 a{background-image:url(markdown/images/bold.png)}.markdown .markItUp .markItUpButton8 a{background-image:url(markdown/images/italic.png)}.markdown .markItUp .markItUpButton9 a{background-image:url(markdown/images/list-bullet.png)}.markdown .markItUp .markItUpButton10 a{background-image:url(markdown/images/list-numeric.png)}.markdown .markItUp .markItUpButton11 a{background-image:url(markdown/images/picture.png)}.markdown .markItUp .markItUpButton12 a{background-image:url(markdown/images/link.png)}.markdown .markItUp .markItUpButton13 a{background-image:url(markdown/images/quotes.png)}.markdown .markItUp .markItUpButton14 a{background-image:url(markdown/images/code.png)}.markdown .markItUp .preview a{background-image:url(markdown/images/preview.png)}.restructuredtext .ReST .markItUpButton1 a{background-image:url(restructuredtext/images/h1.png)}.restructuredtext .ReST .markItUpButton2 a{background-image:url(restructuredtext/images/h2.png)}.restructuredtext .ReST .markItUpButton3 a{background-image:url(restructuredtext/images/h3.png)}.restructuredtext .ReST .markItUpButton4 a{background-image:url(restructuredtext/images/h4.png)}.restructuredtext .ReST .markItUpButton5 a{background-image:url(restructuredtext/images/h5.png)}.restructuredtext .ReST .markItUpButton6 a{background-image:url(restructuredtext/images/h6.png)}.restructuredtext .ReST .markItUpButton7 a{background-image:url(restructuredtext/images/bold.png)}.restructuredtext .ReST .markItUpButton8 a{background-image:url(restructuredtext/images/italic.png)}.restructuredtext .ReST .markItUpButton9 a{background-image:url(restructuredtext/images/list-bullet.png)}.restructuredtext .ReST .markItUpButton10 a{background-image:url(restructuredtext/images/list-numeric.png)}.restructuredtext .ReST .markItUpButton11 a{background-image:url(restructuredtext/images/picture.png)}.restructuredtext .ReST .markItUpButton12 a{background-image:url(restructuredtext/images/link.png)}.restructuredtext .ReST .markItUpButton13 a{background-image:url(restructuredtext/images/quotes.png)}.restructuredtext .ReST .markItUpButton14 a{background-image:url(restructuredtext/images/code.png)}.restructuredtext .ReST .preview a{background-image:url(restructuredtext/images/preview.png)}.textile .markItUp .markItUpButton1 a{background-image:url(textile/images/h1.png)}.textile .markItUp .markItUpButton2 a{background-image:url(textile/images/h2.png)}.textile .markItUp .markItUpButton3 a{background-image:url(textile/images/h3.png)}.textile .markItUp .markItUpButton4 a{background-image:url(textile/images/h4.png)}.textile .markItUp .markItUpButton5 a{background-image:url(textile/images/h5.png)}.textile .markItUp .markItUpButton6 a{background-image:url(textile/images/h6.png)}.textile .markItUp .markItUpButton7 a{background-image:url(textile/images/paragraph.png)}.textile .markItUp .markItUpButton8 a{background-image:url(textile/images/bold.png)}.textile .markItUp .markItUpButton9 a{background-image:url(textile/images/italic.png)}.textile .markItUp .markItUpButton10 a{background-image:url(textile/images/stroke.png)}.textile .markItUp .markItUpButton11 a{background-image:url(textile/images/list-bullet.png)}.textile .markItUp .markItUpButton12 a{background-image:url(textile/images/list-numeric.png)}.textile .markItUp .markItUpButton13 a{background-image:url(textile/images/picture.png)}.textile .markItUp .markItUpButton14 a{background-image:url(textile/images/link.png)}.textile .markItUp .markItUpButton15 a{background-image:url(textile/images/quotes.png)}.textile .markItUp .markItUpButton16 a{background-image:url(textile/images/code.png)}.textile .markItUp .preview a{background-image:url(textile/images/preview.png)}
View
BIN  markitup_field/static/markitup/sets/textile/images/bold.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/code.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h1.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h2.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h3.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h4.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h5.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/h6.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/italic.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/link.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/list-bullet.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/list-numeric.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/paragraph.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/picture.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/preview.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/quotes.png
Diff not rendered
View
BIN  markitup_field/static/markitup/sets/textile/images/stroke.png
Diff not rendered
View
11 markitup_field/static/markitup/sets/textile/readme.txt
@@ -0,0 +1,11 @@
+Markup language:
+Textile
+
+Description:
+A basic Textile markup set with Headings, Bold, Italic, Stroke through, Picture, Link, List, Quotes, Code, Preview button.
+
+Install:
+- Download the zip file
+- Unzip it in your markItUp! sets folder
+- Modify your JS link to point at this set.js
+- Modify your CSS link to point at this style.css
View
39 markitup_field/static/markitup/sets/textile/set.js
@@ -0,0 +1,39 @@
+// -------------------------------------------------------------------
+// markItUp!
+// -------------------------------------------------------------------
+// Copyright (C) 2008 Jay Salvat
+// http://markitup.jaysalvat.com/
+// -------------------------------------------------------------------
+// Textile tags example
+// http://en.wikipedia.org/wiki/Textile_(markup_language)
+// http://www.textism.com/
+// -------------------------------------------------------------------
+// Feel free to add more tags
+// -------------------------------------------------------------------
+mySettings = {
+ onShiftEnter: {keepDefault:false, replaceWith:'\n\n'},
+ markupSet: [
+ {name:'Heading 1', key:'1', openWith:'h1(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Heading 2', key:'2', openWith:'h2(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Heading 3', key:'3', openWith:'h3(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Heading 4', key:'4', openWith:'h4(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Heading 5', key:'5', openWith:'h5(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Heading 6', key:'6', openWith:'h6(!(([![Class]!]))!). ', placeHolder:'Your title here...' },
+ {name:'Paragraph', key:'P', openWith:'p(!(([![Class]!]))!). '},
+ {separator:'---------------' },
+ {name:'Bold', key:'B', closeWith:'*', openWith:'*'},
+ {name:'Italic', key:'I', closeWith:'_', openWith:'_'},
+ {name:'Stroke through', key:'S', closeWith:'-', openWith:'-'},
+ {separator:'---------------' },
+ {name:'Bulleted list', openWith:'(!(* |!|*)!)'},
+ {name:'Numeric list', openWith:'(!(# |!|#)!)'},
+ {separator:'---------------' },
+ {name:'Picture', replaceWith:'![![Source:!:http://]!]([![Alternative text]!])!'},
+ {name:'Link', openWith:'"', closeWith:'([![Title]!])":[![Link:!:http://]!]', placeHolder:'Your text to link here...' },
+ {separator:'---------------' },
+ {name:'Quotes', openWith:'bq(!(([![Class]!])!)). '},
+ {name:'Code', openWith:'@', closeWith:'@'},
+ {separator:'---------------' },
+ {name:'Preview', call:'preview', className:'preview'}
+ ]
+}
View
60 markitup_field/static/markitup/sets/textile/style.css
@@ -0,0 +1,60 @@
+/* -------------------------------------------------------------------
+// markItUp!
+// By Jay Salvat - http://markitup.jaysalvat.com/
+// ------------------------------------------------------------------*/
+.markItUp .markItUpButton1 a {
+ background-image:url(images/h1.png);
+}
+.markItUp .markItUpButton2 a {
+ background-image:url(images/h2.png);
+}
+.markItUp .markItUpButton3 a {
+ background-image:url(images/h3.png);
+}
+.markItUp .markItUpButton4 a {
+ background-image:url(images/h4.png);
+}
+.markItUp .markItUpButton5 a {
+ background-image:url(images/h5.png);
+}
+.markItUp .markItUpButton6 a {
+ background-image:url(images/h6.png);
+}
+.markItUp .markItUpButton7 a {
+ background-image:url(images/paragraph.png);
+}
+
+.markItUp .markItUpButton8 a {
+ background-image:url(images/bold.png);
+}
+.markItUp .markItUpButton9 a {
+ background-image:url(images/italic.png);
+}
+.markItUp .markItUpButton10 a {
+ background-image:url(images/stroke.png);
+}
+
+.markItUp .markItUpButton11 a {
+ background-image:url(images/list-bullet.png);
+}
+.markItUp .markItUpButton12 a {
+ background-image:url(images/list-numeric.png);
+}
+
+.markItUp .markItUpButton13 a {
+ background-image:url(images/picture.png);
+}
+.markItUp .markItUpButton14 a {
+ background-image:url(images/link.png);
+}
+
+.markItUp .markItUpButton15 a {
+ background-image:url(images/quotes.png);
+}
+.markItUp .markItUpButton16 a {
+ background-image:url(images/code.png);
+}
+
+.markItUp .preview a {
+ background-image:url(images/preview.png);
+}
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-container.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-bbcode.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-dotclear.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-html.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-json.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-markdown.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-textile.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-wiki.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor-xml.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/bg-editor.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/handle.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/menu.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/markitup/images/submenu.png
Diff not rendered
View
148 markitup_field/static/markitup/skins/markitup/style.css
@@ -0,0 +1,148 @@
+/* -------------------------------------------------------------------
+// markItUp! Universal MarkUp Engine, JQuery plugin
+// By Jay Salvat - http://markitup.jaysalvat.com/
+// ------------------------------------------------------------------*/
+.markItUp * {
+ margin:0px; padding:0px;
+ outline:none;
+}
+.markItUp a:link,
+.markItUp a:visited {
+ color:#000;
+ text-decoration:none;
+}
+.markItUp {
+ width:700px;
+ margin:5px 0 5px 0;
+ border:5px solid #F5F5F5;
+}
+.markItUpContainer {
+ border:1px solid #3C769D;
+ background:#FFF url(images/bg-container.png) repeat-x top left;
+ padding:5px 5px 2px 5px;
+ font:11px Verdana, Arial, Helvetica, sans-serif;
+}
+.markItUpEditor {
+ font:12px 'Courier New', Courier, monospace;
+ padding:5px 5px 5px 35px;
+ border:3px solid #3C769D;
+ width:643px;
+ height:320px;
+ background-image:url(images/bg-editor.png);
+ background-repeat:no-repeat;
+ clear:both; display:block;
+ line-height:18px;
+ overflow:auto;
+}
+.markItUpPreviewFrame {
+ overflow:auto;
+ background-color:#FFFFFF;
+ border:1px solid #3C769D;
+ width:99.9%;
+ height:300px;
+ margin:5px 0;
+}
+.markItUpFooter {
+ width:100%;
+ cursor:n-resize;
+}
+.markItUpResizeHandle {
+ overflow:hidden;
+ width:22px; height:5px;
+ margin-left:auto;
+ margin-right:auto;
+ background-image:url(images/handle.png);
+ cursor:n-resize;
+}
+/***************************************************************************************/
+/* first row of buttons */
+.markItUpHeader ul li {
+ list-style:none;
+ float:left;
+ position:relative;
+}
+.markItUpHeader ul li ul{
+ display:none;
+}
+.markItUpHeader ul li:hover > ul{
+ display:block;
+}
+.markItUpHeader ul .markItUpDropMenu {
+ background:transparent url(images/menu.png) no-repeat 115% 50%;
+ margin-right:5px;
+}
+.markItUpHeader ul .markItUpDropMenu li {
+ margin-right:0px;
+}
+.markItUpHeader ul .markItUpSeparator {
+ margin:0 10px;
+ width:1px;
+ height:16px;
+ overflow:hidden;
+ background-color:#CCC;
+}
+.markItUpHeader ul ul .markItUpSeparator {
+ width:auto; height:1px;
+ margin:0px;
+}
+/* next rows of buttons */
+.markItUpHeader ul ul {
+ display:none;
+ position:absolute;
+ top:18px; left:0px;
+ background:#F5F5F5;
+ border:1px solid #3C769D;
+ height:inherit;
+}
+.markItUpHeader ul ul li {
+ float:none;
+ border-bottom:1px solid #3C769D;
+}
+.markItUpHeader ul ul .markItUpDropMenu {
+ background:#F5F5F5 url(images/submenu.png) no-repeat 100% 50%;
+}
+/* next rows of buttons */
+.markItUpHeader ul ul ul {
+ position:absolute;
+ top:-1px; left:150px;
+}
+.markItUpHeader ul ul ul li {
+ float:none;
+}
+.markItUpHeader ul a {
+ display:block;
+ width:16px; height:16px;
+ text-indent:-10000px;
+ background-repeat:no-repeat;
+ padding:3px;
+ margin:0px;
+}
+.markItUpHeader ul ul a {
+ display:block;
+ padding-left:0px;
+ text-indent:0;
+ width:120px;
+ padding:5px 5px 5px 25px;
+ background-position:2px 50%;
+}
+.markItUpHeader ul ul a:hover {
+ color:#FFF;
+ background-color:#3C769D;
+}
+/***************************************************************************************/
+.html .markItUpEditor {
+ background-image:url(images/bg-editor-html.png);
+}
+.markdown .markItUpEditor {
+ background-image:url(images/bg-editor-markdown.png);
+}
+.textile .markItUpEditor {
+ background-image:url(images/bg-editor-textile.png);
+}
+.bbcode .markItUpEditor {
+ background-image:url(images/bg-editor-bbcode.png);
+}
+.wiki .markItUpEditor,
+.dotclear .markItUpEditor {
+ background-image:url(images/bg-editor-wiki.png);
+}
View
BIN  markitup_field/static/markitup/skins/simple/images/handle.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/simple/images/menu.png
Diff not rendered
View
BIN  markitup_field/static/markitup/skins/simple/images/submenu.png
Diff not rendered
View
118 markitup_field/static/markitup/skins/simple/style.css
@@ -0,0 +1,118 @@
+/* -------------------------------------------------------------------
+// markItUp! Universal MarkUp Engine, JQuery plugin
+// By Jay Salvat - http://markitup.jaysalvat.com/
+// ------------------------------------------------------------------*/
+.markItUp * {
+ margin:0px; padding:0px;
+ outline:none;
+}
+.markItUp a:link,
+.markItUp a:visited {
+ color:#000;
+ text-decoration:none;
+}
+.markItUp {
+ width:700px;
+ margin:5px 0 5px 0;
+}
+.markItUpContainer {
+ font:11px Verdana, Arial, Helvetica, sans-serif;
+}
+.markItUpEditor {
+ font:12px 'Courier New', Courier, monospace;
+ padding:5px;
+ width:690px;
+ height:320px;
+ clear:both; display:block;
+ line-height:18px;
+ overflow:auto;
+}
+.markItUpPreviewFrame {
+ overflow:auto;
+ background-color:#FFF;
+ width:99.9%;
+ height:300px;
+ margin:5px 0;
+}
+.markItUpFooter {
+ width:100%;
+}
+.markItUpResizeHandle {
+ overflow:hidden;
+ width:22px; height:5px;
+ margin-left:auto;
+ margin-right:auto;
+ background-image:url(images/handle.png);
+ cursor:n-resize;
+}
+/***************************************************************************************/
+/* first row of buttons */
+.markItUpHeader ul li {
+ list-style:none;
+ float:left;
+ position:relative;
+}
+.markItUpHeader ul li:hover > ul{
+ display:block;
+}
+.markItUpHeader ul .markItUpDropMenu {
+ background:transparent url(images/menu.png) no-repeat 115% 50%;
+ margin-right:5px;
+}
+.markItUpHeader ul .markItUpDropMenu li {
+ margin-right:0px;
+}
+/* next rows of buttons */
+.markItUpHeader ul ul {
+ display:none;
+ position:absolute;
+ top:18px; left:0px;
+ background:#FFF;
+ border:1px solid #000;
+}
+.markItUpHeader ul ul li {
+ float:none;
+ border-bottom:1px solid #000;
+}
+.markItUpHeader ul ul .markItUpDropMenu {
+ background:#FFF url(images/submenu.png) no-repeat 100% 50%;
+}
+.markItUpHeader ul .markItUpSeparator {
+ margin:0 10px;
+ width:1px;
+ height:16px;
+ overflow:hidden;
+ background-color:#CCC;
+}
+.markItUpHeader ul ul .markItUpSeparator {
+ width:auto; height:1px;
+ margin:0px;
+}
+/* next rows of buttons */
+.markItUpHeader ul ul ul {
+ position:absolute;
+ top:-1px; left:150px;
+}
+.markItUpHeader ul ul ul li {
+ float:none;
+}
+.markItUpHeader ul a {
+ display:block;
+ width:16px; height:16px;
+ text-indent:-10000px;
+ background-repeat:no-repeat;
+ padding:3px;
+ margin:0px;
+}
+.markItUpHeader ul ul a {
+ display:block;
+ padding-left:0px;
+ text-indent:0;
+ width:120px;
+ padding:5px 5px 5px 25px;
+ background-position:2px 50%;
+}
+.markItUpHeader ul ul a:hover {
+ color:#FFF;
+ background-color:#000;
+}
View
5 markitup_field/static/markitup/templates/preview.css
@@ -0,0 +1,5 @@
+/* preview style examples */
+body {
+ background-color:#EFEFEF;
+ font:70% Verdana, Arial, Helvetica, sans-serif;
+}
View
11 markitup_field/static/markitup/templates/preview.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>markItUp! preview template</title>
+<link rel="stylesheet" type="text/css" href="~/templates/preview.css" />
+</head>
+<body>
+<!-- content -->
+</body>
+</html>
View
77 markitup_field/static/markitup/update_widget.js
@@ -0,0 +1,77 @@
+
+//var STATIC_URL = '/static/';
+//var MARKITUP_PREVIEW_URL = '/markitup/preview/';
+
+var DICE_MARKUP_SELECTOR = ".dice_markup_editor";
+var MARKUP_FORMAT_POSTFIX = '_markup_format';
+
+$(document).ready(function () {
+ setup_markitup_editor();
+ bind_on_format_change();
+});
+
+function bind_on_format_change() {
+ var markup_format_selector = 'select[id$=' + MARKUP_FORMAT_POSTFIX + ']';
+ $(markup_format_selector).change(setup_markitup_editor);
+}
+
+function setup_markitup_editor() {
+ var markup_textareas = $(DICE_MARKUP_SELECTOR);
+
+ markup_textareas.each(function() {
+ var markup_textarea = $(this);
+
+ if (markup_textarea.hasClass("markItUpEditor")) {
+ markup_textarea.markItUpRemove();
+ }
+
+ var markup_format = get_format_from_markup_id(this.id);
+
+ if (markup_format === 'text' || markup_format === 'html') {
+ markup_format = 'default';
+ }
+ $.getScript(STATIC_URL + 'markitup/sets/' + markup_format + '/set.js