Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shakyshane/tfunk
Multi-colour console output from Chalk with added awesome.
https://github.com/shakyshane/tfunk
Last synced: about 1 month ago
JSON representation
Multi-colour console output from Chalk with added awesome.
- Host: GitHub
- URL: https://github.com/shakyshane/tfunk
- Owner: shakyShane
- Created: 2014-07-11T10:54:42.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-06-12T09:20:39.000Z (over 3 years ago)
- Last Synced: 2024-11-08T07:51:00.739Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 98.6 KB
- Stars: 13
- Watchers: 3
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
##tfunk [![Build Status](https://travis-ci.org/shakyShane/tfunk.svg)](https://travis-ci.org/shakyShane/tfunk)
Multi-colour console output from [Chalk](https://github.com/sindresorhus/chalk#styles) with added awesome.
by [@shakyshane](https://github.com/shakyShane) & [@AydinHassan](https://github.com/AydinHassan)
![tfunk](http://f.cl.ly/items/15102k441h1U1Z1l253J/Screen%20Shot%202014-09-10%20at%2022.05.15.png)
##Install
```bash
npm install tfunk
```##Usage
**Syntax rules:**
`{` `` `:` `YOUR STRING` `}`
**Example**
`{blue:This is a blue line}`
**`}` is optional**
`{blue:This is a blue line` <- Perfectly valid
##Usage
```js
var tFunk = require("tfunk");console.log( tfunk("{cyan:tFunk terminal colours") )
// => tFunk terminal colours
```Or get a custom compiler with a set prefix:
```js
var compiler = require("tfunk").Compiler({
prefix: "[{magenta:tFunk}]"
});console.log( compiler.compile("tFunk is awesome") );
console.log( compiler.compile("don't you think?") );// => [tFunk] tFunk is awesome
// => [tFunk] don't you think?
```**Define your own syntax**
You can define your own methods, they receive the string section as the first parameter & have access to the compiler
through `this.compile()` keyword.```js
var compiler = require("tfunk").Compiler({
"warn": function(string) {
return this.compile("{red:WARNING:" + string);
}
});
```Now you can use `warn` anywhere you like.
```js
console.log( compiler.compile("{warn: Could not file your config file...") );// => WARNING: Could not file your config file...
```##Examples
Here are some comparisons to chalk, to help you understand how to use tFunk.
###Single Colours
```js
// chalk
console.log( chalk.red("This has a single colour") );// tFunk
console.log( tFunk("{red:This has a single colour") );
```###Single Colour mid string
```js
// chalk
console.log( "This has a single colour " + chalk.cyan("that begins mid-string") );// tFunck
console.log( tFunk("This has a single colour {cyan:that begins mid-string") );
```###Single Colour with end point
```js
// chalk
console.log( chalk.red("This has a single colour with ") + "an endpoint");// tFunk
console.log( tFunk("{red:This has a single colour with }an endpoint") );
```###Two Colours
```js
// chalk
console.log( chalk.green("This has ") + chalk.cyan("two colours") );// tFunk
console.log( tFunk("{green:This has {cyan:two colours") );
```###Nested Colours
```js
// chalk
console.log( chalk.green("This has a colour " + chalk.cyan("nested inside") + " another colour") );//tFunk
console.log( tFunk("{green:This has a colour {cyan:nested inside} another colour") );
```###Multiple Nested
```js
// chalk
console.log( chalk.blue("Multiple " + chalk.cyan("NESTED") + " styles in " + chalk.red("the same string") + " with an ending") );// tFunk
console.log( tFunk("{blue:Multiple {cyan:NESTED} styles in {red:the same string} with an ending") );
```###Multi line
```js
var multiline = require("multiline");var string = multiline(function () {/*
{cyan:This is a multi-line coloured string
With a single {yellow:yellow} word in the center of a line
Pretty cool huh?
*/});console.log( tFunk(string) );
```###Escaping when you need curly braces
```js
console.log( tFunk("This has a \\{\\{mustache\\}\\}") );
```##TODO
- [x] Colours
- [x] Nested Colours
- [x] Custom syntax
- [x] Prefixed compiler
- [x] Make the chain-able API work like this `"{white.bgRed: White text, red BG"`
- [x] Offer a way of escaping. Right now, ALL instances of `}` will be lost