| Index: lib/src/prism/components/prism-rest.js
|
| diff --git a/lib/src/prism/components/prism-rest.js b/lib/src/prism/components/prism-rest.js
|
| index 6693dc9090995019178e9cd389154d3869d8efe9..f9390ecadea463f2c6a4b36f180456a60e9980a2 100644
|
| --- a/lib/src/prism/components/prism-rest.js
|
| +++ b/lib/src/prism/components/prism-rest.js
|
| @@ -19,7 +19,7 @@ Prism.languages.rest = {
|
| // Directive-like patterns
|
|
|
| 'substitution-def': {
|
| - pattern: /(^\s*\.\. )\|(?:[^|\s]|[^|\s][^|]*[^|\s])\| [^:]+::/m,
|
| + pattern: /(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,
|
| lookbehind: true,
|
| inside: {
|
| 'substitution': {
|
| @@ -30,7 +30,7 @@ Prism.languages.rest = {
|
| }
|
| },
|
| 'directive': {
|
| - pattern: /( )[^:]+::/,
|
| + pattern: /( +)[^:]+::/,
|
| lookbehind: true,
|
| alias: 'function',
|
| inside: {
|
| @@ -49,7 +49,7 @@ Prism.languages.rest = {
|
| }
|
| },
|
| {
|
| - pattern: /(^\s*\.\. )_(?:`[^`]+`|(?:\\:|[^:])+):/m,
|
| + pattern: /(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,
|
| lookbehind: true,
|
| alias: 'string',
|
| inside: {
|
| @@ -66,14 +66,15 @@ Prism.languages.rest = {
|
| }
|
| },
|
| 'comment': {
|
| - pattern: /(^\s*\.\.\s).*(?:(?:\r?\n|\r).*)*?(?=(?:\r?\n|\r){2}|$)/m,
|
| + // The two alternatives try to prevent highlighting of blank comments
|
| + pattern: /(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,
|
| lookbehind: true
|
| },
|
|
|
| 'title': [
|
| // Overlined and underlined
|
| {
|
| - pattern: /^([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]{2,})(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,
|
| + pattern: /^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,
|
| inside: {
|
| 'punctuation': /^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
|
| 'important': /.+/
|
| @@ -82,7 +83,7 @@ Prism.languages.rest = {
|
|
|
| // Underlined only
|
| {
|
| - pattern: /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]{2,}(?=\r?\n|\r|$)/,
|
| + pattern: /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,
|
| lookbehind: true,
|
| inside: {
|
| 'punctuation': /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
|
| @@ -91,22 +92,17 @@ Prism.languages.rest = {
|
| }
|
| ],
|
| 'hr': {
|
| - pattern: /((?:\r?\n|\r){2})[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]{4,}(?=(?:\r?\n|\r){2})/,
|
| - lookbehind: true,
|
| - alias: 'punctuation'
|
| - },
|
| - 'list-bullet': {
|
| - pattern: /(^\s*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,
|
| + pattern: /((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,
|
| lookbehind: true,
|
| alias: 'punctuation'
|
| },
|
| 'field': {
|
| - pattern: /(^\s*):[^:]+:(?= )/m,
|
| + pattern: /(^\s*):[^:\r\n]+:(?= )/m,
|
| lookbehind: true,
|
| alias: 'attr-name'
|
| },
|
| 'command-line-option': {
|
| - pattern: /(^\s*)(?:[+-][a-z\d]|(?:\-\-|\/)[a-z\d-]+)(?:[ =](?:[a-z][a-z\d_-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:\-\-|\/)[a-z\d-]+)(?:[ =](?:[a-z][a-z\d_-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}[\S])/im,
|
| + pattern: /(^\s*)(?:[+-][a-z\d]|(?:\-\-|\/)[a-z\d-]+)(?:[ =](?:[a-z][a-z\d_-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:\-\-|\/)[a-z\d-]+)(?:[ =](?:[a-z][a-z\d_-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,
|
| lookbehind: true,
|
| alias: 'symbol'
|
| },
|
| @@ -123,11 +119,16 @@ Prism.languages.rest = {
|
| pattern: /::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,
|
| inside: {
|
| 'literal-block-punctuation': {
|
| - pattern: /^(?:::|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])/m,
|
| + pattern: /^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,
|
| alias: 'punctuation'
|
| }
|
| }
|
| },
|
| + 'list-bullet': {
|
| + pattern: /(^\s*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,
|
| + lookbehind: true,
|
| + alias: 'punctuation'
|
| + },
|
| 'doctest-block': {
|
| pattern: /(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,
|
| lookbehind: true,
|
| @@ -185,10 +186,10 @@ Prism.languages.rest = {
|
| }
|
| },
|
| {
|
| - pattern: /(?:\b[a-z\d](?:[_.:+]?[a-z\d]+)?_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,
|
| + pattern: /(?:\b[a-z\d](?:[_.:+]?[a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,
|
| alias: 'string',
|
| inside: {
|
| - 'punctuation': /^_?`|`?_?_$/
|
| + 'punctuation': /^_?`|`$|`?_?_$/
|
| }
|
| }
|
| ],
|
|
|