2019-01-25 11:19:06 +00:00
# | extended terminal format |
[![Go version ](https://img.shields.io/badge/go_version-1.11-blue.svg )](https://golang.org/doc/go1.11)
[![Go Report Card ](https://goreportcard.com/badge/git.xdrm.io/go/clifmt )](https://goreportcard.com/report/git.xdrm.io/go/clifmt)
[![Go doc ](https://godoc.org/git.xdrm.io/go/clifmt?status.svg )](https://godoc.org/git.xdrm.io/go/clifmt)
Simple utility written in `go` that extends the standard `fmt.Sprintf` and `fmt.Printf` functions. It allows you to set foreground/background color, **bold** , < u > underlined</ u > and _italic_ text.
2019-01-25 15:19:31 +00:00
<!-- toc -->
- [(1) Format ](#1-format )
- [[Colorization]](#colorization)
- [Base format ](#base-format )
- [Example ](#example )
- [Foreground only ](#foreground-only )
- [Example ](#example-1 )
- [Background only ](#background-only )
- [Example ](#example-2 )
- [[Markdown-like format]](#markdown-like-format)
- [Bold format ](#bold-format )
- [Example ](#example-3 )
- [Italic format ](#italic-format )
- [Example ](#example-4 )
- [Underline format ](#underline-format )
- [Example ](#example-5 )
- [(2) Screenshot ](#2-screenshot )
- [Colorizing format example : ](#colorizing-format-example- )
- [Markdown-like format example ](#markdown-like-format-example )
- [(3) Incoming features ](#3-incoming-features )
<!-- tocstop -->
2019-01-25 11:19:06 +00:00
----
## (1) Format
2019-01-25 15:19:31 +00:00
### [Colorization]
#### Base format
2019-01-25 11:19:06 +00:00
```go
${< target text > }(< fg > :< bg > )
```
- `<target text>` is the text that will be colorized.
2019-01-25 11:22:21 +00:00
2019-01-25 11:19:06 +00:00
- `<fg>` is the name of the foreground color (*c.f. [color list ](https://git.xdrm.io/go/clifmt/src/master/colors.go#L15 )*), or an hex color (*e.g.`#00ffaa`, `#0fa` *).
2019-01-25 11:22:21 +00:00
2019-01-25 11:19:06 +00:00
- `<bg>` is the name of the background color with the same syntax as for the foreground.
2019-01-25 15:19:31 +00:00
2019-01-25 11:22:21 +00:00
###### Example
```go
clifmt.Printf("normal text ${red text over black}(red:#000) normal text")
```
2019-01-25 11:19:06 +00:00
> Note that it is not recommended to nest the different coloring formats.
2019-01-25 15:19:31 +00:00
#### Foreground only
2019-01-25 11:19:06 +00:00
```go
${< target text > }(< fg > )
```
- `<target text>` is the text that will be colorized.
- `<fg>` is the name of the foreground color.
2019-01-25 11:22:21 +00:00
###### Example
```go
clifmt.Printf("normal text ${red text}(red) normal text")
```
2019-01-25 15:19:31 +00:00
#### Background only
2019-01-25 11:19:06 +00:00
```go
${< target text > }(:< bg > )
```
- `<target text>` is the text that will be colorized.
- `<bg>` is the name of the background color.
2019-01-25 11:22:21 +00:00
###### Example
```go
clifmt.Printf("normal text ${text over red}(#ff0000) normal text")
```
2019-01-25 11:19:06 +00:00
2019-01-25 15:19:31 +00:00
### [Markdown-like format]
#### Bold format
```go
**< target text > **
```
- `<target text>` is the text that will be bold.
###### Example
```go
clifmt.Printf("normal text **bold text** normal text")
```
#### Italic format
```go
*< target text > *
```
- `<target text>` is the text that will be italic.
###### Example
```go
clifmt.Printf("normal text *italic text* normal text")
```
#### Underline format
```go
_< target text > _
```
- `<target text>` is the text that will be underlined.
###### Example
```go
clifmt.Printf("normal text _underline text_ normal text")
```
2019-01-25 11:19:06 +00:00
----
## (2) Screenshot
2019-01-25 15:19:31 +00:00
###### Colorizing format example :
![colorizing example ](https://0x0.st/sCPc.png )
###### Markdown-like format example
![markdown-like example ](https://0x0.st/sC9F.png )
2019-01-25 11:19:06 +00:00
----
## (3) Incoming features
2019-01-25 15:19:31 +00:00
- [x] **markdown-like formatting** - bold, italic, underlined, (strike-through?)
2019-01-25 11:19:06 +00:00
- [ ] **global alignment** - align text dynamically
- [ ] **progress-line** - redrawing format to show, for instance an animated progress bar on the same line