https://github.com/lukasbach/noindent
Remove indentation from multiline strings, e.g. ones that were created with template literals
https://github.com/lukasbach/noindent
indent indentation literals multiline pretty string template template-literals utility
Last synced: about 1 year ago
JSON representation
Remove indentation from multiline strings, e.g. ones that were created with template literals
- Host: GitHub
- URL: https://github.com/lukasbach/noindent
- Owner: lukasbach
- License: mit
- Created: 2021-06-02T01:04:18.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-06-02T01:11:35.000Z (about 5 years ago)
- Last Synced: 2025-02-15T08:28:06.442Z (over 1 year ago)
- Topics: indent, indentation, literals, multiline, pretty, string, template, template-literals, utility
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/noindent
- Size: 45.9 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# `noindent`
[](https://github.com/lukasbach/noindent/actions/workflows/test.yml)
Allows you to use multiline strings created with template literals that
were constructed with indentation. `noindent` cleans out the indentation,
making the resulting string clean from inconsistent indentations while
still being easy to read on code.
Easy to use with trivial interface, creates no additional dependencies,
includes typings and is tiny (616 bytes minified, 369 bytes gzipped).
## Example
```typescript
import noindent from 'noindent'
(() => {
const result = noindent(`
Example input
Usually, this would result in a string
that contains lots of unwanted whitespaces
Which can lead to unwanted results if
the strings are used by whitespace-sensitive
code
Or if the output is used as text where
whitespace is visible.
`)
})()
```
produces `result` (whitespaces and line breaks that
are preserved are displayed as symbols):
```
Example·input⏎
⏎
Usually,·this·would·result·in·a·string⏎
that·contains·lots·of·unwanted·whitespaces⏎
⏎
··Which·can·lead·to·unwanted·results·if⏎
··the·strings·are·used·by·whitespace-sensitive⏎
··code⏎
⏎
Or·if·the·output·is·used·as·text·where⏎
whitespace·is·visible.
```
Note that further indentations, i.e. blocks of text that
are further offset from the rest of the text, are preserved. Also,
if the string is ended in a last line which only contains spaces, this
line is omitted.
## Installation
Install with `yarn add noindent` or `npm i noindent --save`,
then import with `import noindent from 'noindent'`
or `const noindent = require('noindent')`.
## Corner Cases
Various alternative syntax applications should work as well. The following
code snippets all produce the output
```
Test1⏎
Test2⏎
··Test3
```
### Text starts in first line
```typescript
import noindent from 'noindent'
(() => {
const result = noindent(`Test1
Test2
Test3
`)
})()
```
### Text ends on last line with content
```typescript
import noindent from 'noindent'
(() => {
const result = noindent(`
Test1
Test2
Test3`)
})()
```