mirror of
				https://github.com/KevinMidboe/motdGO.git
				synced 2025-10-29 17:50:24 +00:00 
			
		
		
		
	better parsers
This commit is contained in:
		
							
								
								
									
										20
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								README.md
									
									
									
									
									
								
							| @@ -88,6 +88,22 @@ renderStr, _ := ascii.RenderOpts("Hello Fonts", options) | ||||
| fmt.Print(renderStr) | ||||
| ``` | ||||
|  | ||||
| ### Other parser | ||||
| A Parser can be set through the `GetParser` function with a valid key | ||||
| ```go | ||||
| import "github.com/probandula/figlet4go" | ||||
|  | ||||
| // ... | ||||
|  | ||||
| ascii := figlet4go.NewAsciiRender() | ||||
|  | ||||
| options := figlet4go.NewRenderOptions() | ||||
| options.Parser = figlet4go.GetParser("html") | ||||
|  | ||||
| renderStr, _ := ascii.RenderOpts("Hello Fonts", options) | ||||
| fmt.Print(renderStr) | ||||
| ``` | ||||
|  | ||||
| ## Parsers | ||||
| There a currently these Parsers available: | ||||
|  | ||||
| @@ -119,5 +135,7 @@ Other fonts can mainly be found on [figlet](http://www.figlet.org). You have to | ||||
| - [x] Colors in the cli client | ||||
| - [x] No dependencies (fatih/color) | ||||
| - [x] Truecolor support | ||||
| - [ ] More parsers (HTML) | ||||
| - [x] More parsers (HTML) | ||||
| - [x] Better parsers (maybe stored in a map) | ||||
| - [ ] Pointer-Value standarization | ||||
| - [ ] Tests | ||||
|   | ||||
| @@ -37,7 +37,11 @@ func main() { | ||||
| 	options.FontName = *font | ||||
|  | ||||
| 	// Set the parser | ||||
| 	options.Parser = getParser(*parser) | ||||
| 	p, err := figlet4go.GetParser(*parser) | ||||
| 	if err != nil { | ||||
| 		p, _ = figlet4go.GetParser("terminal") | ||||
| 	} | ||||
| 	options.Parser = *p | ||||
|  | ||||
| 	// Set colors | ||||
| 	if *colors != "" { | ||||
| @@ -53,17 +57,6 @@ func main() { | ||||
| 	fmt.Print(renderStr) | ||||
| } | ||||
|  | ||||
| // Get the parser for given flag argument | ||||
| func getParser(parserStr string) figlet4go.Parser { | ||||
| 	switch parserStr { | ||||
| 	case "html": | ||||
| 		return figlet4go.ParserHTML | ||||
| 	// Terminal parser is default | ||||
| 	default: | ||||
| 		return figlet4go.ParserTerminal | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Get a slice with colors to give to the RenderOptions | ||||
| // Splits the given string with the separator ";" | ||||
| func getColorSlice(colorStr string) []figlet4go.Color { | ||||
|   | ||||
							
								
								
									
										20
									
								
								parser.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								parser.go
									
									
									
									
									
								
							| @@ -1,5 +1,7 @@ | ||||
| package figlet4go | ||||
|  | ||||
| import "errors" | ||||
|  | ||||
| // Parser stores some output specific stuff | ||||
| type Parser struct { | ||||
| 	// Name used for switching in colors.go | ||||
| @@ -14,9 +16,19 @@ type Parser struct { | ||||
| 	Replaces map[string]string | ||||
| } | ||||
|  | ||||
| var ( | ||||
| var parsers map[string]Parser = map[string]Parser { | ||||
|  | ||||
| 	// Default terminal parser | ||||
| 	ParserTerminal Parser = Parser{"terminal", "", "", "\n", nil} | ||||
| 	"terminal": Parser{"terminal", "", "", "\n", nil}, | ||||
| 	// Parser for HTML code | ||||
| 	ParserHTML Parser = Parser{"html", "<code>", "</code>", "<br>", map[string]string{" ": " "}} | ||||
| ) | ||||
| 	"html": Parser{"html", "<code>", "</code>", "<br>", map[string]string{" ": " "}}, | ||||
| } | ||||
|  | ||||
| // GetParser returns a parser by its key | ||||
| func GetParser(key string) (*Parser, error) { | ||||
| 	parser, ok := parsers[key] | ||||
| 	if !ok { | ||||
| 		return nil, errors.New("Invalid parser key: " + key) | ||||
| 	} | ||||
| 	return &parser, nil | ||||
| } | ||||
| @@ -14,9 +14,10 @@ type RenderOptions struct { | ||||
| // NewRenderOptions creates new RenderOptions | ||||
| // Sets the default font name | ||||
| func NewRenderOptions() *RenderOptions { | ||||
| 	p, _ := GetParser("terminal") | ||||
| 	return &RenderOptions{ | ||||
| 		FontName: defaultFont, | ||||
| 		Parser:   ParserTerminal, | ||||
| 		Parser:   *p, | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user