Article Outline
実用的なプログラミング! node.jsでファイル名の変更とファイルの生成
TOC
Collection Outline
最新記事
- Next.js 北九州市のイベント情報を取得する
- Next.js × now がやばい
- 競プロ日記 ABC15
- 競プロ日記 ABC159
- Kaggle 住宅価格予測 単回帰分析してみる
- 単回帰分析のFlow
- React Native Styleをいい感じに
- React Movie Search を TS で.
- useRefの使い方がわからん
- Heroku PostgreSQL の使い方
- ラズパイとLEDマトリクスパネルで遊ぶ
- querySelectorAllで取得した要素は配列ではないらしい
- React HookでTodoアプリを作る
- Kaggle 住宅価格予測 重回帰分析してみる
- Kaggle 住宅価格予測 多項式回帰してみる
- Webフロントのすべて
- 新しいMacBook Airが届いた!
- 日向坂46のニュースをスクレイピング
- イコラブのニュースをスクレイピングする!
- 推しのブログをスクレイピング
ブログのファイル
いらないハイフン
雑なライム。。
ファイル名の変更
これを こうじゃ!
コード
import * as fs from "fs";
const path = process.cwd();
const fileNames = fs.readdirSync(path);
const markdownFiles = fileNames.filter((name) => /\.md$/.test(name));
markdownFiles.map((prevName) => {
const nextName = prevName.replace(/-/g, "");
fs.rename(prevName, nextName, (err) => {
if (err) {
console.log(`Rename Failed: ${err}`);
} else {
console.log(`${prevName} --> ${nextName}`);
}
});
});
process.cwd
でファイルが実行されているパスが取得できます。 初知り
ファイル・ディレクトリの操作はfsモジュールがやってくれます。
ファイル名を全て取得 -> マークダウンファイルだけにする -> 新しいファイル名を決める -> ファイル名の変更 って感じです。
正規表現って皆覚えてるんですか??
ぼくは全く覚えてないのでいつもぐぐりまくってますね。
このまえツイッターで見つけたこのサイトが便利だったので共有します。 正規表現が視覚化できるのですこし理解が進みます。
ファイルの生成
ついでにいつも手作業でやってたブログのファイル作成のプログラムも作成します。
仕様はその日の日付のファイルを作成してテンプレートを埋め込むです。
import * as fs from "fs";
const year = (new Date().getFullYear()).toString();
const month = (new Date().getMonth() + 1).toString().padStart(2, "0");
const date = (new Date().getDate()).toString().padStart(2, "0");
const fileName = `${year}${month}${date}.md`;
const isExist = fs.existsSync(fileName);
const template = `---
title: ''
date: ${year}-${month}-${date}
tags: []
---
`;
if (!isExist) {
try {
fs.writeFileSync(fileName, template);
console.log(`Success: ${fileName} was created.`);
} catch (e) {
console.log(`Failed: Can not create ${fileName}`);
}
} else {
console.log(`Failed: ${fileName} is already exist.`);
}
日付の操作はそろそろ慣れてきましたが、やっぱり標準のDateオブジェクトは使いづらい。。
padStartメソッド、体感よく使ってます。好きです。
fs.writeFileSyncメソッドの仕様が指定されたファイル名が存在すれば上書きする、でそれは困る(困る)ので存在したときは生成しないようにしています。
実用的なプログラミングってあんましないですよね
いっつもしょうもないプログラム作ってる気がする(アイドルのサイトスクレイピングしたりね。)