Táboa ASCII
Saída de táboa sinxela para a depuración de nodos, pero probablemente poderías 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([marxe], [encher], [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([activado])
- toString()
- toJSON()
- de JSON(obj)
- claro ()
- clearRows()
- Instalar
- Colaboradores
- Licenza
Uso
Node.js
1var AsciiTable = require('ascii-table')
Navegador
1<script src="ascii-table.min.js"></script>
Nota : Se se usa no navegador, colocarase debaixowindow.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
Consulte: AsciiTable.factory
para obter 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 da táboa (opcional)prefix
- prefixo de cadea para engadir a cada liña no renderizado
Nota: Se se pasa un obxecto en lugar dotitle
, ofromJSON
método empregarase para encher 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])
Acceso directo 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
- recheo / recheo de caracteres (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
- recheo / recheo de caracteres (opcional, predeterminado' '
)
Exemplo:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- corda para aliñarlen
- lonxitude total da cadea creadapad
- recheo / recheo de caracteres (opcional, predeterminado' '
)
Exemplo:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- corda para aliñarlen
- lonxitude total da cadea creadapad
- recheo / recheo de caracteres (opcional, predeterminado' '
)
Exemplo:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Tenta facer un aliñamento intelixente de proporcionado val
, String
a entrada estará aliñada á esquerda, Number
os tipos estarán aliñadas á dereita.
val
- corda para aliñarlen
- lonxitude total da cadea creadapad
- recheo / recheo de caracteres (opcional, predeterminado' '
)
Exemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
Crea unha nova matriz na len indicada, cuberta co valor indicado, utilizada principalmente internamente
len
- lonxitude da matrizval
- valor de recheo (opcional)
Exemplo:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder([marxe], [encher], [arriba], [inferior])
Establece os caracteres de bordo para renderizar, se non se pasan argumentos restablecerase aos valores predeterminados. Se edge
se pasa un único argumento, utilizarase para todos os bordos.
edge
- bordos horizontais (opcional, predeterminado|
)fill
-bordes verticais (opcional, predeterminado-
)top
- cantos superiores (opcional, predeterminado.
)bottom
- cantos 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 da 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 parainstance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter(idx)
Alias parainstance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight(idx)
Alias parainstance.setAlign(idx, AsciiTable.RIGHT)
instance.setTitle(título)
title
- Título da táboa
Exemplo:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instance.getTitle()
Obter o título actual da táboa
Exemplo:
1table.getTitle() // 'New Title'
instance.setTitleAlign(dirección)
direction
- Dirección de aliñación da táboa
Exemplo:
1
instance.setTitleAlignLeft()
Alias parainstance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter()
Alias parainstance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight()
Alias parainstance.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 clasificación para orientar unha columna específica
index
- columna 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, [...])
Establece os títulos das columnas para a táboa, toma os argumentos do mesmo xeito queaddRow
heading
- matriz de títulos ou argumentos
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 parainstance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter()
Alias parainstance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight()
Alias parainstance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow(fila, [...])
As filas pódense engadir usando un único argumento de matriz ou os argumentos se se usan varios argumentos ao chamar ao método.
row
- matriz 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
- matriz multidimensional de filas
Exemplo:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify(activado)
Xustifica que todas as columnas teñan o mesmo ancho
enabled
- booleano para activar ou desactivar 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()
Mostra a instancia como unha cadea para a 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)
Enche a táboa do obxecto json, debería coincidir coa toJSON
saída anterior.
Pseudónimo : [ 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
Pseudónimo : [ reset
]
instance.clearRows()
Restablece todos os datos das filas, mantén o título e os títulos.
Instalar
Con npm
1npm install ascii-table
Colaboradores
Licenza
(Licenza MIT)
Copyright (c) 2013 Beau Sorensen
Concédese permiso, de forma gratuíta, a calquera persoa que obteña unha copia deste software e os ficheiros de documentación asociados (o "Software"), para manexar 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 lles proporcione o Software o fagan, suxeitas ás seguintes condicións:
O aviso de copyright anterior e este aviso de permiso incluiranse en todas as copias ou partes substanciais do Software.
O SOFTWARE PROPORCIONASE "TAL CUAL", SEN GARANTÍA DE NINGÚN TIPO, EXPRESA OU IMPLÍCITA, INCLUÍDAS, PERO NON LIMITADAS ÁS GARANTÍAS DE COMERCIABILIDADE, IDONEIDAD PARA UN FIN PARTICULAR E NON INFRACCIÓN. EN NINGÚN CASO OS AUTORES OU TITULARIDADES SERÁN RESPONSABLES A GARANTÍA DA COPIA. RECLAMACIÓN, DANOS OU OUTRAS RESPONSABILIDADES, XA NUNHA ACCIÓN DE CONTRATO, EXPLOTACIÓN OU DE OUTRO MODO, DERIVADAS DO SOFTWARE, DO USO OU OUTROS TRATOS DO SOFTWARE, OU EN RELACIÓN CON EL.