tfunk

    4.0.0 • Public • Published

    tfunk Build Status

    Multi-colour console output from Chalk with added awesome.

    by @shakyshane & @AydinHassan

    tfunk

    Install

    npm install tfunk

    Usage

    Syntax rules:

    { <color> : YOUR STRING }

    Example

    {blue:This is a blue line}

    } is optional

    {blue:This is a blue line <- Perfectly valid

    Usage

    var tFunk = require("tfunk");
     
    console.log( tfunk("{cyan:tFunk terminal colours") )
     
    // => tFunk terminal colours

    Or get a custom compiler with a set prefix:

    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.

    var compiler = require("tfunk").Compiler({
        "warn": function(string) {
            return this.compile("{red:WARNING:" + string);
        }
    });

    Now you can use warn anywhere you like.

    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

    // chalk
    console.log( chalk.red("This has a single colour") );
     
    // tFunk
    console.log( tFunk("{red:This has a single colour") );

    Single Colour mid string

    // 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

    // 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

    // chalk
    console.log( chalk.green("This has ") + chalk.cyan("two colours") );
     
    // tFunk
    console.log( tFunk("{green:This has {cyan:two colours") );

    Nested Colours

    // 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

    // 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

    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

    console.log( tFunk("This has a \\{\\{mustache\\}\\}") );

    TODO

    • Colours
    • Nested Colours
    • Custom syntax
    • Prefixed compiler
    • Make the chain-able API work like this "{white.bgRed: White text, red BG"
    • Offer a way of escaping. Right now, ALL instances of } will be lost

    Install

    npm i tfunk

    DownloadsWeekly Downloads

    506,857

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    32.3 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar