Tableau Ascii
Sortie de table facile pour le débogage de nœuds, mais vous pourriez probablement en faire plus, car il ne s'agit que d'une chaîne.
Table des matières
- Usage
- Exemple
- API
- Méthodes statiques
- Méthodes d'instance
- setBorder([bord], [remplissage], [haut], [bas])
- removeBorder()
- setAlign(idx, direction)
- setAlignLeft(idx)
- setAlignCenter(idx)
- setAlignRight(idx)
- setTitle(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é])
- toString()
- vers JSON()
- deJSON(obj)
- dégager()
- clearRows()
- Installer
- Contributeurs
- Licence
Usage
Node.js
1var AsciiTable = require('ascii-table')
Navigateur
1<script src="ascii-table.min.js"></script>
Remarque : En cas d'utilisation 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ête.
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
Voir : AsciiTable.factory
pour plus de détails sur l'instanciation
AsciiTable.factory([titre], [options])
Créateur d'instance de table
title
-titre de la table (optionnel, par défautnull
)options
-options de table (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, len, [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 de fourni val
, l' String
entrée sera alignée à gauche, les Number
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 longueur 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], [remplissage], [haut], [bas])
Définit 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)
Pseudonyme de instance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter(idx)
Pseudonyme de instance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight(idx)
Pseudonyme de 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()
Obtenir le titre actuel du tableau
Exemple:
1table.getTitle() // 'New Title'
instance.setTitleAlign(direction)
direction
-direction d'alignement de la table
Exemple:
1
instance.setTitleAlignLeft()
Pseudonyme de instance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter()
Pseudonyme de instance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight()
Pseudonyme de 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 de colonne
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éfinir les en-têtes de colonne pour la table, prend les arguments de la même manière que addRow
heading
-heading tableau 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()
Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter()
Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight()
Pseudonyme de instance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow(ligne, [...])
Des 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
4
5table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify(activé)
Justifier 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
Pseudo : [ valueOf
, render
]
instance.àJSON()
Renvoie la représentation JSON de la table, cela nous permet également d'appeler
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)
Remplir la table à partir de l'objet json, doit correspondre à la toJSON
sortie ci-dessus.
Pseudo : [ 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
Pseudo : [ 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 par les présentes accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion , publier, distribuer, concéder en sous-licence et/ou vendre des copies du Logiciel, et permettre aux personnes auxquelles 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 NON LIMITÉ AUX GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES OPÉRATIONS DANS LE LOGICIEL.