2015-01-16 05:21:33 +08:00
|
|
|
/**
|
|
|
|
* Encode/escape certain characters inside Markdown code runs.
|
|
|
|
* The point is that in code, these characters are literals,
|
|
|
|
* and lose their special Markdown meanings.
|
|
|
|
*/
|
|
|
|
showdown.subParser('encodeCode', function (text) {
|
2015-01-19 19:37:21 +08:00
|
|
|
'use strict';
|
2015-01-16 05:21:33 +08:00
|
|
|
|
2015-01-19 19:37:21 +08:00
|
|
|
// Encode all ampersands; HTML entities are not
|
|
|
|
// entities within a Markdown code span.
|
2017-01-28 10:46:34 +08:00
|
|
|
text = text
|
|
|
|
.replace(/&/g, '&')
|
2015-01-19 19:37:21 +08:00
|
|
|
// Do the angle bracket song and dance:
|
2017-01-28 10:46:34 +08:00
|
|
|
.replace(/</g, '<')
|
|
|
|
.replace(/>/g, '>')
|
2015-01-16 05:21:33 +08:00
|
|
|
|
2015-01-19 19:37:21 +08:00
|
|
|
// Now, escape characters that are magic in Markdown:
|
2017-01-28 10:46:34 +08:00
|
|
|
//text = showdown.helper.escapeCharacters(text, '*_{}[]\\', false); // replaced line to improve performance
|
|
|
|
.replace(/([*_{}\[\]\\])/g, showdown.helper.escapeCharactersCallback);
|
2015-01-16 05:21:33 +08:00
|
|
|
|
2015-01-19 19:37:21 +08:00
|
|
|
// jj the line above breaks this:
|
|
|
|
//---
|
|
|
|
//* Item
|
|
|
|
// 1. Subitem
|
|
|
|
// special char: *
|
|
|
|
// ---
|
2015-01-16 05:21:33 +08:00
|
|
|
|
2015-01-19 19:37:21 +08:00
|
|
|
return text;
|
2015-01-16 05:21:33 +08:00
|
|
|
});
|