Módulo comunitario incrible

Táboa Ascii

Estado de compilación devDependency Status Versión NPM

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

Node.js

1
var 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 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

Vexa: AsciiTable.factorypara 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, predeterminado null)
  • 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 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])

Atallo 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-cargado de recheo / recheo (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-cargado de recheo / recheo (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-cargado de recheo / recheo (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-cargado de recheo / recheo (opcional, predeterminado ' ')

Exemplo:

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

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

Tenta facer un aliñamento intelixente do fornecido val; a Stringentrada aliñarase á esquerda e os Numbertipos aliñaranse á dereita.

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

Exemplo:

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

Exemplo:

1
AsciiTable.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 edgese pasa un único argumento, usarase para todos os bordos.

  • edge-arestas horizontais (opcional, predeterminado |)
  • fill-arestas verticais (opcional, predeterminado -)
  • topesquinas superiores (opcional, predeterminado .)
  • bottom-cantóns 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 de 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 ​​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 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

instance.getTitle ()

Obtén o título actual da táboa

Exemplo:

1
table.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 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 ordenación para orientar unha columna específica

  • index -column 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, [...])

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 5
table.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 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 -arraxe multidimentional de filas

Exemplo:

1 2 3 4 5
table.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, 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 ()

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 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)

Poboar a táboa desde o obxecto json debería coincidir coa toJSONsaída anterior.

Alias : [ 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

Alias : [ reset]

instance.clearRows ()

Restablece todos os datos de filas, mantén o título e os títulos.

Instalar

Con npm

1
npm install ascii-table

Colaboradores

Matthew Oliveira Peter Daum

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.