弄清楚了!该解决方案非常笨重,需要编辑源代码,因为我不擅长正则表达式和_DoImage()
function仅在源代码中使用了很多内部函数。
解决方案:
所有编辑都将针对markdown.converter
file.
do a ctrl+f
为了_DoImage
函数,你会发现它在两个地方被命名,一是在RunSpanGamut
和一个定义函数。解决办法很简单,复制一下DoImage
函数和相关内容添加到一个新函数中,以模仿原始函数并对其进行编辑以使其符合口味。
next to 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
calls g_urls
and g_titles
这是一些被调用的内部函数。
之后,添加您的text = _DoPotatoImages(text);
to runSpanGamut
函数(请确保将其添加到text = _DoAnchors(text);
行,因为该函数将覆盖图像标签),现在您应该能够编写?[image desc](url)
随着![image desc](url)
done.