Táboa Ascii
Saída de táboa sinxela para a depuración de nodos, pero probablemente poida facer máis con ela, xa que só é unha cadea.
Táboa de contidos
- Uso
- Exemplo
- API
- Métodos estáticos
- Métodos de instancia
- setBorder ([bordo], [recheo], [arriba], [inferior])
- removeBorder ()
- setAlign (idx, dirección)
- setAlignLeft (idx)
- setAlignCenter (idx)
- setAlignRight (idx)
- setTitle (título)
- getTitle ()
- setTitleAlign (dirección)
- setTitleAlignLeft ()
- setTitleAlignCenter ()
- setTitleAlignRight ()
- ordenar ([iterador])
- sortColumn (idx, [iterador])
- setHeading (título, [...])
- setHeadingAlign (dirección)
- setHeadingAlignLeft ()
- setHeadingAlignCenter ()
- setHeadingAlignRight ()
- addRow (fila, [...])
- addRowMatrix (filas)
- setJustify ([habilitado])
- toString ()
- aJSON ()
- desdeJSON (obj)
- clear ()
- clearRows ()
- Instalar
- Colaboradores
- Licenza
Uso
Node.js
1var AsciiTable = require('ascii-table')
Navegador
1<script src="ascii-table.min.js"></script>
Nota : Se se utiliza no navegador, colocarase baixowindow.AsciiTable
Exemplo
Uso básico
1
2
3
4
5
6
7
8var table = new AsciiTable('A Title')
table
.setHeading('', 'Name', 'Age')
.addRow(1, 'Bob', 52)
.addRow(2, 'John', 34)
.addRow(3, 'Jim', 83)
console.log(table.toString())
1
2
3
4
5
6
7
8
9.----------------.
| A Title |
|----------------|
| | Name | Age |
|---|------|-----|
| 1 | Bob | 52 |
| 2 | John | 34 |
| 3 | Jim | 83 |
'----------------'
Tamén podemos facer unha táboa sinxela sen título nin títulos.
1
2
3
4
5
6
7
8
9
10var table = new AsciiTable()
table
.addRow('a', 'apple', 'Some longer string')
.addRow('b', 'banana', 'hi')
.addRow('c', 'carrot', 'meow')
.addRow('e', 'elephants')
console.log(table.toString())
1
2
3
4
5
6.------------------------------------.
| a | apple | Some longer string |
| b | banana | hi |
| c | carrot | meow |
| e | elephants | |
'------------------------------------'
API
Static Methods
AsciiTable
Vexa: AsciiTable.factory
para máis detalles sobre a instanciación
AsciiTable.factory ([título], [opcións])
Creador de instancias de táboa
title
-título da táboa (opcional, predeterminadonull
)options
Opcións de mesa (opcional)prefix
-prefixo de cadea para engadir a cada liña do render
Nota: se se pasa un obxecto no lugar detitle
, ofromJSON
método usarase para rellenar a táboa.
Exemplo:
1
2
3
4
5
6
7
8
9
10var table = AsciiTable.factory('title')
var table = AsciiTable.factory({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
AsciiTable.align (dirección, val, len, [pad])
Atallo a un dos tres métodos seguintes
direction
- Dirección de aliñamento (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
-corda para aliñarlen
- lonxitude total da cadea creadapad
-cargado de recheo / recheo (opcional, predeterminado' '
)
Exemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft (val, len, [pad])
val
-corda para aliñarlen
- lonxitude total da cadea creadapad
-cargado de recheo / recheo (opcional, predeterminado' '
)
Exemplo:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter (val, len, [pad])
val
-corda para aliñarlen
- lonxitude total da cadea creadapad
-cargado de recheo / recheo (opcional, predeterminado' '
)
Exemplo:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight (val, len, [pad])
val
-corda para aliñarlen
- lonxitude total da cadea creadapad
-cargado de recheo / recheo (opcional, predeterminado' '
)
Exemplo:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto (val, len, [pad])
Tenta facer un aliñamento intelixente do fornecido val
; a String
entrada aliñarase á esquerda e os Number
tipos aliñaranse á dereita.
val
-corda para aliñarlen
- lonxitude total da cadea creadapad
-cargado de recheo / recheo (opcional, predeterminado' '
)
Exemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill (len, [val])
Crea unha nova matriz no len indicado, cheo do valor indicado, empregado principalmente internamente
len
-longitude da matrizval
-valor de recheo (opcional)
Exemplo:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder ([bordo], [recheo], [arriba], [inferior])
Estableza os caracteres de bordo para renderizar, se non se pasan argumentos, restablecerase aos valores predeterminados. Se edge
se pasa un único argumento, usarase para todos os bordos.
edge
-arestas horizontais (opcional, predeterminado|
)fill
-arestas verticais (opcional, predeterminado-
)top
esquinas superiores (opcional, predeterminado.
)bottom
-cantóns inferiores (opcional, predeterminado'
)
Exemplo:
1
2
3
4
5
6
7var table = new AsciiTable('Stars')
table
.setBorder('*')
.setHeading('oh', 'look')
.addRow('so much', 'star power')
console.log(table.toString())
1
2
3
4
5
6
7************************
* Stars *
************************
* oh * look *
************************
* so much * star power *
************************
instance.removeBorder ()
Exemplo:
1
2
3table.removeBorder()
console.log('' + table)
1
2
3
4
5
6 # Fruit Thing
--- ----------- --------------------
a apple Some longer string
b banana hi
c carrot meow
e elephants
instance.setAlign (idx, dirección)
idx
-índice de columna para aliñardirection
- Dirección de aliñamento, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Exemplo:
1
2
3
4
5table
.setAlign(2, AsciiTable.RIGHT)
.setAlign(1, AsciiTable.CENTER)
console.log(table.toString())
1
2
3
4
5
6.-------------------------------------.
| a | apple | Some longer string |
| b | banana | hi |
| c | carrot | meow |
| e | elephants | |
'-------------------------------------'
instance.setAlignLeft (idx)
Alias para instance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter (idx)
Alias para instance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight (idx)
Alias para instance.setAlign(idx, AsciiTable.RIGHT)
instance.setTitle (título)
title
-título de mesa
Exemplo:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instance.getTitle ()
Obtén o título actual da táboa
Exemplo:
1table.getTitle() // 'New Title'
instance.setTitleAlign (dirección)
direction
-dirección de aliñamento da táboa
Exemplo:
1
instance.setTitleAlignLeft ()
Alias para instance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter ()
Alias para instance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight ()
Alias para instance.setTitleAlign(AsciiTable.RIGHT)
instance.sort (iterador)
iterator
-método de clasificación para executar contra as filas
Exemplo:
1
2
3
4table.sort(function(a, b) {
return a[2] - b[2]
})
console.log(table.toString())
1
2
3
4
5.----------------.
| 2 | John | 34 |
| 1 | Bob | 52 |
| 3 | Jim | 83 |
'----------------'
instance.sortColumn (índice, iterador)
Atallo de ordenación para orientar unha columna específica
index
-column idx para ordenariterator
-método de clasificación para executar contra valores de columna
Exemplo:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
instance.setHeading (título, [...])
Estableza os títulos das columnas para a táboa, leva os argumentos do mesmo xeito que addRow
heading
-arrama ou argumentos de cabeceira
Exemplo:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
instance.setHeadingAlign (dirección)
direction
-
Exemplo:
1
instance.setHeadingAlignLeft ()
Alias para instance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter ()
Alias para instance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight ()
Alias para instance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow (fila, [...])
As filas pódense engadir usando un único argumento de matriz ou os argumentos se se usan múltiples argumentos ao chamar ao método.
row
-array ou argumentos de valores de columna
Exemplo:
1
2
3
4
5
6
7var table = new AsciiTable()
table
.addRow(1, 'Bob', 52)
.addRow([2, 'John', 34])
console.log(table.render())
1
2
3
4.---------------.
| 1 | Bob | 52 |
| 2 | John | 34 |
'---------------'
instance.addRowMatrix (filas)
addRow
Operación a granel
rows
-arraxe multidimentional de filas
Exemplo:
1
2
3
4
5table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify (habilitado)
Xustifique que todas as columnas teñan o mesmo ancho
enabled
-booleano para activar ou desactivar o xustificar,undefined
considerado verdadeiro
Exemplo:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
instance.toString ()
Representa a instancia como unha cadea de saída
Alias : [ valueOf
, render
]
instance.toJSON ()
Devolve a representación JSON da táboa, isto tamén nos permite chamar
JSON.stringify
á instancia.
Exemplo:
1
2
3
4
5
6
7
8
9var table = new AsciiTable('Title')
table
.setHeading('id', 'name')
.addRow(1, 'Bob')
.addRow(2, 'Steve')
console.log(table.toJSON())
console.log(JSON.stringify(table))
1
2
3
4
5
6
7
8{
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
}
1{"title":"Title","heading":["id","name"],"rows":[[1,"Bob"],[2,"Steve"]]}
instance.fromJSON (obj)
Poboar a táboa desde o obxecto json debería coincidir coa toJSON
saída anterior.
Alias : [ parse
]
Exemplo:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
instance.clear ()
Borrar / restablecer todos os datos da táboa
Alias : [ reset
]
instance.clearRows ()
Restablece todos os datos de filas, mantén o título e os títulos.
Instalar
Con npm
1npm install ascii-table
Colaboradores
Licenza
(A licenza MIT)
Copyright (c) 2013 Beau Sorensen
Autorízase de xeito gratuíto a calquera persoa que obteña unha copia deste software e ficheiros de documentación asociados (o "Software") para tratar o software sen restricións, incluíndo sen limitación os dereitos de uso, copia, modificación, fusión , publicar, distribuír, sublicenciar e / ou vender copias do software e permitir que as persoas ás que se facilite o software fagan as condicións seguintes:
O aviso de copyright anterior e este aviso de permiso incluiranse en todas as copias ou partes importantes do software.
O SOFTWARE FORMÉTASE "ESTÁ", SEN GARANTÍA DE NINGÚN TIPO, EXPRESA OU IMPLÍCITA, INCLUÍDO PERO NON LIMITADO ÁS GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDADE PARA UN PROPÓSITO PARTICULAR E NON INFRACCIÓN. DANOS OU OUTRA RESPONSABILIDADE, TANTO NUNHA ACCIÓN DO CONTRATO, TORT OU DE OUTRO FORO, PROCEDENTES DE, FÓRESE OU EN CONEXIÓN CO SOFTWARE OU USO OU OUTROS TRATAMENTOS NO SOFTWARE.