* denisenkom/go-mssqldb untagged -> v0.9.0 * github.com/editorconfig/editorconfig-core-go v2.3.7 -> v2.3.8 * github.com/go-testfixtures/testfixtures v3.4.0 -> v3.4.1 * github.com/mholt/archiver v3.3.2 -> v3.5.0 * github.com/olivere/elastic v7.0.20 -> v7.0.21 * github.com/urfave/cli v1.22.4 -> v1.22.5 * github.com/xanzy/go-gitlab v0.38.1 -> v0.39.0 * github.com/yuin/goldmark-meta untagged -> v1.0.0 * github.com/ethantkoenig/rupture 0a76f03a811a -> c3b3b810dc77 * github.com/jaytaylor/html2text 8fb95d837f7d -> 3577fbdbcff7 * github.com/kballard/go-shellquote cd60e84ee657 -> 95032a82bc51 * github.com/msteinert/pam 02ccfbfaf0cc -> 913b8f8cdf8b * github.com/unknwon/paginater 7748a72e0141 -> 042474bd0eae * CI.restart() Co-authored-by: techknowlogick <techknowlogick@gitea.io>
		
			
				
	
	
		
			140 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# html2text
 | 
						|
 | 
						|
[](https://godoc.org/github.com/jaytaylor/html2text)
 | 
						|
[](https://travis-ci.org/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
 | 
						|
 | 
						|
```go
 | 
						|
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"jaytaylor.com/html2text"
 | 
						|
)
 | 
						|
 | 
						|
func main() {
 | 
						|
	inputHTML := `
 | 
						|
<html>
 | 
						|
  <head>
 | 
						|
    <title>My Mega Service</title>
 | 
						|
    <link rel=\"stylesheet\" href=\"main.css\">
 | 
						|
    <style type=\"text/css\">body { color: #fff; }</style>
 | 
						|
  </head>
 | 
						|
 | 
						|
  <body>
 | 
						|
    <div class="logo">
 | 
						|
      <a href="http://jaytaylor.com/"><img src="/logo-image.jpg" alt="Mega Service"/></a>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <h1>Welcome to your new account on my service!</h1>
 | 
						|
 | 
						|
    <p>
 | 
						|
      Here is some more information:
 | 
						|
 | 
						|
      <ul>
 | 
						|
        <li>Link 1: <a href="https://example.com">Example.com</a></li>
 | 
						|
        <li>Link 2: <a href="https://example2.com">Example2.com</a></li>
 | 
						|
        <li>Something else</li>
 | 
						|
      </ul>
 | 
						|
    </p>
 | 
						|
 | 
						|
    <table>
 | 
						|
      <thead>
 | 
						|
        <tr><th>Header 1</th><th>Header 2</th></tr>
 | 
						|
      </thead>
 | 
						|
      <tfoot>
 | 
						|
        <tr><td>Footer 1</td><td>Footer 2</td></tr>
 | 
						|
      </tfoot>
 | 
						|
      <tbody>
 | 
						|
        <tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td></tr>
 | 
						|
        <tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td></tr>
 | 
						|
      </tbody>
 | 
						|
    </table>
 | 
						|
  </body>
 | 
						|
</html>`
 | 
						|
 | 
						|
	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   |
 | 
						|
+-------------+-------------+
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## 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
 |