秀丸マクロ:テキストからHTMLリンクを作成するプログラム

スポンサーリンク

秀丸マクロで、範囲選択したテキストからHTMLリンクを作成する プログラムを作りました。

他サイトへのリンクを張るHTMLコードを記述する場合に、 秀丸マクロで一発で変換したいと思って作ったのがきっかけです。

下の「スライド スタート」ボタンをクリックすると、 動作が確認できます。

  • https://step-learn.com/img/img04/s0126-1.png
  • https://step-learn.com/img/img04/s0126-2.png
  • https://step-learn.com/img/img04/s0126-3.png
  • https://step-learn.com/img/img04/s0126-4.png

範囲選択したテキストからHTMLリンクを作成する

使い方

まず次のような2行のデータを用意します。


サイトURL
リンク文言

2行を選択してマクロを実行すると、次のようにHTMLリンクが作成されます。


<p><a href="サイトURL" target="_blank">
リンク文言</a></p>

秀丸マクロ プログラム


// 選択した2行からhtmlリンクを作成
// 1行目: URL、 2行目: テキスト文言


// 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;
}
// 改行より左: URL
$str_left = leftstr($str, #num);
// 改行より右: リンク文言
$str_right = midstr($str, #num + 2);


// 文字列作成
$str_all = $t_left + $str_left + $t_mid + $str_right + $t_right;

// insert
insert $str_all;

// カーソルを行頭へ
golinetop;

コード解説

1行目の最後にある改行コードより前を「URL」、 改行コードより後を「リンク文言」として取り出します。 後はテンプレート文字列とつなぎ合わせるだけです。

リンク内容を変更したい場合は、 上の方にある「template」に書かれているリンク部分を修正します。

最後にカーソルを行頭へ戻していますが、不要なら削除してください。