lithammer/dedent

Remove any common leading whitespace from multiline strings

Go

122

65 commits

updated Aug 1, 2026

See the code

README

Dedent

Build Status Godoc

Removes common leading whitespace from multiline strings. Inspired by textwrap.dedent in Python.

Usage / example

Imagine the following snippet that prints a multiline string. You want the indentation to both look nice in the code as well as in the actual output.

package main

import (
	"fmt"

	"github.com/lithammer/dedent"
)

func main() {
	s := `
		Lorem ipsum dolor sit amet,
		consectetur adipiscing elit.
		Curabitur justo tellus, facilisis nec efficitur dictum,
		fermentum vitae ligula. Sed eu convallis sapien.`
	fmt.Println(dedent.Dedent(s))
	fmt.Println("-------------")
	fmt.Println(s)
}

To illustrate the difference, here's the output:

$ go run main.go
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Curabitur justo tellus, facilisis nec efficitur dictum,
fermentum vitae ligula. Sed eu convallis sapien.
-------------

		Lorem ipsum dolor sit amet,
		consectetur adipiscing elit.
		Curabitur justo tellus, facilisis nec efficitur dictum,
		fermentum vitae ligula. Sed eu convallis sapien.

License

MIT

dedent
go

Significant stargazers

Tim Sweña (Swast)

328 followers · starred Aug 2018

dezza

33 followers · starred Nov 2023

Radosław Panuszewski

17 followers · starred Sep 2025

lithammer/dedent

Remove any common leading whitespace from multiline strings

Go

122

65 commits

updated Aug 1, 2026

See the code

README

Dedent

Build Status Godoc

Removes common leading whitespace from multiline strings. Inspired by textwrap.dedent in Python.

Usage / example

Imagine the following snippet that prints a multiline string. You want the indentation to both look nice in the code as well as in the actual output.

package main

import (
	"fmt"

	"github.com/lithammer/dedent"
)

func main() {
	s := `
		Lorem ipsum dolor sit amet,
		consectetur adipiscing elit.
		Curabitur justo tellus, facilisis nec efficitur dictum,
		fermentum vitae ligula. Sed eu convallis sapien.`
	fmt.Println(dedent.Dedent(s))
	fmt.Println("-------------")
	fmt.Println(s)
}

To illustrate the difference, here's the output:

$ go run main.go
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Curabitur justo tellus, facilisis nec efficitur dictum,
fermentum vitae ligula. Sed eu convallis sapien.
-------------

		Lorem ipsum dolor sit amet,
		consectetur adipiscing elit.
		Curabitur justo tellus, facilisis nec efficitur dictum,
		fermentum vitae ligula. Sed eu convallis sapien.

License

MIT

dedent
go

Significant stargazers

Tim Sweña (Swast)

328 followers · starred Aug 2018

dezza

33 followers · starred Nov 2023

Radosław Panuszewski

17 followers · starred Sep 2025