|
はじめまして。
プレーンなテキスト文章の一定部分を選択し(数十行とかです)、その選択範囲に対
して、段落は<p></p>、改行は<br />、というようにHTMLのタグをつけていくマクロ
はどのようにしたら可能なのでしょうか?
例えば、(下記の↓は改行コードで行末の※は改行なしで次の行と連結しているとい
う場合です)
○○○↓
○○○○○○※
○○○○○○※
↓
○○○○○○※
○○○↓
○○○○○○※
↓
というような文章を選択し、
<p>
○○○<br />
○○○○○○※
○○○○○○※
</p>
<p>
○○○○○○※
○○○<br />
○○○○○○※
</p>
このように段落と段落内改行を、HTMLのタグで挟み込みたいのです。
フォーラム内検索や、ネット検索で調べてみたのですが、ひとつだけ、
disabledraw;
gofiletop;
insert "<p>";
replaceallfast "\\n\\n\\n","糜2鋤",regular;
replaceallfast "\\n\\n","糜鋤",regular;
replaceallfast "\\n","<BR>\\n",regular ;
replaceallfast "糜鋤","</p>\\n<br>\\n<p>",regular;
replaceallfast "糜2鋤","</p>\\n<br>\\n<br>\\n<p>",regular;
このようなマクロがあり、イメージとしてはこのような感じです。
ただ、上記のマクロですと、選択部分ではなく文章全体にタグが付けられてしまう、
また最後の</p>タグが付けられないようでしたので、
if (!selecting){
//範囲選択中でない場合マクロの終了
message "範囲を選択してマクロを実行してください。";
endmacro;
}
disabledraw;
gofiletop;
insert "<p>";
replaceallfast "\\n\\n\\n","糜2鋤",regular;
replaceallfast "\\n\\n","糜鋤",regular;
replaceallfast "\\n","<br />\\n",regular;
replaceallfast "糜鋤","\\n</p>\\n<p>\\n",regular;
replaceallfast "糜2鋤","\\n</p>\\n<p>\\n",regular;
gofileend;
insertreturn;
insert "</p>";
としたところ、選択範囲、及び最後の</p>タグも付けられたのですが、これですと、
選択範囲をマクロでタグ付けしますと、選択していなかった部分が、マクロ実行後に
消えてしまうのです。(100行の文章中、30行を選択しマクロ実行すると、残りの70
行が消えてしまう、という意味です)
そもそも、元のマクロの書き方でいいのかどうか、そのあたりもわかっていません。
(作者さんと思われる方のブログは、既に作者さんがそこを退会されたらしく、更新
がとまっていまして、過去ログ扱いのような感じになっていましたので、今回は元の
マクロの出典先をあえて書きませんでした(ネットの検索で「秀丸 マクロ 段落 改
行 p br」というワードで探すと、たぶん1ページめには出てきますが…)
HTMLのタグをすべてつけていくのではなく、ブログ等、CMSで作られたサイトは、既
にレイアウトに必要なタグは、最初にCSSと一緒に組んでしまうため、後々コンテン
ツ(テキスト)をそこに、上記のような体裁でという場合に、選択範囲を<p><br /><
/p>で囲めると、よいな、ということなのです。
あと、元のマクロを
replaceallfast "糜鋤","</p>\\n<br>\\n<p>",regular;
↓
replaceallfast "糜鋤","\\n</p>\\n<p>\\n",regular;
このようにしたのは、<p>タグが
<p>○○○
というふうに付くのではなく
<p>
○○○
というふうにしたかったからです。
|
|