Memorandum

新規投稿用のファイルを作成するやつ

新規投稿を作る場合

.md のファイルを作成するぐらいなんてことはないんだけど、日付文字列を ISO8601 形式で時刻は秒までみたいなフォーマットで書くのがめんどいので、以下の Node.js で動かす JS 書いた。

const filename = process.argv[2];
const d = new Date(new Date(Date.now()).getTime() + 9 * 3600000);
const jst_date = d.toISOString().split('Z')[0].replace(/\.(\d{3})/, '') + '+09:00';

const out = `---
title: ""
date: "${ jst_date }"
excerpt: ""
slag: "${ filename }"
---

# ${ filename }

`;

const filepath = "./_posts/" + (filename ? filename : "new-post") + ".md";
require('fs').writeFile(filepath, out, function (err) {
    if (err) { throw err; }
    console.log(`Created: ${ filepath }`);
});

JavaScriptで JST の ISO8601フォーマットに変換する

日付をDate.now()で取得するとUTCの基準時間で取得できるので、9時間ずらして、ミリ秒の.000の部分を削除して出来上がり。

1行でも書けるけど、複数行に分けたほうが可読性高いと思う。

const jst_date = new Date(new Date(Date.now()).getTime() + 9 * 3600000).toISOString().split('Z')[0].replace(/\.(\d{3})/, '') + '+09:00';

JSのテンプレートリテラル便利

まじ便利。