百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
D

dedent

> 编程语言
开源

⬅️ ES6 字符串标签,可从多行字符串中删除缩进。

1.2K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

⬅️ ES6 字符串标签,可从多行字符串中删除缩进。

dedent

A string tag that strips indentation from multi-line strings. ⬅️

Usage

bash
npm i dedent
…
A string that gets so long you need to break it over
multiple lines. Luckily dedent is here to keep it
readable without lots of spaces ending up in the string
itself.

Leading and trailing lines will be trimmed, so you can write something like
this and have it work as you expect:

	* how convenient it is
	* that I can use an indented list
		- and still have it do the right thing

That's all.

Wait! I lied. Dedent can also be used as a function.

Options

You can customize the options dedent runs with by calling its withOptions method with an object:

javascript
import dedent from 'dedent';

dedent.withOptions({ /* ... */ })`input`;
dedent.withOptions({ /* ... */ })(`input`);

options returns a new dedent function, so if you'd like to reuse the same options, you can create a dedicated dedent function:

javascript
import dedent from 'dedent';

const dedenter = dedent.withOptions({ /* ... */ });

dedenter`input`;
dedenter(`input`);

alignValues

When an interpolation evaluates to a multi-line string, only its first line is placed where the ${...} appears. Subsequent lines keep whatever indentation they already had inside that value (often none), so they can appear “shifted left”.

Enable alignValues to fix that visual jump. When true, for every multi-line interpolated value, each line after the first gets extra indentation appended so it starts in the same column as the first line.

javascript
import dedent from "dedent";

const list = dedent`
	- apples
	- bananas
	- cherries
`;

const withoutAlign = dedent`
	List without alignValues (default):
		${list}
	Done.
`;

const withAlign = dedent.withOptions({ alignValues: true })`
	List with alignValues: true
		${list}
	Done.
`;

console.log(withoutAlign);
console.log("---");
console.log(withAlign);
List without alignValues (default):
	- apples
- bananas
- cherries
Done.
---
List with alignValues: true
	- apples
	- bananas
	- cherries
Done.

escapeSpecialCharacters

JavaScript string tags by default add an extra \ escape in front of some special characters such as $ dollar signs. dedent will escape those special characters when called as a string tag.

If you'd like to change the behavior, an escapeSpecialCharacters option is available. It defaults to:

  • false: when dedent is called as a function
  • true: when dedent is called as a string tag
javascript
import dedent from "dedent";

// "$hello!"
dedent`
	$hello!
`;

// "\$hello!"
dedent.withOptions({ escapeSpecialCharacters: false })`
	$hello!
`;

// "$hello!"
dedent.withOptions({ escapeSpecialCharacters: true })`
	$hello!
`;

For more context, see Feature: Add an option to disable special character escaping.

trimWhitespace

By default, dedent will trim leading and trailing whitespace from the overall string.

This can be disabled by setting trimWhitespace: false.

javascript
import dedent from "dedent";

// "hello!"
dedent`
	hello! 
`;

// "\nhello! \n"
dedent.withOptions({ trimWhitespace: false })`
	hello! 
`;

// "hello!"
dedent.withOptions({ trimWhitespace: true })`
	hello! 
`;

License

MIT

Contributors

Adrian Jost

Andri Möll

Benny Powers - עם ישראל חי!

Craig Spence

Desmond Brand

Gareth Jones

Gray Zhang

Haroen Viaene

Hyeseong Kim

John L. Armstrong IV

Josh Goldberg ✨

Pratap Vardhan

Simon Lydell

Yusuke Iinuma

Yves M.

d07riv

mizdra

sirian

This package was templated with create-typescript-app.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScriptdedentes2015es6javascript

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言