Impresionante módulo comunitario

Táboa ASCII

Estado de construción Estado de dependencia dev Versión NPM

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

Node.js

1
var 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 8
var 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 10
var 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.factorypara 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, predeterminado null)
  • 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 10
var 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ñar
  • len- lonxitude total da cadea creada
  • pad- recheo / recheo de caracteres (opcional, predeterminado ' ')

Exemplo:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.alignLeft(val, len, [pad])

  • val- corda para aliñar
  • len- lonxitude total da cadea creada
  • pad- recheo / recheo de caracteres (opcional, predeterminado ' ')

Exemplo:

1
table.alignLeft('hey', 7, '-') // 'hey----'

AsciiTable.alignCenter(val, len, [pad])

  • val- corda para aliñar
  • len- lonxitude total da cadea creada
  • pad- recheo / recheo de caracteres (opcional, predeterminado ' ')

Exemplo:

1
table.alignCenter('hey', 7) // ' hey '

AsciiTable.alignRight(val, len, [pad])

  • val- corda para aliñar
  • len- lonxitude total da cadea creada
  • pad- recheo / recheo de caracteres (opcional, predeterminado ' ')

Exemplo:

1
table.alignRight('hey', 7) // ' hey'

AsciiTable.alignAuto(val, len, [pad])

Tenta facer un aliñamento intelixente de proporcionado val, Stringa entrada estará aliñada á esquerda, Numberos tipos estarán aliñadas á dereita.

  • val- corda para aliñar
  • len- lonxitude total da cadea creada
  • pad- recheo / recheo de caracteres (opcional, predeterminado ' ')

Exemplo:

1
table.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 matriz
  • val- valor de recheo (opcional)

Exemplo:

1
AsciiTable.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 edgese 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 7
var 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 3
table.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ñar
  • direction- dirección de aliñamento, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Exemplo:

1 2 3 4 5
table .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 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

instance.getTitle()

Obter o título actual da táboa

Exemplo:

1
table.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 4
table.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 ordenar
  • iterator- 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 5
table.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 7
var 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)

addRowOperación a granel

  • rows- matriz multidimensional de filas

Exemplo:

1 2 3 4
table.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, undefinedconsiderado verdadeiro

Exemplo:

1 2 3 4 5
table .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 9
var 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 toJSONsaída anterior.

Pseudónimo : [ parse]

Exemplo:

1 2 3 4 5 6 7 8
var 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

1
npm install ascii-table

Colaboradores

Matthew Oliveira Peter Daum

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.