aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/python.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/python.js')
-rw-r--r--node_modules/highlight.js/lib/languages/python.js115
1 files changed, 115 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/python.js b/node_modules/highlight.js/lib/languages/python.js
new file mode 100644
index 000000000..db09269f3
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/python.js
@@ -0,0 +1,115 @@
+module.exports = function(hljs) {
+ var KEYWORDS = {
+ keyword:
+ 'and elif is global as in if from raise for except finally print import pass return ' +
+ 'exec else break not with class assert yield try while continue del or def lambda ' +
+ 'async await nonlocal|10 None True False',
+ built_in:
+ 'Ellipsis NotImplemented'
+ };
+ var PROMPT = {
+ className: 'meta', begin: /^(>>>|\.\.\.) /
+ };
+ var SUBST = {
+ className: 'subst',
+ begin: /\{/, end: /\}/,
+ keywords: KEYWORDS,
+ illegal: /#/
+ };
+ var STRING = {
+ className: 'string',
+ contains: [hljs.BACKSLASH_ESCAPE],
+ variants: [
+ {
+ begin: /(u|b)?r?'''/, end: /'''/,
+ contains: [PROMPT],
+ relevance: 10
+ },
+ {
+ begin: /(u|b)?r?"""/, end: /"""/,
+ contains: [PROMPT],
+ relevance: 10
+ },
+ {
+ begin: /(fr|rf|f)'''/, end: /'''/,
+ contains: [PROMPT, SUBST]
+ },
+ {
+ begin: /(fr|rf|f)"""/, end: /"""/,
+ contains: [PROMPT, SUBST]
+ },
+ {
+ begin: /(u|r|ur)'/, end: /'/,
+ relevance: 10
+ },
+ {
+ begin: /(u|r|ur)"/, end: /"/,
+ relevance: 10
+ },
+ {
+ begin: /(b|br)'/, end: /'/
+ },
+ {
+ begin: /(b|br)"/, end: /"/
+ },
+ {
+ begin: /(fr|rf|f)'/, end: /'/,
+ contains: [SUBST]
+ },
+ {
+ begin: /(fr|rf|f)"/, end: /"/,
+ contains: [SUBST]
+ },
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE
+ ]
+ };
+ var NUMBER = {
+ className: 'number', relevance: 0,
+ variants: [
+ {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
+ {begin: '\\b(0o[0-7]+)[lLjJ]?'},
+ {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
+ ]
+ };
+ var PARAMS = {
+ className: 'params',
+ begin: /\(/, end: /\)/,
+ contains: ['self', PROMPT, NUMBER, STRING]
+ };
+ SUBST.contains = [STRING, NUMBER, PROMPT];
+ return {
+ aliases: ['py', 'gyp'],
+ keywords: KEYWORDS,
+ illegal: /(<\/|->|\?)|=>/,
+ contains: [
+ PROMPT,
+ NUMBER,
+ STRING,
+ hljs.HASH_COMMENT_MODE,
+ {
+ variants: [
+ {className: 'function', beginKeywords: 'def'},
+ {className: 'class', beginKeywords: 'class'}
+ ],
+ end: /:/,
+ illegal: /[${=;\n,]/,
+ contains: [
+ hljs.UNDERSCORE_TITLE_MODE,
+ PARAMS,
+ {
+ begin: /->/, endsWithParent: true,
+ keywords: 'None'
+ }
+ ]
+ },
+ {
+ className: 'meta',
+ begin: /^[\t ]*@/, end: /$/
+ },
+ {
+ begin: /\b(print|exec)\(/ // don’t highlight keywords-turned-functions in Python 3
+ }
+ ]
+ };
+}; \ No newline at end of file