晴歩雨描

晴れた日は外に出て歩き、雨の日は部屋で絵を描く

WordPress)はてなブログのブログカードをWordPressローカルリンクのショートコードに変更するJScript作成。

自宅のWindowsPCローカルにWordPressをインストールしている。

はてなブログをエクスポートして、WordPressにインポートした。

ブログカードは、はてなブログに依存したままになる。自分のブログ記事へのリンクをクリックすると、はてなブログの記事が開いてしまう。

自分のブログ記事へのリンクになっているブログカードの参照先を、自宅PCローカルのWordPressの自分のブログを参照するようにする。

下の形式のブログカードを、WordPressショートコードに変換する。

はてなブログ・ブログカード・サンプル≫

<p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2F2ndart.hatenablog.com%2Fentry%2F2020%2F07%2F16%2F145622" title="タイトル" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe></p>

↓↓↓↓↓

WordPress・ブログカード用ショートコード・サンプル≫

<p>[nmblogcard url="/wordpress/2020/07/16/2020-07-16-14562/"]</p>
スクリプトJScript「blogcard-chg.jse」を作成。

エクスポートファイル内の画像リンクをWordPressローカルに変えるJScriptの後で使う。

※ エクスポートファイルをこのスクリプトファイル「hatena-img-chg.jse」に、ドラッグ&ドロップして使う。

xxx.hatenablog.com.export-imgchg.txt

↓↓↓(変更後のファイル)

xxx.hatenablog.com.export-imgchg-blogcard.txt

≪blogcard-chg.jse≫

//	*** ドラッグ&ドロップしたパス情報を取得
var args = WScript.Arguments;
var inputFile = args(0);

var adTypeText = 2;
var adSaveCreateOverWrite = 2;	// 上書き
var adReadAll = -1;		// 全行

var sr1 = new ActiveXObject("ADODB.Stream");
sr1.Type = adTypeText;
sr1.charset = "utf-8";
sr1.Open();
sr1.LoadFromFile(inputFile);	//  はてなブログ エクスポート・ファイル

var str = sr1.ReadText( adReadAll );
sr1.Close();

var stw = new ActiveXObject("ADODB.Stream");
stw.type = adTypeText;
stw.charset = "utf-8";
stw.Open();

var out = "";
var lines = str.split(/\r?\n/);
var card = false;
for (var i=0, z=lines.length; i<z; i++) {
	card = false;
	var iframe = lines[i].match(/<iframe(.*)<\/iframe>/);
	if (iframe) {
		var src = iframe[1].match(/src="https?:\/\/hatenablog-parts.com\/embed\?url\=https?%3A%2F%2F2ndart\.hatenablog.com%2Fentry%2F(.*)" /);		// 何故か "以降も入ってくる。
		if (src) {
			var urlymd = src[1].split('"');
			if (urlymd) {
				var spt = urlymd[0] .split('%2F');
				var ymd = spt[0] + '/' + spt[1] + '/' + spt[2] + '/' + spt[0] + '-' + spt[1] + '-' + spt[2] + '-' + spt[3];
				out = out + '<p>[nmblogcard url="/wordpress/' + ymd + '/"]</p>\n';
				card = true;
			}
		}
	}
	if (!card) {
		out = out + lines[i] + "\n";
	}
}
stw.WriteText(out);
stw.SaveToFile(inputFile.slice(0,-4) + "-blogcard.txt", adSaveCreateOverWrite);
stw.Close();

変換したエクスポートファイルをWordPressでインポートすることで、ブログカードがショートコードによるタイプになり、自宅PCローカルのWordPressの自分のブログを参照するようになる。