# | 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)
[![buddy branch](https://app.buddy.works/xdrmbracketsdev/clifmt/repository/branch/master/badge.svg?token=33f90a953be299fc439c760e2eab36c708f8ea1f87f1159dd77924589b364b2d "buddy branch")](https://app.buddy.works/xdrmbracketsdev/clifmt/repository/branch/master)
Simple utility written in `go` that extends the standard `fmt.Sprintf` and `fmt.Printf` functions. It allows you to set foreground/background color, **bold**, underlined and _italic_ text.
- [(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)
+ [Hyperlink format](#hyperlink-format)
* [Example](#example-6)
- [(2) Screenshot](#2-screenshot)
* [Colorizing format example :](#colorizing-format-example-)
* [Markdown-like format example](#markdown-like-format-example)
- [(3) Incoming features](#3-incoming-features)
----
## (1) Format
### [Colorization]
#### Base format
```go
${}(:)
```
- `` is the text that will be colorized.
- `` 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`*).
- `` is the name of the background color with the same syntax as for the foreground.
###### Example
```go
clifmt.Printf("normal text ${red text over black}(red:#000) normal text")
```
> Note that it is not recommended to nest the different coloring formats.
#### Foreground only
```go
${}()
```
- `` is the text that will be colorized.
- `` is the name of the foreground color.
###### Example
```go
clifmt.Printf("normal text ${red text}(red) normal text")
```
#### Background only
```go
${}(:)
```
- `` is the text that will be colorized.
- `` is the name of the background color.
###### Example
```go
clifmt.Printf("normal text ${text over red}(#ff0000) normal text")
```
### [Markdown-like format]
#### Bold format
```go
****
```
- `` is the text that will be bold.
###### Example
```go
clifmt.Printf("normal text **bold text** normal text")
```
#### Italic format
```go
**
```
- `` is the text that will be italic.
###### Example
```go
clifmt.Printf("normal text *italic text* normal text")
```
#### Underline format
```go
__
```
- `` is the text that will be underlined.
###### Example
```go
clifmt.Printf("normal text _underline text_ normal text")
```
#### Hyperlink format
```go
[]()
```
- `` is the text that will be displayed.
- `` is the url the hyperlink links to.
###### Example
```go
clifmt.Printf("normal text [hyper](link) normal text")
```
----
## (2) Screenshot
###### Colorizing format example :
![colorizing example](https://0x0.st/sCPc.png)
###### Markdown-like format example
![markdown-like example](https://0x0.st/sC9F.png)
----
## (3) Incoming features
- [x] **markdown-like formatting** - bold, italic, underlined, (strike-through?)
- [ ] **global alignment** - align text dynamically
- [ ] **progress-line** - redrawing format to show, for instance an animated progress bar on the same line