34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
|
// Blackfriday markdown rendering requires a blank line before lists.
|
||
|
module.exports.fixLists = function(markdown) {
|
||
|
var lines = markdown.split(/\r?\n/);
|
||
|
for (var i = 0; i < lines.length; i++) {
|
||
|
// If it's the start of the file, ignore to prevent an index issue.
|
||
|
if (i > lines.length) { return; }
|
||
|
if (i == 0 || lines[i] == '\n') { continue; }
|
||
|
|
||
|
// Search for the start of a list designated by the * character.
|
||
|
if (lines[i].startsWith("* ") && lines[i - 1].startsWith("* ") == false) {
|
||
|
i = i + 1;
|
||
|
lines.splice(i - 1, 0, '');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return lines.join('\r\n');
|
||
|
}
|
||
|
|
||
|
module.exports.fixLinks = function(markdown) {
|
||
|
let cleaned = markdown;
|
||
|
|
||
|
// Replacing tags like [[Common Issues on Windows|Common Issues]]
|
||
|
cleaned = markdown.replace(/\[\[(.*)\|(.*)\]\]/g, function(match, p1, p2) {
|
||
|
return `[${p1}](${url(p2)})`
|
||
|
});
|
||
|
|
||
|
// Replacing tags like [[Common Issues]]
|
||
|
cleaned = markdown.replace(/\[\[(.*)\]\]/g, function(match, p1) {
|
||
|
return `[${p1}](${url(p1)})`
|
||
|
});
|
||
|
|
||
|
return cleaned;
|
||
|
}
|