秀丸マクロ: 2行のテキストからHTMLリンクを作成するプログラム
2行のテキストからHTMLリンクを作成
秀丸マクロで、範囲選択した2行のテキストからHTMLリンクを作成する プログラムを作りました。
他サイトへのリンクを張るHTMLコードを記述する場合に、 秀丸マクロで一発で変換したいと思って作ったのがきっかけです。
次のような1行目にリンク文言、2行目にURLを記述した 2行のテキストを選択してマクロを実行すると
リンク文言 https://sample.com/
↓↓↓↓↓ pタグで囲った HML リンクを作成します。
<p><a href="https://sample.com/" target="_blank"> リンク文言</a></p>
コード解説
概要
1行目の最後にある改行コードより前を「URL」、
改行コードより後を「リンク文言」として取り出します。
後はテンプレート文字列とつなぎ合わせるだけです。
リンク内容を変更したい場合は、
上の方にある「template」に書かれているリンク部分を修正します。
クリップボードへの貼り付け
最終行で、リンクをクリップボードへ貼り付けています。
// クリップボードへ設定 setclipboard $str_all;
もし選択テキスト部分を直接変換したければ、 insert文に変更してください。
// 直接変更 insert $str_all;
秀丸マクロ プログラム
コードは次の通りです。
// 選択した2行からhtmlリンクを作成
// 1行目: テキスト文言、 2行目: URL
// template -----------------------------
$t_left = "<p><a href=\"";
$t_mid = "\" target=\"_blank\">" + "\n";
$t_right = "</a></p>";
// ---------------------------------------
// 範囲選択中でない場合、マクロを終了する
if (selecting == 0) endmacro;
// 選択範囲の文字列を取得(範囲選択を維持する)
$str = gettext(seltopx,seltopy,selendx,selendy, 1);
// 改行の位置を取得
#num = strstr($str, "\r\n");
// 改行がなければ終了
if (#num == -1) {
message "改行がみつかりません。";
endmacro;
}
// 改行より左: リンク文言
$str_left = leftstr($str, #num);
// 改行より右: URL
$str_right = midstr($str, #num + 2);
// 文字列作成
$str_all = $t_left + $str_right + $t_mid + $str_left + $t_right;
// クリップボードへ設定
setclipboard $str_all;