下線付きのテキストが必要です。markdown - マークダウンイタリック体を使用せずにアンダースコアをエスケープしてもかまいませんか?
コードではないため、コードフォーマットを使用したくありません。
私は、マークダウンをへの指示として扱うのをやめて、イタリック体であるです。
\
で_each_underscore(!を参照)をエスケープすることはできますが、合計20個あり、ソースでは見栄えが悪く、メンテナンスが難しく、DRYではありません。
他のオプションはありますか?
下線付きのテキストが必要です。markdown - マークダウンイタリック体を使用せずにアンダースコアをエスケープしてもかまいませんか?
コードではないため、コードフォーマットを使用したくありません。
私は、マークダウンをへの指示として扱うのをやめて、イタリック体であるです。
\
で_each_underscore(!を参照)をエスケープすることはできますが、合計20個あり、ソースでは見栄えが悪く、メンテナンスが難しく、DRYではありません。
他のオプションはありますか?
特定のスタックオーバーフローのサーバーサイドのC#バージョンMarkdownSharp(それはoptional behaviorだ場合)とクライアント側のJavaScriptバージョンPageDownの一部の値下げ実装–は、だけでなく、例えばGitHub's flavor –は、あなたが記述した理由のためにMarkdown仕様から逸脱しています。
Stack Overflowについては、Three Markdown GotchasとMarkdown, One Year Laterの2つのブログ記事を参照してください。
これはMarkdownの一般的な批判であるため、この動作をユーザーが設定できるようにする実装が増えているか、より厳密なバージョンにするだけです。したがって、使用している実装によって異なります。
John GruberのオリジナルのPerl実装(つまり「トン数の正規表現置換」)に基づいたポートを使用している場合は、この変更を自分で行うのはかなり簡単です。関連する関数は_DoItalicsAndBold
(オリジナルのPerlバージョン、対決/ PageDown)、DoItalicsAndBold
(MarkdownSharp)、_do_italics_and_bold
(python-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;
}