MediaWiki:Highlight-js/languages/markdown.js

/** * Language: Markdown * Requires: xml.js * Author: John Crepezzi  * Website: http://seejohncode.com/ * Category: common, markup */ window.dev.highlight.registerLanguage('markdown', function(hljs) { return {    aliases: ['md', 'mkdown', 'mkd'],    contains: [      // highlight headers      {        className: 'section',        variants: [          { begin: '^#{1,6}', end: '$' },          { begin: '^.+?\\n[=-]{2,}$' }        ]      },      // inline html      {        begin: '<', end: '>',        subLanguage: 'xml',        relevance: 0      },      // lists (indicators only)      {        className: 'bullet',        begin: '^([*+-]|(\\d+\\.))\\s+'      },      // strong segments      {        className: 'strong',        begin: '[*_]{2}.+?[*_]{2}'      },      // emphasis segments      {        className: 'emphasis',        variants: [          { begin: '\\*.+?\\*' },          { begin: '_.+?_'         , relevance: 0          }        ]      },      // blockquotes      {        className: 'quote',        begin: '^>\\s+', end: '$' },     // code snippets {       className: 'code', variants: [ {           begin: '^```\w*\s*$', end: '^```\s*$' },         {            begin: '`.+?`' },         {            begin: '^( {4}|\t)', end: '$', relevance: 0 }       ]      },      // horizontal rules {       begin: '^[-\\*]{3,}', end: '$' },     // using links - title and link {       begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]', returnBegin: true, contains: [ {           className: 'string', begin: '\\[', end: '\\]', excludeBegin: true, returnEnd: true, relevance: 0 },         {            className: 'link', begin: '\\]\\(', end: '\\)', excludeBegin: true, excludeEnd: true },         {            className: 'symbol', begin: '\\]\\[', end: '\\]', excludeBegin: true, excludeEnd: true }       ],        relevance: 10 },     {        begin: /^\[[^\n]+\]:/,        returnBegin: true,        contains: [          {            className: 'symbol',            begin: /\[/, end: /\]/,            excludeBegin: true, excludeEnd: true          },          {            className: 'link',            begin: /:\s*/, end: /$/,            excludeBegin: true          }        ]      }    ]  }; }); /** **/