🐙

jsで文字列改行を簡単に使えるdedentについての紹介

2023/09/30に公開

ライブラリ

状況

  • trim()とバッククォートなどを使って改行をしたい
const text = `
この状態だと綺麗に
改行も実現される
`.trim();
この状態だと綺麗に
改行も実現される
	const text = `
	インデントがある状態だと
	インデントが含まれた状態になってしまう
	`.trim();
	インデントがある状態だと
	インデントが含まれた状態になってしまう

対処法

JS

https://www.npmjs.com/package/dedent

npm install dedent

TS

https://www.npmjs.com/package/ts-dedent

npm install ts-dedent

tsだったらこっち。

実際のコード

import dedent from "ts-dedent";

自分はts環境なのでts-dedentを入れた

	const text = dedent`
	インデントがある状態でも
	インデントが含まれない状態に!
	`.trim();
インデントがある状態でも
インデントが含まれない状態に!

 const canvasTexture = new THREE.CanvasTexture(
+     this.createCanvasForTexture(w * 20, h * 20, String(dedent(text)), f)
 );

自分はテキストごとに呼び出すのが面倒だったので、自作のテキスト描画クラスの処理の中にdedentを入れて整形してみた。簡単に使えてとても便利!

参考ページ

https://qiita.com/Ryo-Nakano/items/1689f2bdca999a96dc74#20230125--stringdedent-なるものが使えるようになるかも
https://www.webdelog.info/entry/2021/06/20/184841

Discussion