我想有有下划线的文本它。markdown - 我可以突出显示不带标记的斜体吗?
这不是代码,所以我不想使用的代码格式。
我想停止降价处理它作为斜体它的指令。
我可以通过\
来逃避_each_underscore(看!),但我总共有20个,看起来很丑,很难维护,而且不太干。
任何其他的选择吗?
我想有有下划线的文本它。markdown - 我可以突出显示不带标记的斜体吗?
这不是代码,所以我不想使用的代码格式。
我想停止降价处理它作为斜体它的指令。
我可以通过\
来逃避_each_underscore(看!),但我总共有20个,看起来很丑,很难维护,而且不太干。
任何其他的选择吗?
一些降价实现–特别堆栈溢出的服务器端C#版本MarkdownSharp(其中它的optional behavior)和客户端JavaScript版本PageDown,而且还例如由于你描述的原因,GitHub's flavor –已经偏离了Markdown规范。
有关此堆栈溢出的一些历史记录,请参阅两篇博文Three Markdown Gotchas和Markdown, One Year Later。
由于这是降价的常用说出批评,有可能是多个实现,要么让这种行为可由用户设置,或者只是用更严格的版本,请完全。所以这取决于你使用的是什么实现。
如果您使用的是基于约翰格鲁伯原来的Perl实现一个端口(即“吨的正则表达式替换”版本),它应该很容易使这个改变自己。相关的功能很可能是所谓的_DoItalicsAndBold
(原Perl版本,摊牌/ PageDown键),DoItalicsAndBold
(MarkdownSharp),_do_italics_and_bold
(蟒蛇-markdown2)或类似。
看看我们PageDown version of that function对于这里使用的堆栈溢出严格的正则表达式:
function _DoItalicsAndBold(text) {
// <strong> must go first:
text = text.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g,
"$1<strong>$3</strong>$4");
text = text.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g,
"$1<em>$3</em>$4");
return text;
}