django.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.highlight.languages.django"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
  7. dojo._hasResource["dojox.highlight.languages.django"] = true;
  8. dojo.provide("dojox.highlight.languages.django");
  9. dojo.require("dojox.highlight._base");
  10. dojo.require("dojox.highlight.languages.xml");
  11. dojo.require("dojox.highlight.languages.html");
  12. (function(){
  13. var dh = dojox.highlight, dhc = dh.constants, dhl = dh.languages, x = dhl.xml, h = dhl.html;
  14. dhl.django = {
  15. defaultMode: {
  16. contains: ['tag', 'comment', 'doctype', 'template_comment', 'template_tag', 'variable']
  17. },
  18. case_insensitive: true,
  19. modes: [
  20. x.XML_COMMENT,
  21. h.HTML_DOCTYPE,
  22. {
  23. className: 'tag',
  24. lexems: [dhc.IDENT_RE],
  25. keywords: h.HTML_TAGS,
  26. begin: '<[A-Za-z/]', end: '>',
  27. contains: ['attribute', 'template_comment', 'template_tag', 'variable']
  28. },
  29. x.XML_ATTR,
  30. h.HTML_ATTR,
  31. {
  32. className: 'value',
  33. begin: '"', end: '"',
  34. contains: ['template_comment', 'template_tag', 'variable']
  35. },
  36. h.HTML_VALUE,
  37. {
  38. className: 'template_comment',
  39. begin: '\\{\\%\\s*comment\\s*\\%\\}',
  40. end: '\\{\\%\\s*endcomment\\s*\\%\\}'
  41. },
  42. {
  43. className: 'template_comment',
  44. begin: '\\{#', end: '#\\}'
  45. },
  46. {
  47. className: 'template_tag',
  48. begin: '\\{\\%', end: '\\%\\}',
  49. lexems: [dhc.IDENT_RE],
  50. keywords: {
  51. 'comment': 1, 'endcomment': 1, 'load': 1,
  52. 'templatetag': 1, 'ifchanged': 1, 'endifchanged': 1,
  53. 'if': 1, 'endif': 1, 'firstof': 1, 'for': 1,
  54. 'endfor': 1, 'in': 1, 'ifnotequal': 1,
  55. 'endifnotequal': 1, 'widthratio': 1, 'extends': 1,
  56. 'include': 1, 'spaceless': 1, 'endspaceless': 1,
  57. 'regroup': 1, 'by': 1, 'as': 1, 'ifequal': 1,
  58. 'endifequal': 1, 'ssi': 1, 'now': 1, 'with': 1,
  59. 'cycle': 1, 'url': 1, 'filter': 1, 'endfilter': 1,
  60. 'debug': 1, 'block': 1, 'endblock': 1, 'else': 1
  61. },
  62. contains: ['filter']
  63. },
  64. {
  65. className: 'variable',
  66. begin: '\\{\\{', end: '\\}\\}',
  67. contains: ['filter']
  68. },
  69. {
  70. className: 'filter',
  71. begin: '\\|[A-Za-z]+\\:?', end: '^', excludeEnd: true,
  72. lexems: [dhc.IDENT_RE],
  73. keywords: {
  74. 'truncatewords': 1, 'removetags': 1, 'linebreaksbr': 1,
  75. 'yesno': 1, 'get_digit': 1, 'timesince': 1, 'random': 1,
  76. 'striptags': 1, 'filesizeformat': 1, 'escape': 1,
  77. 'linebreaks': 1, 'length_is': 1, 'ljust': 1, 'rjust': 1,
  78. 'cut': 1, 'urlize': 1, 'fix_ampersands': 1, 'title': 1,
  79. 'floatformat': 1, 'capfirst': 1, 'pprint': 1,
  80. 'divisibleby': 1, 'add': 1, 'make_list': 1,
  81. 'unordered_list': 1, 'urlencode': 1, 'timeuntil': 1,
  82. 'urlizetrunc': 1, 'wordcount': 1, 'stringformat': 1,
  83. 'linenumbers': 1, 'slice': 1, 'date': 1, 'dictsort': 1,
  84. 'dictsortreversed': 1, 'default_if_none': 1,
  85. 'pluralize': 1, 'lower': 1, 'join': 1, 'center': 1,
  86. 'default': 1, 'truncatewords_html': 1, 'upper': 1,
  87. 'length': 1, 'phone2numeric': 1, 'wordwrap': 1, 'time': 1,
  88. 'addslashes': 1, 'slugify': 1, 'first': 1
  89. },
  90. contains: ['argument']
  91. },
  92. {
  93. className: 'argument',
  94. begin: '"', end: '"'
  95. }
  96. ]
  97. };
  98. })();
  99. }