Tabella Ascii
Facile output della tabella per il debug del nodo, ma probabilmente potresti fare di più con esso, poiché è solo una stringa.
Sommario
- Utilizzo
- Esempio
- API
- Metodi statici
- Metodi di istanza
- setBorder([bordo], [riempimento], [alto], [basso])
- rimuovibordo()
- setAlign(idx, direzione)
- setAlignLeft(idx)
- setAlignCenter(idx)
- setAlignRight(idx)
- setTitolo(titolo)
- ottieni Titolo()
- setTitleAlign(direzione)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- sort([iteratore])
- sortColumn(idx, [iteratore])
- setHeading(intestazione, [...])
- setHeadingAlign(direzione)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- aggiungiRiga(riga, [...])
- addRowMatrix(righe)
- setJustify([abilitato])
- accordare()
- aJSON()
- daJSON(oggetto)
- chiaro()
- cancellaRighe()
- Installare
- Contributori
- Licenza
Utilizzo
Node.js
1var AsciiTable = require('ascii-table')
Navigatore
1<script src="ascii-table.min.js"></script>
Nota : se si utilizza nel browser, verrà posizionato inwindow.AsciiTable
Esempio
Utilizzo di base
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 |
'----------------'
Possiamo creare una semplice tabella anche senza titolo o intestazioni.
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
Vedi: AsciiTable.factory
per i dettagli sull'istanziazione
AsciiTable.factory([titolo], [opzioni])
Creatore di istanze di tabella
title
- titolo della tabella (facoltativo, predefinitonull
)options
- opzioni tavolo (opzionale)prefix
- prefisso della stringa da aggiungere a ciascuna riga durante il rendering
Nota: se viene passato un oggetto al posto dititle
, ilfromJSON
metodo verrà utilizzato per popolare la tabella.
Esempio:
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(direzione, val, len, [pad])
Collegamento a uno dei tre metodi seguenti
direction
- direzione di allineamento (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
- stringa per allinearelen
- lunghezza totale della stringa creatapad
- riempimento/carattere di riempimento (opzionale, predefinito' '
)
Esempio:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- stringa per allinearelen
- lunghezza totale della stringa creatapad
- riempimento/carattere di riempimento (opzionale, predefinito' '
)
Esempio:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- stringa per allinearelen
- lunghezza totale della stringa creatapad
- riempimento/carattere di riempimento (opzionale, predefinito' '
)
Esempio:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- stringa per allinearelen
- lunghezza totale della stringa creatapad
- riempimento/carattere di riempimento (opzionale, predefinito' '
)
Esempio:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Tentativo di eseguire un allineamento intelligente dei dati forniti val
, String
l'input verrà allineato a sinistra, Number
i tipi saranno allineati a destra.
val
- stringa per allinearelen
- lunghezza totale della stringa creatapad
- riempimento/carattere di riempimento (opzionale, predefinito' '
)
Esempio:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
Crea un nuovo array alla len data, riempito con il valore dato, utilizzato principalmente internamente
len
- lunghezza dell'arrayval
- valore di riempimento (facoltativo)
Esempio:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
istanza.setBorder([bordo], [riempimento], [superiore], [inferiore])
Imposta i caratteri del bordo per il rendering, se non viene passato alcun argomento verrà ripristinato il valore predefinito. Se edge
viene passato un singolo argomento, verrà utilizzato per tutti i bordi.
edge
- bordi orizzontali (opzionale, predefinito|
)fill
-bordi verticali (opzionale, predefinito-
)top
- angoli superiori (opzionale, predefinito.
)bottom
- angoli inferiori (opzionale, predefinito'
)
Esempio:
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 *
************************
istanza.removeBorder()
Esempio:
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
istanza.setAlign(idx, direzione)
idx
-indice della colonna da allinearedirection
- direzione di allineamento, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Esempio:
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 | |
'-------------------------------------'
istanza.setAlignLeft(idx)
Alias ainstance.setAlign(idx, AsciiTable.LEFT)
istanza.setAlignCenter(idx)
Alias ainstance.setAlign(idx, AsciiTable.CENTER)
istanza.setAlignRight(idx)
Alias ainstance.setAlign(idx, AsciiTable.RIGHT)
istanza.setTitolo(titolo)
title
- titolo della tabella
Esempio:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
istanza.getTitolo()
Ottieni il titolo corrente della tabella
Esempio:
1table.getTitle() // 'New Title'
istanza.setTitleAlign(direzione)
direction
- direzione di allineamento della tavola
Esempio:
1
istanza.setTitleAlignLeft()
Alias ainstance.setTitleAlign(AsciiTable.LEFT)
istanza.setTitleAlignCenter()
Alias ainstance.setTitleAlign(AsciiTable.CENTER)
istanza.setTitleAlignRight()
Alias ainstance.setTitleAlign(AsciiTable.RIGHT)
istanza.sort(iteratore)
iterator
- metodo di ordinamento da eseguire rispetto alle righe
Esempio:
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 |
'----------------'
istanza.sortColumn(indice, iteratore)
Scorciatoia per l'ordinamento per scegliere come target una colonna specifica
index
- idx della colonna da ordinareiterator
- metodo di ordinamento da eseguire rispetto ai valori delle colonne
Esempio:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
istanza.setHeading(intestazione, [...])
Imposta le intestazioni delle colonne per la tabella, accetta gli argomenti allo stesso modo diaddRow
heading
- array di intestazioni o argomenti
Esempio:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
istanza.setHeadingAlign(direzione)
direction
-
Esempio:
1
istanza.setHeadingAlignLeft()
Alias ainstance.setHeadingAlignLeft(AsciiTable.LEFT)
istanza.setHeadingAlignCenter()
Alias ainstance.setHeadingAlignLeft(AsciiTable.CENTER)
istanza.setHeadingAlignRight()
Alias ainstance.setHeadingAlignLeft(AsciiTable.RIGHT)
istanza.addRiga(riga, [...])
È possibile aggiungere righe utilizzando un singolo argomento di matrice o gli argomenti se vengono utilizzati più argomenti quando si chiama il metodo.
row
- array o argomenti di valori di colonna
Esempio:
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 |
'---------------'
istanza.addRowMatrix(righe)
addRow
Operazione in blocco
rows
- Matrice multidimensionale di righe
Esempio:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
istanza.setJustify(abilitato)
Giustifica tutte le colonne in modo che abbiano la stessa larghezza
enabled
- booleano per attivare o disattivare la giustificazione,undefined
considerato vero
Esempio:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
istanza.toString()
Rendere l'istanza come una stringa per l'output
Alias : [ valueOf
, render
]
istanza.toJSON()
Restituisce la rappresentazione JSON della tabella, questo ci permette anche di richiamare
JSON.stringify
l'istanza.
Esempio:
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"]]}
istanza.fromJSON(oggetto)
Compila la tabella dall'oggetto json, dovrebbe corrispondere all'output toJSON
sopra.
Alias : [ parse
]
Esempio:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
istanza.clear()
Cancella/reimposta tutti i dati della tabella
Alias : [ reset
]
istanza.clearRows()
Reimposta tutti i dati delle righe, mantiene il titolo e le intestazioni.
Installare
Con npm
1npm install ascii-table
Contributori
Licenza
(La licenza MIT)
Copyright (c) 2013 Beau Sorensen
Con la presente viene concesso il permesso, a titolo gratuito, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire , pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e consentire alle persone a cui viene fornito il Software di farlo, alle seguenti condizioni:
L'avviso sul copyright di cui sopra e il presente avviso di autorizzazione saranno inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COME È", SENZA GARANZIA DI ALCUN TIPO, ESPLICITA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT SARANNO RESPONSABILI DI EVENTUALE RECLAMI, DANNI O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITO O ALTRIMENTI, DERIVANTI DA, DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRI RAPPORTI DEL SOFTWARE.