78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
Language: Django
 | 
						|
Description: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
 | 
						|
Requires: xml.js
 | 
						|
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
 | 
						|
Contributors: Ilya Baryshev <baryshev@gmail.com>
 | 
						|
Website: https://www.djangoproject.com
 | 
						|
Category: template
 | 
						|
*/
 | 
						|
 | 
						|
/** @type LanguageFn */
 | 
						|
function django(hljs) {
 | 
						|
  const FILTER = {
 | 
						|
    begin: /\|[A-Za-z]+:?/,
 | 
						|
    keywords: {
 | 
						|
      name:
 | 
						|
        'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
 | 
						|
        'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
 | 
						|
        'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
 | 
						|
        'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
 | 
						|
        'dictsortreversed default_if_none pluralize lower join center default ' +
 | 
						|
        'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
 | 
						|
        'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
 | 
						|
        'localtime utc timezone'
 | 
						|
    },
 | 
						|
    contains: [
 | 
						|
      hljs.QUOTE_STRING_MODE,
 | 
						|
      hljs.APOS_STRING_MODE
 | 
						|
    ]
 | 
						|
  };
 | 
						|
 | 
						|
  return {
 | 
						|
    name: 'Django',
 | 
						|
    aliases: ['jinja'],
 | 
						|
    case_insensitive: true,
 | 
						|
    subLanguage: 'xml',
 | 
						|
    contains: [
 | 
						|
      hljs.COMMENT(/\{%\s*comment\s*%\}/, /\{%\s*endcomment\s*%\}/),
 | 
						|
      hljs.COMMENT(/\{#/, /#\}/),
 | 
						|
      {
 | 
						|
        className: 'template-tag',
 | 
						|
        begin: /\{%/,
 | 
						|
        end: /%\}/,
 | 
						|
        contains: [{
 | 
						|
          className: 'name',
 | 
						|
          begin: /\w+/,
 | 
						|
          keywords: {
 | 
						|
            name:
 | 
						|
                'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
 | 
						|
                'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
 | 
						|
                'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
 | 
						|
                'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
 | 
						|
                'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
 | 
						|
                'plural get_current_language language get_available_languages ' +
 | 
						|
                'get_current_language_bidi get_language_info get_language_info_list localize ' +
 | 
						|
                'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
 | 
						|
                'verbatim'
 | 
						|
          },
 | 
						|
          starts: {
 | 
						|
            endsWithParent: true,
 | 
						|
            keywords: 'in by as',
 | 
						|
            contains: [FILTER],
 | 
						|
            relevance: 0
 | 
						|
          }
 | 
						|
        }]
 | 
						|
      },
 | 
						|
      {
 | 
						|
        className: 'template-variable',
 | 
						|
        begin: /\{\{/,
 | 
						|
        end: /\}\}/,
 | 
						|
        contains: [FILTER]
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
module.exports = django;
 |