module.exports = function(hljs) { return { aliases: ['md', 'mkdown', 'mkd'], contains: [ // highlight headers { className: 'header', 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: 'blockquote', begin: '^>\\s+', end: '$' }, // code snippets { className: 'code', variants: [ { begin: '`.+?`' }, { begin: '^( {4}|\t)', end: '$' , relevance: 0 } ] }, // horizontal rules { className: 'horizontal_rule', begin: '^[-\\*]{3,}', end: '$' }, // using links - title and link { begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]', returnBegin: true, contains: [ { className: 'link_label', begin: '\\[', end: '\\]', excludeBegin: true, returnEnd: true, relevance: 0 }, { className: 'link_url', begin: '\\]\\(', end: '\\)', excludeBegin: true, excludeEnd: true }, { className: 'link_reference', begin: '\\]\\[', end: '\\]', excludeBegin: true, excludeEnd: true } ], relevance: 10 }, { begin: '^\\[\.+\\]:', returnBegin: true, contains: [ { className: 'link_reference', begin: '\\[', end: '\\]:', excludeBegin: true, excludeEnd: true, starts: { className: 'link_url', end: '$' } } ] } ] }; };