101 lines
2.2 KiB
JavaScript
101 lines
2.2 KiB
JavaScript
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: '$'
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|
|
}; |