use prism-tomorrow.css
This commit is contained in:
257
docs/_style/prism-master/components/prism-textile.js
Normal file
257
docs/_style/prism-master/components/prism-textile.js
Normal file
@ -0,0 +1,257 @@
|
||||
(function(Prism) {
|
||||
// We don't allow for pipes inside parentheses
|
||||
// to not break table pattern |(. foo |). bar |
|
||||
var modifierRegex = '(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+';
|
||||
var modifierTokens = {
|
||||
'css': {
|
||||
pattern: /\{[^}]+\}/,
|
||||
inside: {
|
||||
rest: Prism.languages.css
|
||||
}
|
||||
},
|
||||
'class-id': {
|
||||
pattern: /(\()[^)]+(?=\))/,
|
||||
lookbehind: true,
|
||||
alias: 'attr-value'
|
||||
},
|
||||
'lang': {
|
||||
pattern: /(\[)[^\]]+(?=\])/,
|
||||
lookbehind: true,
|
||||
alias: 'attr-value'
|
||||
},
|
||||
// Anything else is punctuation (the first pattern is for row/col spans inside tables)
|
||||
'punctuation': /[\\\/]\d+|\S/
|
||||
};
|
||||
|
||||
|
||||
Prism.languages.textile = Prism.languages.extend('markup', {
|
||||
'phrase': {
|
||||
pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
|
||||
lookbehind: true,
|
||||
inside: {
|
||||
|
||||
// h1. Header 1
|
||||
'block-tag': {
|
||||
pattern: RegExp('^[a-z]\\w*(?:' + modifierRegex + '|[<>=()])*\\.'),
|
||||
inside: {
|
||||
'modifier': {
|
||||
pattern: RegExp('(^[a-z]\\w*)(?:' + modifierRegex + '|[<>=()])+(?=\\.)'),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'tag': /^[a-z]\w*/,
|
||||
'punctuation': /\.$/
|
||||
}
|
||||
},
|
||||
|
||||
// # List item
|
||||
// * List item
|
||||
'list': {
|
||||
pattern: RegExp('^[*#]+(?:' + modifierRegex + ')?\\s+.+', 'm'),
|
||||
inside: {
|
||||
'modifier': {
|
||||
pattern: RegExp('(^[*#]+)' + modifierRegex),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'punctuation': /^[*#]+/
|
||||
}
|
||||
},
|
||||
|
||||
// | cell | cell | cell |
|
||||
'table': {
|
||||
// Modifiers can be applied to the row: {color:red}.|1|2|3|
|
||||
// or the cell: |{color:red}.1|2|3|
|
||||
pattern: RegExp('^(?:(?:' + modifierRegex + '|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|', 'm'),
|
||||
inside: {
|
||||
'modifier': {
|
||||
// Modifiers for rows after the first one are
|
||||
// preceded by a pipe and a line feed
|
||||
pattern: RegExp('(^|\\|(?:\\r?\\n|\\r)?)(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)'),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'punctuation': /\||^\./
|
||||
}
|
||||
},
|
||||
|
||||
'inline': {
|
||||
pattern: RegExp('(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:' + modifierRegex + ')?.+?\\1'),
|
||||
inside: {
|
||||
// Note: superscripts and subscripts are not handled specifically
|
||||
|
||||
// *bold*, **bold**
|
||||
'bold': {
|
||||
pattern: RegExp('(^(\\*\\*?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
|
||||
lookbehind: true
|
||||
},
|
||||
|
||||
// _italic_, __italic__
|
||||
'italic': {
|
||||
pattern: RegExp('(^(__?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
|
||||
lookbehind: true
|
||||
},
|
||||
|
||||
// ??cite??
|
||||
'cite': {
|
||||
pattern: RegExp('(^\\?\\?(?:' + modifierRegex + ')?).+?(?=\\?\\?)'),
|
||||
lookbehind: true,
|
||||
alias: 'string'
|
||||
},
|
||||
|
||||
// @code@
|
||||
'code': {
|
||||
pattern: RegExp('(^@(?:' + modifierRegex + ')?).+?(?=@)'),
|
||||
lookbehind: true,
|
||||
alias: 'keyword'
|
||||
},
|
||||
|
||||
// +inserted+
|
||||
'inserted': {
|
||||
pattern: RegExp('(^\\+(?:' + modifierRegex + ')?).+?(?=\\+)'),
|
||||
lookbehind: true
|
||||
},
|
||||
|
||||
// -deleted-
|
||||
'deleted': {
|
||||
pattern: RegExp('(^-(?:' + modifierRegex + ')?).+?(?=-)'),
|
||||
lookbehind: true
|
||||
},
|
||||
|
||||
// %span%
|
||||
'span': {
|
||||
pattern: RegExp('(^%(?:' + modifierRegex + ')?).+?(?=%)'),
|
||||
lookbehind: true
|
||||
},
|
||||
|
||||
'modifier': {
|
||||
pattern: RegExp('(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])' + modifierRegex),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'punctuation': /[*_%?@+\-^~]+/
|
||||
}
|
||||
},
|
||||
|
||||
// [alias]http://example.com
|
||||
'link-ref': {
|
||||
pattern: /^\[[^\]]+\]\S+$/m,
|
||||
inside: {
|
||||
'string': {
|
||||
pattern: /(\[)[^\]]+(?=\])/,
|
||||
lookbehind: true
|
||||
},
|
||||
'url': {
|
||||
pattern: /(\])\S+$/,
|
||||
lookbehind: true
|
||||
},
|
||||
'punctuation': /[\[\]]/
|
||||
}
|
||||
},
|
||||
|
||||
// "text":http://example.com
|
||||
// "text":link-ref
|
||||
'link': {
|
||||
pattern: RegExp('"(?:' + modifierRegex + ')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
|
||||
inside: {
|
||||
'text': {
|
||||
pattern: RegExp('(^"(?:' + modifierRegex + ')?)[^"]+(?=")'),
|
||||
lookbehind: true
|
||||
},
|
||||
'modifier': {
|
||||
pattern: RegExp('(^")' + modifierRegex),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'url': {
|
||||
pattern: /(:).+/,
|
||||
lookbehind: true
|
||||
},
|
||||
'punctuation': /[":]/
|
||||
}
|
||||
},
|
||||
|
||||
// !image.jpg!
|
||||
// !image.jpg(Title)!:http://example.com
|
||||
'image': {
|
||||
pattern: RegExp('!(?:' + modifierRegex + '|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?'),
|
||||
inside: {
|
||||
'source': {
|
||||
pattern: RegExp('(^!(?:' + modifierRegex + '|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)'),
|
||||
lookbehind: true,
|
||||
alias: 'url'
|
||||
},
|
||||
'modifier': {
|
||||
pattern: RegExp('(^!)(?:' + modifierRegex + '|[<>=()])+'),
|
||||
lookbehind: true,
|
||||
inside: modifierTokens
|
||||
},
|
||||
'url': {
|
||||
pattern: /(:).+/,
|
||||
lookbehind: true
|
||||
},
|
||||
'punctuation': /[!:]/
|
||||
}
|
||||
},
|
||||
|
||||
// Footnote[1]
|
||||
'footnote': {
|
||||
pattern: /\b\[\d+\]/,
|
||||
alias: 'comment',
|
||||
inside: {
|
||||
'punctuation': /\[|\]/
|
||||
}
|
||||
},
|
||||
|
||||
// CSS(Cascading Style Sheet)
|
||||
'acronym': {
|
||||
pattern: /\b[A-Z\d]+\([^)]+\)/,
|
||||
inside: {
|
||||
'comment': {
|
||||
pattern: /(\()[^)]+(?=\))/,
|
||||
lookbehind: true
|
||||
},
|
||||
'punctuation': /[()]/
|
||||
}
|
||||
},
|
||||
|
||||
// Prism(C)
|
||||
'mark': {
|
||||
pattern: /\b\((?:TM|R|C)\)/,
|
||||
alias: 'comment',
|
||||
inside: {
|
||||
'punctuation':/[()]/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var nestedPatterns = {
|
||||
'inline': Prism.languages.textile['phrase'].inside['inline'],
|
||||
'link': Prism.languages.textile['phrase'].inside['link'],
|
||||
'image': Prism.languages.textile['phrase'].inside['image'],
|
||||
'footnote': Prism.languages.textile['phrase'].inside['footnote'],
|
||||
'acronym': Prism.languages.textile['phrase'].inside['acronym'],
|
||||
'mark': Prism.languages.textile['phrase'].inside['mark']
|
||||
};
|
||||
|
||||
// Only allow alpha-numeric HTML tags, not XML tags
|
||||
Prism.languages.textile.tag.pattern = /<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
|
||||
|
||||
// Allow some nesting
|
||||
Prism.languages.textile['phrase'].inside['inline'].inside['bold'].inside = nestedPatterns;
|
||||
Prism.languages.textile['phrase'].inside['inline'].inside['italic'].inside = nestedPatterns;
|
||||
Prism.languages.textile['phrase'].inside['inline'].inside['inserted'].inside = nestedPatterns;
|
||||
Prism.languages.textile['phrase'].inside['inline'].inside['deleted'].inside = nestedPatterns;
|
||||
Prism.languages.textile['phrase'].inside['inline'].inside['span'].inside = nestedPatterns;
|
||||
|
||||
// Allow some styles inside table cells
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['inline'] = nestedPatterns['inline'];
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['link'] = nestedPatterns['link'];
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['image'] = nestedPatterns['image'];
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['footnote'] = nestedPatterns['footnote'];
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['acronym'] = nestedPatterns['acronym'];
|
||||
Prism.languages.textile['phrase'].inside['table'].inside['mark'] = nestedPatterns['mark'];
|
||||
|
||||
}(Prism));
|
Reference in New Issue
Block a user