【发布时间】:2011-03-23 01:55:16
【问题描述】:
所以,我在我的博客上使用了 StackOverflow 自己的 MarkdownSharp,我喜欢它。我现在想实现一个与 SO 上的代码按钮完全相同的代码按钮。我似乎找不到单击该按钮时触发的 javascript,因为它都是缩小的,而不是侵入性脚本。任何人都知道它在单击或按下 ctrl+k 时运行的代码段?
这是一个屏幕截图,以防您不知道我指的是哪个按钮: http://www.codetunnel.com/codebutton.jpg
提前致谢!
更新
我复制了 SO 的 wmd.js 文件和 unminified 的源代码。然后我在记事本中搜索了某些关键文本。该文件中的变量无法理解,更不用说阅读了,但我确实找到了这个:
c.doCode = function (v, u) {
var w = /\S[ ]*$/.test(v.before);
var s = /^[ ]*\S/.test(v.after);
if ((!s && !w) || /\n/.test(v.selection)) {
v.before = v.before.replace(/[ ]{4}$/, function (x) {
v.selection = x + v.selection;
return ""
});
var t = 1;
var r = 1;
if (/\n(\t|[ ]{4,}).*\n$/.test(v.before)) {
t = 0
}
if (/^\n(\t|[ ]{4,})/.test(v.after)) {
r = 0
}
v.skipLines(t, r);
if (!v.selection) {
v.startTag = " ";
v.selection = "enter code here"
} else {
if (/^[ ]{0,3}\S/m.test(v.selection)) {
v.selection = v.selection.replace(/^/gm, " ")
} else {
v.selection = v.selection.replace(/^[ ]{4}/gm, "")
}
}
} else {
v.trimWhitespace();
v.findTags(/`/, /`/);
if (!v.startTag && !v.endTag) {
v.startTag = v.endTag = "`";
if (!v.selection) {
v.selection = "enter code here"
}
} else {
if (v.endTag && !v.startTag) {
v.before += v.endTag;
v.endTag = ""
} else {
v.startTag = v.endTag = ""
}
}
}
};
当我意识到单击没有突出显示文本的按钮会将文本“在此处输入代码”插入编辑器时,我发现了它。然后我搜索了该文本并找到了 sn-p。任何人都可以做正面或反面?
我什至不想要完整的编辑器,我只想要代码按钮。其他的我可以不关心。
【问题讨论】:
-
+1 我希望有人找到/发布确切的代码 sn-p,或者提供指向正确源代码文件的指针以合并以具有此功能。
标签: javascript jquery asp.net-mvc asp.net-mvc-3 markdown