Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jaytaylor/html2text

Golang HTML to plaintext conversion library
https://github.com/jaytaylor/html2text

go golang html-emails html2text plaintext

Last synced: 30 days ago
JSON representation

Golang HTML to plaintext conversion library

Awesome Lists containing this project

README

        

# html2text

[![Documentation](https://godoc.org/github.com/jaytaylor/html2text?status.svg)](https://godoc.org/github.com/jaytaylor/html2text)
[![Build Status](https://travis-ci.org/jaytaylor/html2text.svg?branch=master)](https://travis-ci.org/jaytaylor/html2text)
[![Report Card](https://goreportcard.com/badge/github.com/jaytaylor/html2text)](https://goreportcard.com/report/github.com/jaytaylor/html2text)

### Converts HTML into text of the markdown-flavored variety

## Introduction

Ensure your emails are readable by all!

Turns HTML into raw text, useful for sending fancy HTML emails with an equivalently nicely formatted TXT document as a fallback (e.g. for people who don't allow HTML emails or have other display issues).

html2text is a simple golang package for rendering HTML into plaintext.

There are still lots of improvements to be had, but FWIW this has worked fine for my [basic] HTML-2-text needs.

It requires go 1.x or newer ;)

## Download the package

```bash
go get jaytaylor.com/html2text
```

## Example usage

### Library

```go
package main

import (
"fmt"

"jaytaylor.com/html2text"
)

func main() {
inputHTML := `


My Mega Service

body { color: #fff; }


Welcome to your new account on my service!


Here is some more information:




Header 1Header 2


Footer 1Footer 2


Row 1 Col 1Row 1 Col 2
Row 2 Col 1Row 2 Col 2



`

text, err := html2text.FromString(inputHTML, html2text.Options{PrettyTables: true})
if err != nil {
panic(err)
}
fmt.Println(text)
}
```

Output:
```
Mega Service ( http://jaytaylor.com/ )

******************************************
Welcome to your new account on my service!
******************************************

Here is some more information:

* Link 1: Example.com ( https://example.com )
* Link 2: Example2.com ( https://example2.com )
* Something else

+-------------+-------------+
| HEADER 1 | HEADER 2 |
+-------------+-------------+
| Row 1 Col 1 | Row 1 Col 2 |
| Row 2 Col 1 | Row 2 Col 2 |
+-------------+-------------+
| FOOTER 1 | FOOTER 2 |
+-------------+-------------+
```

### Command line

```
echo '

hi
' | html2text
```

## Unit-tests

Running the unit-tests is straightforward and standard:

```bash
go test
```

# License

Permissive MIT license.

## Contact

You are more than welcome to open issues and send pull requests if you find a bug or want a new feature.

If you appreciate this library please feel free to drop me a line and tell me! It's always nice to hear from people who have benefitted from my work.

Email: jay at (my github username).com

Twitter: [@jtaylor](https://twitter.com/jtaylor)

# Alternatives

https://github.com/k3a/html2text - Lightweight