ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
実用的なプログラミング! node.jsでファイル名の変更とファイルの生成
ブログのファイル
いらないハイフン
いらないハイフン
雑なライム。。
ファイル名の変更
これを こうじゃ!
コード
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モジュールがやってくれます。
ファイル名を全て取得 -> マークダウンファイルだけにする -> 新しいファイル名を決める -> ファイル名の変更 って感じです。
正規表現って皆覚えてるんですか??
ぼくは全く覚えてないのでいつもぐぐりまくってますね。
このまえツイッターで見つけたこのサイトが便利だったので共有します。 正規表現が視覚化できるのですこし理解が進みます。
https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24
ファイルの生成
ついでにいつも手作業でやってたブログのファイル作成のプログラムも作成します。
仕様はその日の日付のファイルを作成してテンプレートを埋め込むです。
仕様はその日の日付のファイルを作成してテンプレートを埋め込むです。
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メソッドの仕様が指定されたファイル名が存在すれば上書きする、でそれは困る(困る)ので存在したときは生成しないようにしています。
padStartメソッド、体感よく使ってます。好きです。
fs.writeFileSyncメソッドの仕様が指定されたファイル名が存在すれば上書きする、でそれは困る(困る)ので存在したときは生成しないようにしています。
実用的なプログラミングってあんましないですよね
いっつもしょうもないプログラム作ってる気がする(アイドルのサイトスクレイピングしたりね。)
Thanks you for reading.