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)
- getTitolo()
- setTitleAlign(direzione)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- sort([iteratore])
- sortColumn(idx, [iteratore])
- setIntestazione(intestazione, [...])
- setHeadingAlign(direzione)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- addRow(riga, [...])
- addRowMatrix(righe)
- setJustify([abilitato])
- accordare()
- aJSON()
- daJSON(obj)
- chiaro()
- clearRows()
- 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 sottowindow.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 anche creare una tabella semplice 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
Vedere: AsciiTable.factory
per i dettagli sulla creazione di un'istanza
AsciiTable.factory([titolo], [opzioni])
creatore di istanze di tabella
title
- titolo della tabella (facoltativo, predefinitonull
)options
- opzioni tabella (opzionale)prefix
- prefisso di 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])
Scorciatoia per uno dei tre metodi seguenti
direction
- direzione di allineamento (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
- stringa da allinearelen
- lunghezza totale della stringa creatapad
- padding/fill char (opzionale, default' '
)
Esempio:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- stringa da allinearelen
- lunghezza totale della stringa creatapad
- padding/fill char (opzionale, default' '
)
Esempio:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- stringa da allinearelen
- lunghezza totale della stringa creatapad
- padding/fill char (opzionale, default' '
)
Esempio:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- stringa da allinearelen
- lunghezza totale della stringa creatapad
- padding/fill char (opzionale, default' '
)
Esempio:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Tentativo di eseguire un allineamento intelligente di provided val
, String
l'input sarà allineato a sinistra, Number
i tipi saranno allineati a destra.
val
- stringa da allinearelen
- lunghezza totale della stringa creatapad
- padding/fill char (opzionale, default' '
)
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
instance.setBorder([bordo], [riempimento], [superiore], [inferiore])
Imposta i caratteri del bordo per il rendering, se non viene passato alcun argomento verrà ripristinato ai valori predefiniti.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 *
************************
esempio.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 di 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 setTitle(titolo)
title
- titolo della tabella
Esempio:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
istanza.getTitle()
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 sulle 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 il targeting di una colonna specifica
index
-column idx 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.setIntestazione(intestazione, [...])
Imposta le intestazioni di colonna per la tabella, prende gli argomenti allo stesso modo diaddRow
heading
-heading array o argomenti
Esempio:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
instance.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.addRow(riga, [...])
Le righe possono essere aggiunte utilizzando un singolo argomento dell'array o gli argomenti se vengono utilizzati più argomenti quando si chiama il metodo.
row
- matrice 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 di massa
rows
- matrice multidimensionale di righe
Esempio:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
istanza.setJustify(abilitato)
Giustificare 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()
Renderizza l'istanza come una stringa per l'output
Alias : [ valueOf
, render
]
istanza.toJSON()
Restituendo la rappresentazione JSON della tabella, questo ci permette anche di chiamare
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 daJSON(obj)
Popolare 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/ripristina tutti i dati della tabella
Alias : [ reset
]
istanza.clearRows()
Reimposta tutti i dati di riga, mantiene il titolo e le intestazioni.
installare
Con npm
1npm install ascii-table
Contributori
Licenza
(La licenza del MIT)
Copyright (c) 2013 Beau Sorensen
A chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software") viene concessa l'autorizzazione, a titolo gratuito, a trattare il Software senza restrizioni, inclusi, a titolo esemplificativo, i diritti di utilizzo, copia, modifica, unione , pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e consentire alle persone alle quali il Software è fornito di farlo, alle seguenti condizioni:
Il suddetto avviso di copyright e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPRESSE O IMPLICITE, INCLUSE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE DI QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, ILLECITO O ALTRO, DERIVANTE DA, DA O IN CONNESSIONE CON IL SOFTWARE O L'UTILIZZO O ALTRI RAPPORTI NEL SOFTWARE.