40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # go-wordwrap
 | |
| 
 | |
| `go-wordwrap` (Golang package: `wordwrap`) is a package for Go that
 | |
| automatically wraps words into multiple lines. The primary use case for this
 | |
| is in formatting CLI output, but of course word wrapping is a generally useful
 | |
| thing to do.
 | |
| 
 | |
| ## Installation and Usage
 | |
| 
 | |
| Install using `go get github.com/mitchellh/go-wordwrap`.
 | |
| 
 | |
| Full documentation is available at
 | |
| http://godoc.org/github.com/mitchellh/go-wordwrap
 | |
| 
 | |
| Below is an example of its usage ignoring errors:
 | |
| 
 | |
| ```go
 | |
| wrapped := wordwrap.WrapString("foo bar baz", 3)
 | |
| fmt.Println(wrapped)
 | |
| ```
 | |
| 
 | |
| Would output:
 | |
| 
 | |
| ```
 | |
| foo
 | |
| bar
 | |
| baz
 | |
| ```
 | |
| 
 | |
| ## Word Wrap Algorithm
 | |
| 
 | |
| This library doesn't use any clever algorithm for word wrapping. The wrapping
 | |
| is actually very naive: whenever there is whitespace or an explicit linebreak.
 | |
| The goal of this library is for word wrapping CLI output, so the input is
 | |
| typically pretty well controlled human language. Because of this, the naive
 | |
| approach typically works just fine.
 | |
| 
 | |
| In the future, we'd like to make the algorithm more advanced. We would do
 | |
| so without breaking the API.
 |