aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/stylus.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/stylus.js')
-rw-r--r--node_modules/highlight.js/lib/languages/stylus.js453
1 files changed, 453 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/stylus.js b/node_modules/highlight.js/lib/languages/stylus.js
new file mode 100644
index 000000000..e0e3d379a
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/stylus.js
@@ -0,0 +1,453 @@
+module.exports = function(hljs) {
+
+ var VARIABLE = {
+ className: 'variable',
+ begin: '\\$' + hljs.IDENT_RE
+ };
+
+ var HEX_COLOR = {
+ className: 'number',
+ begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
+ };
+
+ var AT_KEYWORDS = [
+ 'charset',
+ 'css',
+ 'debug',
+ 'extend',
+ 'font-face',
+ 'for',
+ 'import',
+ 'include',
+ 'media',
+ 'mixin',
+ 'page',
+ 'warn',
+ 'while'
+ ];
+
+ var PSEUDO_SELECTORS = [
+ 'after',
+ 'before',
+ 'first-letter',
+ 'first-line',
+ 'active',
+ 'first-child',
+ 'focus',
+ 'hover',
+ 'lang',
+ 'link',
+ 'visited'
+ ];
+
+ var TAGS = [
+ 'a',
+ 'abbr',
+ 'address',
+ 'article',
+ 'aside',
+ 'audio',
+ 'b',
+ 'blockquote',
+ 'body',
+ 'button',
+ 'canvas',
+ 'caption',
+ 'cite',
+ 'code',
+ 'dd',
+ 'del',
+ 'details',
+ 'dfn',
+ 'div',
+ 'dl',
+ 'dt',
+ 'em',
+ 'fieldset',
+ 'figcaption',
+ 'figure',
+ 'footer',
+ 'form',
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'header',
+ 'hgroup',
+ 'html',
+ 'i',
+ 'iframe',
+ 'img',
+ 'input',
+ 'ins',
+ 'kbd',
+ 'label',
+ 'legend',
+ 'li',
+ 'mark',
+ 'menu',
+ 'nav',
+ 'object',
+ 'ol',
+ 'p',
+ 'q',
+ 'quote',
+ 'samp',
+ 'section',
+ 'span',
+ 'strong',
+ 'summary',
+ 'sup',
+ 'table',
+ 'tbody',
+ 'td',
+ 'textarea',
+ 'tfoot',
+ 'th',
+ 'thead',
+ 'time',
+ 'tr',
+ 'ul',
+ 'var',
+ 'video'
+ ];
+
+ var TAG_END = '[\\.\\s\\n\\[\\:,]';
+
+ var ATTRIBUTES = [
+ 'align-content',
+ 'align-items',
+ 'align-self',
+ 'animation',
+ 'animation-delay',
+ 'animation-direction',
+ 'animation-duration',
+ 'animation-fill-mode',
+ 'animation-iteration-count',
+ 'animation-name',
+ 'animation-play-state',
+ 'animation-timing-function',
+ 'auto',
+ 'backface-visibility',
+ 'background',
+ 'background-attachment',
+ 'background-clip',
+ 'background-color',
+ 'background-image',
+ 'background-origin',
+ 'background-position',
+ 'background-repeat',
+ 'background-size',
+ 'border',
+ 'border-bottom',
+ 'border-bottom-color',
+ 'border-bottom-left-radius',
+ 'border-bottom-right-radius',
+ 'border-bottom-style',
+ 'border-bottom-width',
+ 'border-collapse',
+ 'border-color',
+ 'border-image',
+ 'border-image-outset',
+ 'border-image-repeat',
+ 'border-image-slice',
+ 'border-image-source',
+ 'border-image-width',
+ 'border-left',
+ 'border-left-color',
+ 'border-left-style',
+ 'border-left-width',
+ 'border-radius',
+ 'border-right',
+ 'border-right-color',
+ 'border-right-style',
+ 'border-right-width',
+ 'border-spacing',
+ 'border-style',
+ 'border-top',
+ 'border-top-color',
+ 'border-top-left-radius',
+ 'border-top-right-radius',
+ 'border-top-style',
+ 'border-top-width',
+ 'border-width',
+ 'bottom',
+ 'box-decoration-break',
+ 'box-shadow',
+ 'box-sizing',
+ 'break-after',
+ 'break-before',
+ 'break-inside',
+ 'caption-side',
+ 'clear',
+ 'clip',
+ 'clip-path',
+ 'color',
+ 'column-count',
+ 'column-fill',
+ 'column-gap',
+ 'column-rule',
+ 'column-rule-color',
+ 'column-rule-style',
+ 'column-rule-width',
+ 'column-span',
+ 'column-width',
+ 'columns',
+ 'content',
+ 'counter-increment',
+ 'counter-reset',
+ 'cursor',
+ 'direction',
+ 'display',
+ 'empty-cells',
+ 'filter',
+ 'flex',
+ 'flex-basis',
+ 'flex-direction',
+ 'flex-flow',
+ 'flex-grow',
+ 'flex-shrink',
+ 'flex-wrap',
+ 'float',
+ 'font',
+ 'font-family',
+ 'font-feature-settings',
+ 'font-kerning',
+ 'font-language-override',
+ 'font-size',
+ 'font-size-adjust',
+ 'font-stretch',
+ 'font-style',
+ 'font-variant',
+ 'font-variant-ligatures',
+ 'font-weight',
+ 'height',
+ 'hyphens',
+ 'icon',
+ 'image-orientation',
+ 'image-rendering',
+ 'image-resolution',
+ 'ime-mode',
+ 'inherit',
+ 'initial',
+ 'justify-content',
+ 'left',
+ 'letter-spacing',
+ 'line-height',
+ 'list-style',
+ 'list-style-image',
+ 'list-style-position',
+ 'list-style-type',
+ 'margin',
+ 'margin-bottom',
+ 'margin-left',
+ 'margin-right',
+ 'margin-top',
+ 'marks',
+ 'mask',
+ 'max-height',
+ 'max-width',
+ 'min-height',
+ 'min-width',
+ 'nav-down',
+ 'nav-index',
+ 'nav-left',
+ 'nav-right',
+ 'nav-up',
+ 'none',
+ 'normal',
+ 'object-fit',
+ 'object-position',
+ 'opacity',
+ 'order',
+ 'orphans',
+ 'outline',
+ 'outline-color',
+ 'outline-offset',
+ 'outline-style',
+ 'outline-width',
+ 'overflow',
+ 'overflow-wrap',
+ 'overflow-x',
+ 'overflow-y',
+ 'padding',
+ 'padding-bottom',
+ 'padding-left',
+ 'padding-right',
+ 'padding-top',
+ 'page-break-after',
+ 'page-break-before',
+ 'page-break-inside',
+ 'perspective',
+ 'perspective-origin',
+ 'pointer-events',
+ 'position',
+ 'quotes',
+ 'resize',
+ 'right',
+ 'tab-size',
+ 'table-layout',
+ 'text-align',
+ 'text-align-last',
+ 'text-decoration',
+ 'text-decoration-color',
+ 'text-decoration-line',
+ 'text-decoration-style',
+ 'text-indent',
+ 'text-overflow',
+ 'text-rendering',
+ 'text-shadow',
+ 'text-transform',
+ 'text-underline-position',
+ 'top',
+ 'transform',
+ 'transform-origin',
+ 'transform-style',
+ 'transition',
+ 'transition-delay',
+ 'transition-duration',
+ 'transition-property',
+ 'transition-timing-function',
+ 'unicode-bidi',
+ 'vertical-align',
+ 'visibility',
+ 'white-space',
+ 'widows',
+ 'width',
+ 'word-break',
+ 'word-spacing',
+ 'word-wrap',
+ 'z-index'
+ ];
+
+ // illegals
+ var ILLEGAL = [
+ '\\?',
+ '(\\bReturn\\b)', // monkey
+ '(\\bEnd\\b)', // monkey
+ '(\\bend\\b)', // vbscript
+ '(\\bdef\\b)', // gradle
+ ';', // a whole lot of languages
+ '#\\s', // markdown
+ '\\*\\s', // markdown
+ '===\\s', // markdown
+ '\\|',
+ '%', // prolog
+ ];
+
+ return {
+ aliases: ['styl'],
+ case_insensitive: false,
+ keywords: 'if else for in',
+ illegal: '(' + ILLEGAL.join('|') + ')',
+ contains: [
+
+ // strings
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+
+ // comments
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+
+ // hex colors
+ HEX_COLOR,
+
+ // class tag
+ {
+ begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
+ returnBegin: true,
+ contains: [
+ {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
+ ]
+ },
+
+ // id tag
+ {
+ begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
+ returnBegin: true,
+ contains: [
+ {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
+ ]
+ },
+
+ // tags
+ {
+ begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
+ returnBegin: true,
+ contains: [
+ {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
+ ]
+ },
+
+ // psuedo selectors
+ {
+ begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
+ },
+
+ // @ keywords
+ {
+ begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
+ },
+
+ // variables
+ VARIABLE,
+
+ // dimension
+ hljs.CSS_NUMBER_MODE,
+
+ // number
+ hljs.NUMBER_MODE,
+
+ // functions
+ // - only from beginning of line + whitespace
+ {
+ className: 'function',
+ begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
+ illegal: '[\\n]',
+ returnBegin: true,
+ contains: [
+ {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
+ {
+ className: 'params',
+ begin: /\(/,
+ end: /\)/,
+ contains: [
+ HEX_COLOR,
+ VARIABLE,
+ hljs.APOS_STRING_MODE,
+ hljs.CSS_NUMBER_MODE,
+ hljs.NUMBER_MODE,
+ hljs.QUOTE_STRING_MODE
+ ]
+ }
+ ]
+ },
+
+ // attributes
+ // - only from beginning of line + whitespace
+ // - must have whitespace after it
+ {
+ className: 'attribute',
+ begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b',
+ starts: {
+ // value container
+ end: /;|$/,
+ contains: [
+ HEX_COLOR,
+ VARIABLE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.CSS_NUMBER_MODE,
+ hljs.NUMBER_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ],
+ illegal: /\./,
+ relevance: 0
+ }
+ }
+ ]
+ };
+}; \ No newline at end of file