「テキスト整形」正式版公開に伴い先行版削除 |
抽出コマンドのアンパサンド対策。word-wrapを除去。 |
||
| 82行目: | 82行目: | ||
※新仕様の基本コード用。旧仕様で使用する場合は、オプション "L" をモード "RS" に書き換えてください。 | ※新仕様の基本コード用。旧仕様で使用する場合は、オプション "L" をモード "RS" に書き換えてください。 | ||
<pre | <pre> | ||
f.push(["拡張コードを旧→新仕様に変換","L",function(_){ //2019/06/01 | f.push(["拡張コードを旧→新仕様に変換","L",function(_){ //2019/06/01 | ||
return _.replace(/^(\s*(?:\/\/[\/\s]*)?)f\.push\(\[("[^\\"]*(?:\\.[^\\"]*)*"|'[^\\']*(?:\\.[^\\']*)*'),"(RS?|F)",function\(([$0-9A-Za-z_]*)\)/gm,function(_,cmnt,name,mode,arg){return cmnt+'f.push(['+name+',"'+(mode==="RS"?"L":"")+'",function('+(mode==="F"&&arg?"_,":"")+arg+')'}) }]); | return _.replace(/^(\s*(?:\/\/[\/\s]*)?)f\.push\(\[("[^\\"]*(?:\\.[^\\"]*)*"|'[^\\']*(?:\\.[^\\']*)*'),"(RS?|F)",function\(([$0-9A-Za-z_]*)\)/gm,function(_,cmnt,name,mode,arg){return cmnt+'f.push(['+name+',"'+(mode==="RS"?"L":"")+'",function('+(mode==="F"&&arg?"_,":"")+arg+')'}) }]); | ||
| 133行目: | 133行目: | ||
※新仕様の基本コード用。文書全体を対象に置換が行われます。 | ※新仕様の基本コード用。文書全体を対象に置換が行われます。 | ||
<pre | <pre> | ||
f.push(["記事ソースから拡張コードを抽出","",function(_,$){ //2019/ | f.push(["記事ソースから拡張コードを抽出","",function(_,$){ //2019/12/21 | ||
$.SelectAll(); var src=$.Text.match(/(?:^|\n)=拡張コード=\n[\s\S]*?(\n==[\s\S]*?)(?:\n=拡張コード:書式=\n|$)/); if(src)$.Text=src[1].replace(/\n==([^=]+)==\n([\s\S]*?)(?=\n==[^=]|$)/g,function(_,ctg,src){var cmd=[], res, re=new RegExp(/^<pre(?: [^>]*)?>\s*(f\.push\(\[[\s\S]*?\]\);)\s*<\/pre>/gm); while(res=re.exec(src)){cmd.push(res[1])} return 'f.push(["'+ctg+'",function(f){\n\n'+ cmd.join("\n\n") +'\n\n}]);\n\n'}).slice(0,-1) }]); | $.SelectAll(); var src=$.Text.match(/(?:^|\n)=拡張コード=\n[\s\S]*?(\n==[\s\S]*?)(?:\n=拡張コード:書式=\n|$)/); if(src)$.Text=src[1].replace(/\n==([^=]+)==\n([\s\S]*?)(?=\n==[^=]|$)/g,function(_,ctg,src){var cmd=[], res, re=new RegExp(/^<pre(?: [^>]*)?>\s*(f\.push\(\[[\s\S]*?\]\);)\s*<\/pre>/gm); while(res=re.exec(src)){cmd.push(res[1].replace(/&amp;/g,"&"))} return 'f.push(["'+ctg+'",function(f){\n\n'+ cmd.join("\n\n") +'\n\n}]);\n\n'}).slice(0,-1) }]); | ||
</pre> | </pre> | ||
<b>使用手順</b> | <b>使用手順</b> | ||
| 162行目: | 162行目: | ||
* モード RS で実現可能=代替可能であり、RM ならではの利点が無い。 | * モード RS で実現可能=代替可能であり、RM ならではの利点が無い。 | ||
* モード R/RS に比べ処理が異質で、コマンドを作る際はそれを考慮しなければならない。<br>※異質=R/RS が「選択範囲の文字列」を対象に処理を行うのに対し、RM は「選択範囲の各行の文字列」を対象に処理を行う。 | * モード R/RS に比べ処理が異質で、コマンドを作る際はそれを考慮しなければならない。<br>※異質=R/RS が「選択範囲の文字列」を対象に処理を行うのに対し、RM は「選択範囲の各行の文字列」を対象に処理を行う。 | ||
<source lang="javascript | <source lang="javascript"> | ||
//※モード RM では「クロージャ」という仕組みを使用する必要があり難解 | //※モード RM では「クロージャ」という仕組みを使用する必要があり難解 | ||
f.push(["各行行頭に文字列付加...","RM",(function(a){ | f.push(["各行行頭に文字列付加...","RM",(function(a){ | ||
| 170行目: | 170行目: | ||
var p=Prompt("各行行頭に付加する文字列:",""); if(!p)Quit(); return a.replace(/^/gm,p) }]); | var p=Prompt("各行行頭に付加する文字列:",""); if(!p)Quit(); return a.replace(/^/gm,p) }]); | ||
</source> | </source> | ||
<source lang="javascript | <source lang="javascript"> | ||
//※モード RM でも、 | //※モード RM でも、 | ||
f.push(["空白行を削除","RM",function(a){ | f.push(["空白行を削除","RM",function(a){ | ||
| 178行目: | 178行目: | ||
return a.replace(/^[ \t]*$\n?/gm,"") }]); | return a.replace(/^[ \t]*$\n?/gm,"") }]); | ||
</source> | </source> | ||
<source lang="javascript | <source lang="javascript"> | ||
//※モード RM なら正規表現に頼らず簡素に記述できるコマンドもあるが、 | //※モード RM なら正規表現に頼らず簡素に記述できるコマンドもあるが、 | ||
f.push(["インデント(半角空白2個)","RM",function(a){ | f.push(["インデント(半角空白2個)","RM",function(a){ | ||
スポンサーリンク