秀丸マクロ: 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;