tprint
We've seen tprint before. When passed a string with markup information it will print it with the correct style.
import Term: tprint
tprint("This text has {bold gold1 underline}style!")
This text has style!
But there's more. Compare Base.print
with Term.tprint
here:
print("This is a: ", 1, "of type", typeof(1), "this is a function", print)
tprint("This is a: ", 1, "of type", typeof(1), "this is a function", print)
This is a: 1of typeInt64this is a functionprint
This is a: 1 of type Int64 this is a function print
you can see two differences. The first is that when passing multiple comma separated arguments tprint
inserts a space between them, making the output easier to parse. The second is that it colors certain objects types (Number
, DataType
and Function
in the example). Thus any number will be printed blue, function names will be yellow etc.
In addition, tprint
will automatically highlight numbers, types etc... in your strings.
tprint("This is a: 1 of type ::Int64 this is a function `print`")
This is a: 1 of type ::Int64 this is a function `print`
By default tprint
highlights strings before printing them out. If you don't like that, set tprint(...; highlight=false)
! Also, if your text already has markup or ANSI style information, it won't be highlighted: highlighting styled text get messy!
Tprint
can also print renderables, of course.
tprint(Panel(; width=22, height=2), Panel(; width=22, height=3))
╭────────────────────╮
│ │
╰────────────────────╯
╭────────────────────╮
│ │
╰────────────────────╯
As you can see the renderables are printed one above the other.
Finally, you should know that like print
has println
, so tprint
has tprintln
to add a new line to the output.
With this we conclude our overview of the basic elements of Term
: markup style to create styled text, tprint
to print it to console, renderables like Panel
and TextBox
and the layout syntax to create beautiful terminal output. There's a lot more you can use Term
for, but styled text, panels and layout operators will get you far! Enjoy!