弄清楚了!该解决方案非常笨拙,并且涉及编辑源代码,因为我在正则表达式方面非常糟糕,并且该_DoImage()
函数仅在源代码中使用了很多内部函数。
解决方案:
将对markdown.converter
文件进行所有编辑。
ctrl+f
对函数做a _DoImage
,你会发现它在两个地方命名,一个在the中,一个在RunSpanGamut
定义函数。解决方案很简单,将函数和相关内容复制DoImage
到一个新函数中,以模仿原始函数并对其进行编辑以适应口味。
DoImage
在功能添加旁边:
function _DoPotatoImages(text) {
text = text.replace(/(\?\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writePotatoImageTag);
text = text.replace(/(\?\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writePotatoImageTag);
return text;
}
function writePotatoImageTag(wholeMatch, m1, m2, m3, m4, m5, m6, m7) {
var whole_match = m1;
var alt_text = m2;
var link_id = m3.toLowerCase();
var url = m4;
var title = m7;
if (!title) title = "";
if (url == "") {
if (link_id == "") {
link_id = alt_text.toLowerCase().replace(/ ?\n/g, " ");
}
url = "#" + link_id;
if (g_urls.get(link_id) != undefined) {
url = g_urls.get(link_id);
if (g_titles.get(link_id) != undefined) {
title = g_titles.get(link_id);
}
}
else {
return whole_match;
}
}
alt_text = escapeCharacters(attributeEncode(alt_text), "*_[]()");
url = escapeCharacters(url, "*_");
var result = "<img src=\"" + url + "\" alt=\"" + alt_text + "\"";
title = attributeEncode(title);
title = escapeCharacters(title, "*_");
result += " title=\"" + title + "\"";
result += " class=\"p\" />";
return result;
}
_DoPotatoImages()
如果您查看新功能和原始功能之间的区别_DoImages()
,您会注意到我将正则表达式编辑为带有转义的问号\?
而不是正常的感叹号!
还要注意writePotatoImageTag
调用方式g_urls
以及调用g_titles
的一些内部函数。
之后,添加您text = _DoPotatoImages(text);
的runSpanGamut
功能(确保您在该行之前添加它,因为该text = _DoAnchors(text);
功能将覆盖图像标签),现在您应该能够?[image desc](url)
与
完毕。