「Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する」の版間の差分
ナビゲーションに移動
検索に移動
作成 |
ver1.1 // bag fix // 開始記号しかない行では通常の改行を行うようにした |
||
| 3行目: | 3行目: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
#title="Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力" | |||
// by catfist | // by catfist | ||
// | // | ||
// 編集モードが'Markdown'の場合のみ実行 | // 編集モードが'Markdown'の場合のみ実行 | ||
// 現在行が以下の構文を含む場合、改行して行頭に開始記号を追加する | // 現在行が以下の構文を含む場合、改行して行頭に開始記号を追加する | ||
// (順序ありリストの場合は数値を1加算する) | // (順序ありリストの場合は数値を1加算する) | ||
// Enterに割り当てて使うことを想定 | // Enterに割り当てて使うことを想定 | ||
// | // | ||
// 順序なしリスト: '-','*','+' | // 順序なしリスト: '-','*','+' | ||
// 順序ありリスト: '1.','2.'... | // 順序ありリスト: '1.','2.'... | ||
// 引用ブロック : '>' | // 引用ブロック : '>' | ||
// | // | ||
// [2018-07-27] | // [2018-07-27] 1.0 | ||
// [2018-07-28] 1.1 | |||
// bug fix | |||
// 開始記号しかない行では通常の改行を行うようにした | |||
if (Document.Mode == "Markdown") { // 編集モードがMarkdownの場合 | if (Document.Mode == "Markdown") { // 編集モードがMarkdownの場合 | ||
| 20行目: | 25行目: | ||
var s = Document.GetLine(Document.Selection.GetActivePointY(mePosLogical), 0); | var s = Document.GetLine(Document.Selection.GetActivePointY(mePosLogical), 0); | ||
// リストまたはブロックコメント開始記号に一致する部分を取得 | // リストまたはブロックコメント開始記号に一致する部分を取得 | ||
var s_syntax = s.replace(/^ | if (s.match(/^(\s*[-\*\+>] ?|\d+\. ?)[^\s]+$/)) | ||
{ | |||
var s_syntax = s.replace(/^\s*([-\*\+>] ?|\d+\. ?).*$/,"$1"); | |||
// 順序ありリストの場合は数値を+1する | |||
var s_num = s_syntax.replace(/^(\d+).*/,"$1"); | |||
if (s_num !== "") { | |||
s_num = Number(s_num) | |||
s_num = s_num + 1 | |||
s_syntax = s_syntax.replace(/^\d+/,s_num); | |||
} | |||
} | |||
else { // 指定の構文がない場合は改行のみ | |||
s_syntax = "" | |||
} | } | ||
} | } | ||
2018年7月28日 (土) 20:16時点における版
改行を挿入し、編集モードがMarkdownでありかつ現在行がリストまたは引用ブロックの場合は開始記号を挿入します。 順序ありリスト(1.等)の場合、数値を+1します。
#title="Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力"
// by catfist
//
// 編集モードが'Markdown'の場合のみ実行
// 現在行が以下の構文を含む場合、改行して行頭に開始記号を追加する
// (順序ありリストの場合は数値を1加算する)
// Enterに割り当てて使うことを想定
//
// 順序なしリスト: '-','*','+'
// 順序ありリスト: '1.','2.'...
// 引用ブロック : '>'
//
// [2018-07-27] 1.0
// [2018-07-28] 1.1
// bug fix
// 開始記号しかない行では通常の改行を行うようにした
if (Document.Mode == "Markdown") { // 編集モードがMarkdownの場合
// 現在行の内容を取得
var s = Document.GetLine(Document.Selection.GetActivePointY(mePosLogical), 0);
// リストまたはブロックコメント開始記号に一致する部分を取得
if (s.match(/^(\s*[-\*\+>] ?|\d+\. ?)[^\s]+$/))
{
var s_syntax = s.replace(/^\s*([-\*\+>] ?|\d+\. ?).*$/,"$1");
// 順序ありリストの場合は数値を+1する
var s_num = s_syntax.replace(/^(\d+).*/,"$1");
if (s_num !== "") {
s_num = Number(s_num)
s_num = s_num + 1
s_syntax = s_syntax.replace(/^\d+/,s_num);
}
}
else { // 指定の構文がない場合は改行のみ
s_syntax = ""
}
}
else { // 編集モードがMarkdown以外の場合は改行のみ
s_syntax = ""
}
// 改行と開始記号を挿入
Document.Selection.Text = "\n" + s_syntax;
スポンサーリンク