最終更新日 2025-02-19

HTMLはローカルPCに存在しなくてもよい

このページは、前節の続きとなります。

あまりこのようなことをすることは推奨しませんが、
「HTML」はローカルPCに存在せずとも、秀丸エディタの内容を反映できます。

下のマクロを実行すると、ここに秀丸エディタの最初の3行が表示&更新

秀丸のカーソル位置

-

秀丸の文章の先頭3行

-

HmRemoteUpdateServer.mac を実行して、確認してみよう

HmRemoteUpdateServer.mac
// ★先頭の3行はどんな感じかな?
// ★ここは2行目ですよ。
jsmode "JScript\\" + currentmacrofilename;
  
js {
debuginfo(2);
  
if (typeof(server) != "undefined") {
    server.close();
}
  
var server = hidemaru.createHttpServer({makeKey:1}, function (req, res) {
  
    if (req.url == "/" + server.key + "/text") {
        res.writeHead(200); // OK
 
        // 現在の「秀丸エディタのテキスト」と「カーソル位置」を返すようにする
        var obj = {
            text: gettotaltext(),
            column: column(),
            lineno: lineno()
        };
        res.write(JSON.stringify(obj));
        res.end("");
    } else {
        res.writeHead(404); // Not found
        res.end("");
    }
});
    
server.listen(0); //ランダムなポート
var port = server.port;
var key = server.key;
  
function makeUrl(htmlFullPath, port, key) {
    var htmlFullPath = htmlFullPath.replace(/\\/g, "/");
    var absoluteUrl = sprintf("%s&port=%d&key=%s", htmlFullPath, port, key);
    console.log(absoluteUrl);
    return absoluteUrl;
}
 
  
// メインの処理
function main() {
  
   var absoluteUrl = makeUrl("https://秀丸マクロ.net/?page=nobu_tool_hm_webview2_renderpane_simple_server3", port, key);
  
    // 指定のパラメータでレンダーペインを開く。browserpanecommand にして、targetを "_each" にしてもほぼ同じこと
    browserpanecommand({
        target: "_each",
        url: absoluteUrl,
        show: 1,
        size: 1000,
        zoom: "50%",
        watch: 0,
        watchsave: 0
    });
}
  
if (port > 0 ) {
    main();
} else {
    console.log("サーバー構築失敗");
}
  
} // js

Webサイトの方に秀丸のテキストが反映されているのがわかる

そして秀丸エディタ上のテキストを編集してみましょう

ブラウザ枠でなくとも良い

さらに、「個別ブラウザ枠のURL」をコピーして...

Chromeで開いてみましょう

再び秀丸エディタのテキストを編集

するとChrome上のテキストも変化します。

このように、.HTML/JavaScriptはローカルに存在しなくとも、インターネット上にあっても良いのです。
インターネット上にあったとしても、ローカルのあなたの秀丸の内容が反映されます。