「自動箇条書き」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
編集の要約なし |
||
| 7行目: | 7行目: | ||
// 2013/02/27 | // 2013/02/27 | ||
var reg = /^([\t ]*)(?:([((]*)([a-zA-Z]+|[0-9]+)([))\.. ]+)|([--・・**]))/; | var reg = /^([\t ]*)(?:([((]*)([a-zA-Z]+|[0-9]+|[0-9]+)([))\.. ]+)|([--・・**]))/; | ||
var ty = Editor.ActiveDocument.Selection.GetActivePointY( mePosLogical ); | var ty = Editor.ActiveDocument.Selection.GetActivePointY( mePosLogical ); | ||
2013年2月28日 (木) 18:28時点における版
箇条書きの行頭記号や数字を自動的に挿入します。
Shift+Enterに登録して便利に使っています。
#title="箇条書き"
// itemizer.js
// 2013/02/27
var reg = /^([\t ]*)(?:([((]*)([a-zA-Z]+|[0-9]+|[0-9]+)([))\.. ]+)|([--・・**]))/;
var ty = Editor.ActiveDocument.Selection.GetActivePointY( mePosLogical );
var trymax = 3;
var starty = ( ty - trymax > 0 )? ty - trymax : 1 ;
var line = "";
var result;
var chk = [];
for ( var i = starty; i <= ty; i++ ){
line = Editor.ActiveDocument.GetLine( i, 0 );
result = reg.exec( line );
if ( result != null ){
chk.push( result[ 3 ] );
}
}
Editor.ActiveDocument.Write( bulletSucc( result, chk ) );
function bulletSucc( result, chk ){
if ( result == null ){ return "\n" };
var chklast = chk.pop();
var chklastlast = chk.pop();
var i = ( isNaN( chklast ) || isNaN( chklastlast ) )? 1 : chklast - chklastlast ;
var s = "", r3 = result[ 3 ];
if ( r3 ){
if ( isNaN( r3 ) ){
i = ( r3 == "z" || r3 == "Z" )? -25 : 1 ;
s = String.fromCharCode( r3.charCodeAt( r3.length - 1 ) + i ) ;
} else {
s = Number( r3 ) + i;
s = ( s > 0 )? s : 0 ;
if ( r3.charAt( 0 ) == "0" ){
s = ( "0000" + s ).slice( -r3.length );
} else if ( r3.charAt( 0 ) == " " ){
s = ( " " + s ).slice( -r3.length );
}
}
} else {
s = "";
}
return "\n" + result[ 1 ] + result[ 2 ] + s + result[ 4 ] + result[ 5 ];
}
スポンサーリンク