# Term

Term.TermModule
Term.jl

Welcome to Term.jl! Term.jl is a Julia library for producing styled, beautiful terminal output.

Documentation

See https://fedeclaudi.github.io/Term.jl for documentation.

Demonstration

using Term
const term_demo = joinpath(dirname(pathof(Term)), "..", "README.jl")
include(term_demo) # view demo
less(term_demo) # see demo code

Example

begin
println(@green "this is green")
println(@blue "and this is blue")
println()
println(@bold "this is bold")
println(@underline "and this is underlined")
end
source
Term.ThemeType
Theme

Stores colors for different semantically relevant items, used to style outputs to terminal.

source
Term.calc_nrows_ncolsFunction
calc_nrows_ncols(n, aspect::Union{Nothing,Number,NTuple} = nothing)

Computes the number of rows and columns to fit a given number n of subplots in a figure with aspect aspect. If aspect is nothing, chooses the best fir between a default and a unit aspect ratios.

source
Term.do_by_lineMethod
do_by_line(fn::Function, text::String)

Apply fn to each line in the text.

The function fn should accept a single ::String argument.

source
Term.fillinMethod
fillin(text::String)::String

Ensure that each line in a multi-line text has the same width.

source
Term.get_lr_widthsMethod

getlrwidths(width::Int)

To split something with width in 2, get the lengths of the left/right widths.

When width is even that's easy, when it's odd we need to be careful.

source
Term.has_ansiMethod
has_ansi(text::String)

Returns true if text includes a MarkupTag

source
Term.has_markupMethod
has_markup(text::String)

Returns true if text includes a MarkupTag

source
Term.highlightMethod
highlight(text::AbstractString, theme::Theme, like::Symbol)

Hilights an entire text as if it was a type of semantically relevant text of type :like.

source
Term.highlightMethod
highlight(text::AbstractString, theme::Theme)

Highlighs a text introducing markup to style semantically relevant segments, colors specified by a theme object.

source
Term.justifyMethod
justify(text::AbstractString, width::Int)::String

Justify a piece of text spreading out text to fill in a given width.

source
Term.read_file_linesMethod
read_file_lines(path::String, start::Int, stop::Int)

Read a file and select only lines in range start -> stop.

Returns a vector of tuples with the line number and line content.

source
Term.replace_ansiMethod
replace_ansi(input_text)

Replace ANSI tags with ¦.

The number of '¦' matches the length of the ANSI tags. Used when we want to hide ANSI tags but keep the string length intact.

source
Term.replace_textFunction
replace_text(text::AbstractString, start::Int, stop::Int, char::Char='_')

Replace a section of a text between start and stop with another string composed of repeats of a given character char.

source
Term.replace_textMethod
replace_text(text::AbstractString, start::Int, stop::Int, replace::AbstractString)

Replace a section of a text between start and stop with replace.

source
Term.reshape_textMethod
reshape_text(text::AbstractString, width::Int)

Reshape a text to have a given width.

Insert newline characters in a string so that each line is within the given width.

source
Term.text_to_widthMethod
text_to_width(text::AbstractString, width::Int)::String

Cast a text to have a given width by reshaping, it and padding. It includes an option to justify the text (:left, :right, :center, :justify).

source
Term.@styleMacro
@style "text" style1 style2...

Applies a sequence of styles to a piece of text, such that

println(@style "my text" bold green underline)

will print my text as bold, green and underlined

source