Packages
io_ansi_table
0.1.2
1.0.40
1.0.39
1.0.38
1.0.37
1.0.36
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.32
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.29
0.3.28
0.3.27
0.3.26
0.3.25
0.3.24
0.3.23
0.3.22
0.3.21
0.3.20
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Writes data to "stdio" in a table with borders and colors. Can choose a table style to change the look of the table.
Current section
Files
Jump to
Current section
Files
config/config.exs
# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
use Mix.Config
# This configuration is loaded before any dependency and is restricted
# to this project. If another project depends on this project, this
# file won't be loaded nor affect the parent project. For this reason,
# if you want to provide default values for your application for
# 3rd-party users, it should be done in your "mix.exs" file.
# You can configure for your application as:
#
# config :io_ansi_table, key: :value
config :elixir, ansi_enabled: true # mix messages in colors
# Example to adjust table position (up to 3 ways):
#
# config :io_ansi_table, margins: [
# top: 1, # line(s) before table
# bottom: 1, # line(s) after table
# left: 2 # space(s) left of table
# ]
# Example of headers and key header to provide:
#
# config :io_ansi_table, headers: [
# "number", "created_at", "updated_at", "id", "title"
# ]
# config :io_ansi_table, key_header: "created_at"
config :io_ansi_table, ansi_enabled: true # table formatting in colors
config :io_ansi_table, default_margins: [ # default table position:
top: 0, # line(s) before table
bottom: 0, # line(s) after table
left: 0 # space(s) left of table
]
config :io_ansi_table, line_types: [
:top, :header, :separator, :data, :bottom
]
config :io_ansi_table, table_styles: %{
light: %{
note: "",
rank: 10,
borders: %{
# left inner right dash
top: {"┌─", "─┬─", "─┐", "─"},
header: {"│" , "│", "│", nil},
separator: {"├─", "─┼─", "─┤", "─"},
data: {"│" , "│", "│", nil},
bottom: {"└─", "─┴─", "─┘", "─"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :light_white,
filler: :normal,
header: {
[:light_yellow, :underline], # key
:light_yellow # non key
},
data: {
:light_cyan, # key
:normal # non key
}
}
},
medium: %{
note: "",
rank: 20,
borders: %{
# left inner right dash
top: {"╔═", "═╤═", "═╗", "═"},
header: {"║", "│" , "║", nil},
separator: {"╟─", "─┼─", "─╢", "─"},
data: {"║" , "│" , "║", nil},
bottom: {"╚═", "═╧═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :light_yellow,
filler: :normal,
header: {
[:light_green, :underline], # key
:light_green # non key
},
data: {
:light_cyan, # key
:normal # non key
}
}
},
dark: %{
note: "",
rank: 30,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :light_green,
filler: :normal,
header: {
[:light_white, :light_red_background], # key
:light_red # non key
},
data: {
:light_magenta, # key
:light_yellow # non key
}
}
},
cyan: %{
note: "light cyan background",
rank: 40,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:light_blue, :light_cyan_background],
filler: :light_cyan_background,
header: {
[:light_yellow, :light_red_background], # key
[:light_red, :light_cyan_background ] # non key
},
data: {
[:light_blue, :light_cyan_background], # key
[:black, :light_cyan_background ] # non key
}
}
},
yellow: %{
note: "light yellow background",
rank: 50,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:green, :light_yellow_background],
filler: :light_yellow_background,
header: {
[:light_white, :light_red_background ], # key
[:light_red, :light_yellow_background] # non key
},
data: {
[:light_blue, :light_yellow_background], # key
[:black, :light_yellow_background ] # non key
}
}
},
green: %{
note: "light green background",
rank: 60,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:light_yellow, :light_green_background],
filler: :light_green_background,
header: {
[:light_yellow, :light_red_background], # key
[:light_red, :light_green_background ] # non key
},
data: {
[:light_blue, :light_green_background], # key
[:black, :light_green_background ] # non key
}
}
},
CYAN: %{
note: "light cyan border",
rank: 70,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:light_cyan, :light_cyan_background],
filler: :normal,
header: {
[:light_white, :light_blue_background], # key
:light_green # non key
},
data: {
:light_yellow, # key
:normal # non key
}
}
},
YELLOW: %{
note: "light yellow border",
rank: 80,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:light_yellow, :light_yellow_background],
filler: :normal,
header: {
[:light_white, :light_blue_background], # key
:light_green # non key
},
data: {
:light_yellow, # key
:normal # non key
}
}
},
GREEN: %{
note: "light green border",
rank: 90,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:light_green, :light_green_background],
filler: :normal,
header: {
[:light_cyan, :reverse], # key
:light_cyan # non key
},
data: {
:light_green, # key
:normal # non key
}
}
},
mixed: %{
note: "fillers revealed",
rank: 100,
borders: %{
# left inner right dash
top: {"╔═", "═╦═", "═╗", "═"},
header: {"║" , "║" , "║", nil},
separator: {"╠═", "═╬═", "═╣", "═"},
data: {"║" , "║" , "║", nil},
bottom: {"╚═", "═╩═", "═╝", "═"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: [:black, :light_yellow_background],
filler: :light_green_background,
header: {
[:light_red, :reverse, :light_yellow_background], # key
[:light_magenta, :light_white_background ] # non key
},
data: {
[:light_blue, :light_yellow_background ], # key
[:light_black, :light_yellow_background] # non key
}
}
},
dotted: %{
note: "slightly colored",
rank: 110,
borders: %{
# left inner right dash
top: {"┏╍", "╍┳╍", "╍┓", "╍"},
header: {"┇" , "┇" , "┇", nil},
separator: {"┣╍", "╍╋╍", "╍┫", "╍"},
data: {"┇" , "┇" , "┇", nil},
bottom: {"┗╍", "╍┻╍", "╍┛", "╍"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :normal,
filler: :normal,
header: {
[:blue, :light_yellow_background], # key
:normal # non key
},
data: {
:light_yellow, # key
:normal # non key
}
}
},
dashed: %{
note: "no colors",
rank: 120,
borders: %{
# left inner right dash
top: {"+-", "-+-", "-+", "-"},
header: {"|" , "|" , "|", nil},
separator: {"+-", "-+-", "-+", "-"},
data: {"|" , "|" , "|", nil},
bottom: {"+-", "-+-", "-+", "-"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :normal,
filler: :normal,
header: {
:normal, # key
:normal # non key
},
data: {
:normal, # key
:normal # non key
}
}
},
plain: %{
note: "slightly colored",
rank: 130,
borders: %{
# left inner right dash
top: {"┌─", "─┬─", "─┐", "─"},
header: {"│" , "│" , "│", nil},
separator: {"├─", "─┼─", "─┤", "─"},
data: {"│" , "│" , "│", nil},
bottom: {"└─", "─┴─", "─┘", "─"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :light_yellow,
filler: :normal,
header: {
[:light_yellow, :underline], # key
:light_yellow # non key
},
data: {
:light_yellow, # key
:normal # non key
}
}
},
test: %{
note: "no colors",
rank: 140,
borders: %{
# left inner right dash
top: {"┌─", "─┬─", "─┐", "─"},
header: {"│" , "│" , "│", nil},
separator: {"├─", "─┼─", "─┤", "─"},
data: {"│" , "│" , "│", nil},
bottom: {"└─", "─┴─", "─┘", "─"}
},
border_widths: %{
# left inner right
top: {[2, 0], [0, 3, 0], [0, 2]},
header: {[1, 1], [1, 1, 1], [1, 1]},
separator: {[2, 0], [0, 3, 0], [0, 2]},
data: {[1, 1], [1, 1, 1], [1, 1]},
bottom: {[2, 0], [0, 3, 0], [0, 2]}
},
attrs: %{
border: :normal,
filler: :normal,
header: {
:normal, # key
:normal # non key
},
data: {
:normal, # key
:normal # non key
}
}
},
bare: %{
note: "no colors",
rank: 150,
borders: %{
# left inner right dash
top: {"", "" , "", "" },
header: {"", "|" , "", nil},
separator: {"", "-+-", "", "-"},
data: {"", "|" , "", nil},
bottom: {"", "" , "", "" }
},
border_widths: %{
# left inner right
top: {[0, 0], [0, 0, 0], [0, 0]},
header: {[0, 0], [1, 1, 1], [0, 0]},
separator: {[0, 0], [0, 3, 0], [0, 0]},
data: {[0, 0], [1, 1, 1], [0, 0]},
bottom: {[0, 0], [0, 0, 0], [0, 0]}
},
attrs: %{
border: :normal,
filler: :normal,
header: {
:normal, # key
:normal # non key
},
data: {
:normal, # key
:normal # non key
}
}
},
barish: %{
note: "like bare but colored",
rank: 160,
borders: %{
# left inner right dash
top: {"", "" , "", "" },
header: {"", "|" , "", nil},
separator: {"", "-+-", "", "-"},
data: {"", "|" , "", nil},
bottom: {"", "" , "", "" }
},
border_widths: %{
# left inner right
top: {[0, 0], [0, 0, 0], [0, 0]},
header: {[0, 0], [1, 1, 1], [0, 0]},
separator: {[0, 0], [0, 3, 0], [0, 0]},
data: {[0, 0], [1, 1, 1], [0, 0]},
bottom: {[0, 0], [0, 0, 0], [0, 0]}
},
attrs: %{
border: :light_yellow,
filler: :normal,
header: {
:light_green, # key
:normal # non key
},
data: {
:light_cyan, # key
:normal # non key
}
}
}
}
#
# And access this configuration in your application as:
#
# Application.get_env(:io_ansi_table, :key)
#
# Or configure a 3rd-party app:
#
# config :logger, level: :info
#
# It is also possible to import configuration files, relative to this
# directory. For example, you can emulate configuration per environment
# by uncommenting the line below and defining dev.exs, test.exs and such.
# Configuration from the imported file will override the ones defined
# here (which is why it is important to import them last).
#
# import_config "#{Mix.env}.exs"