renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
36 lines (35 loc) • 1.29 kB
JavaScript
import { regEx } from "./regex.js";
import { remark } from "remark";
import gfm from "remark-gfm";
import github from "remark-github";
//#region lib/util/markdown.ts
function sanitizeMarkdown(markdown) {
let res = markdown;
res = res.replace(regEx(/(\W)#(\d)/gi), "$1#​$2");
res = res.replace(regEx(/@/g), "@​");
res = res.replace(regEx(/(`\[?@)​/g), "$1");
res = res.replace(regEx(/([a-z]@)​/gi), "$1");
res = res.replace(regEx(/\/compare\/@​/g), "/compare/@");
res = res.replace(regEx(/(\(https:\/\/[^)]*?)\.\.\.@​/g), "$1...@");
res = res.replace(regEx(/([\s(])#(\d+)([)\s]?)/g), "$1#​$2$3");
const backTickRe = regEx(/`([^/]*?)`/g);
res = res.replace(backTickRe, "`$1`");
res = res.replace(regEx(/`#​(\d+)`/g), "`#$1`");
res = res.replace(regEx(/(?<before>[^\n]\n)(?<title>#.*)/g), "$<before>\n$<title>");
return res;
}
/**
*
* @param content content to process
* @param options github options
* @returns linkified content
*/
async function linkify(content, options) {
return (await remark().use({ settings: { bullet: "-" } }).use(gfm).use(github, {
mentionStrong: false,
...options
}).process(content)).toString();
}
//#endregion
export { linkify, sanitizeMarkdown };
//# sourceMappingURL=markdown.js.map