Tableau ASCII
Sortie de table facile pour le débogage des nœuds, mais vous pourriez probablement en faire plus, car ce n'est qu'une chaîne.
Table des matières
- Usage
- Exemple
- API
- Méthodes statiques
- Méthodes d'instance
- setBorder([bord], [remplir], [haut], [bas])
- supprimerBorder()
- setAlign (idx, direction)
- setAlignLeft(idx)
- setAlignCenter (idx)
- setAlignRight(idx)
- setTitre(titre)
- obtenirTitre()
- setTitleAlign(direction)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- trier([itérateur])
- sortColumn(idx, [itérateur])
- setHeading(titre, [...])
- setHeadingAlign(direction)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- addRow(ligne, [...])
- addRowMatrix (lignes)
- setJustify([activé])
- àChaîne()
- versJSON()
- deJSON(obj)
- clair()
- clearRows()
- Installer
- Contributeurs
- Licence
Usage
Noeud.js
1var AsciiTable = require('ascii-table')
Navigateur
1<script src="ascii-table.min.js"></script>
Remarque : Si vous l'utilisez dans le navigateur, il sera placé souswindow.AsciiTable
Exemple
Utilisation de 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 |
'----------------'
Nous pouvons également créer un tableau simple sans titre ni en-têtes.
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
Tableau Ascii
Voir : AsciiTable.factory
pour plus de détails sur l'instanciation
AsciiTable.factory([titre], [options])
Créateur d'instances de table
title
- titre du tableau (facultatif, par défautnull
)options
- options de tableau (facultatif)prefix
- préfixe de chaîne à ajouter à chaque ligne lors du rendu
Remarque : Si un objet est passé à la place dutitle
, lafromJSON
méthode sera utilisée pour remplir le tableau.
Exemple:
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(direction, val, longueur, [pad])
Raccourci vers l'une des trois méthodes suivantes
direction
- sens d'alignement (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
- chaîne à alignerlen
- longueur totale de la chaîne crééepad
- padding / fill char (facultatif, par défaut' '
)
Exemple:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- chaîne à alignerlen
- longueur totale de la chaîne crééepad
- padding / fill char (facultatif, par défaut' '
)
Exemple:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- chaîne à alignerlen
- longueur totale de la chaîne crééepad
- padding / fill char (facultatif, par défaut' '
)
Exemple:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- chaîne à alignerlen
- longueur totale de la chaîne crééepad
- padding / fill char (facultatif, par défaut' '
)
Exemple:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Essayez de faire un alignement intelligent des éléments fournis val
, String
l'entrée sera alignée à gauche, Number
les types seront alignés à droite.
val
- chaîne à alignerlen
- longueur totale de la chaîne crééepad
- padding / fill char (facultatif, par défaut' '
)
Exemple:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
Créer un nouveau tableau à la lentille donnée, rempli avec la valeur donnée, principalement utilisé en interne
len
- longueur du tableauval
- valeur de remplissage (facultatif)
Exemple:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder([bord], [remplir], [haut], [bas])
Définissez les caractères de bordure pour le rendu, si aucun argument n'est passé, il sera réinitialisé aux valeurs par défaut. Si un seul edge
argument est passé, il sera utilisé pour toutes les bordures.
edge
- bords horizontaux (facultatif, par défaut|
)fill
-bords verticaux (facultatif, par défaut-
)top
- coins supérieurs (facultatif, par défaut.
)bottom
- coins inférieurs (facultatif, par défaut'
)
Exemple:
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()
Exemple:
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, direction)
idx
-index de colonne à alignerdirection
- sens d'alignement, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Exemple:
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 àinstance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter(idx)
Alias àinstance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight(idx)
Alias àinstance.setAlign(idx, AsciiTable.RIGHT)
instance.setTitle(titre)
title
- titre du tableau
Exemple:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instance.getTitle()
Obtenez le titre actuel du tableau
Exemple:
1table.getTitle() // 'New Title'
instance.setTitleAlign(direction)
direction
- sens d'alignement de la table
Exemple:
1
instance.setTitleAlignLeft()
Alias àinstance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter()
Alias àinstance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight()
Alias àinstance.setTitleAlign(AsciiTable.RIGHT)
instance.sort (itérateur)
iterator
- méthode de tri à exécuter sur les lignes
Exemple:
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(index, itérateur)
Raccourci de tri pour cibler une colonne spécifique
index
- colonne idx à trieriterator
- méthode de tri à exécuter sur les valeurs des colonnes
Exemple:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
instance.setHeading(titre, [...])
Définit les en-têtes de colonnes du tableau, prend les arguments de la même manière queaddRow
heading
- tableau de titres ou arguments
Exemple:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
instance.setHeadingAlign(direction)
direction
-
Exemple:
1
instance.setHeadingAlignLeft()
Alias àinstance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter()
Alias àinstance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight()
Alias àinstance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow(ligne, [...])
Les lignes peuvent être ajoutées à l'aide d'un seul argument de tableau, ou des arguments si plusieurs arguments sont utilisés lors de l'appel de la méthode.
row
- tableau ou arguments de valeurs de colonne
Exemple:
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 (lignes)
addRow
Opération en vrac
rows
- tableau multidimensionnel de lignes
Exemple:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify (activé)
Justifiez que toutes les colonnes ont la même largeur
enabled
- booléen pour activer ou désactiver la justification,undefined
considéré comme vrai
Exemple:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
instance.toString()
Rendre l'instance sous forme de chaîne pour la sortie
Alias : [ valueOf
, render
]
instance.toJSON()
Renvoie la représentation JSON de la table, cela permet aussi de faire appel
JSON.stringify
à l'instance.
Exemple:
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)
Remplissez la table à partir de l'objet json, cela doit correspondre à la toJSON
sortie ci-dessus.
Alias : [ parse
]
Exemple:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
instance.clear()
Effacer/réinitialiser toutes les données du tableau
Alias : [ reset
]
instance.clearRows()
Réinitialise toutes les données de ligne, conserve le titre et les en-têtes.
Installer
Avec npm
1npm install ascii-table
Contributeurs
Licence
(La licence MIT)
Copyright (c) 2013 Beau Sorensen
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE QUELQUE QUELQUE CAS RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES AFFAIRES DANS LE LOGICIEL.