Geweldige gemeenschapsmodule

Ascii-tabel

Bouwstatus devDependency-status NPM-versie

Gemakkelijke tabeluitvoer voor het debuggen van knooppunten, maar je zou er waarschijnlijk meer mee kunnen doen, omdat het maar een string is.

Inhoudsopgave

Gebruik

Knooppunt.js

1
var AsciiTable = require('ascii-table')

Browser

1
<script src="ascii-table.min.js"></script>

Opmerking : als u het in de browser gebruikt, wordt het onder geplaatstwindow.AsciiTable

Voorbeeld

Basisgebruik

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

We kunnen ook een eenvoudige tabel maken zonder titel of kopjes.

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

AsciiTabel

Zie: AsciiTable.factoryvoor details over instantiatie

AsciiTable.factory([titel], [opties])

Maker van tabelinstanties

  • title- tabeltitel (optioneel, standaard null)
  • options- tafelopties (optioneel)
    • prefix- tekenreeksvoorvoegsel dat aan elke regel bij het renderen moet worden toegevoegd

Opmerking: als een object wordt doorgegeven in plaats van detitle,fromJSON wordt de methode gebruikt om de tabel te vullen.

Voorbeeld:

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(richting, val, len, [pad])

Snelkoppeling naar een van de drie volgende methoden

  • direction- uitlijningsrichting ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- tekenreeks om uit te lijnen
  • len- totale lengte van de gemaakte string
  • pad- opvulling / vulteken (optioneel, standaard ' ')

Voorbeeld:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

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

  • val- tekenreeks om uit te lijnen
  • len- totale lengte van de gemaakte string
  • pad- opvulling / vulteken (optioneel, standaard ' ')

Voorbeeld:

1
table.alignLeft('hey', 7, '-') // 'hey----'

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

  • val- tekenreeks om uit te lijnen
  • len- totale lengte van de gemaakte string
  • pad- opvulling / vulteken (optioneel, standaard ' ')

Voorbeeld:

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

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

  • val- tekenreeks om uit te lijnen
  • len- totale lengte van de gemaakte string
  • pad- opvulling / vulteken (optioneel, standaard ' ')

Voorbeeld:

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

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

Probeer een intelligente uitlijning van de opgegeven invoer uit te voeren val, Stringde invoer wordt links uitgelijnd en Numberde typen worden rechts uitgelijnd.

  • val- tekenreeks om uit te lijnen
  • len- totale lengte van de gemaakte string
  • pad- opvulling / vulteken (optioneel, standaard ' ')

Voorbeeld:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.arrayFill(len, [val])

Maak een nieuwe array op de gegeven len, gevuld met de gegeven waarde, voornamelijk intern gebruikt

  • len- lengte van de array
  • val- vulwaarde (optioneel)

Voorbeeld:

1
AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]

Instance Methods

instance.setBorder([edge], [fill], [top], [bottom])

Stel de randtekens in voor weergave. Als er geen argumenten worden doorgegeven, wordt deze teruggezet naar de standaardwaarden. Als er één edgearg wordt doorgegeven, wordt deze voor alle randen gebruikt.

  • edge- horizontale randen (optioneel, standaard |)
  • fill-verticale randen (optioneel, standaard -)
  • top-bovenhoeken (optioneel, standaard .)
  • bottom- onderste hoeken (optioneel, standaard ')

Voorbeeld:

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

Voorbeeld:

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

  • idx-kolomindex om uit te lijnen
  • direction- uitlijningsrichting, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Voorbeeld:

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 ​​voorinstance.setAlign(idx, AsciiTable.LEFT)

instance.setAlignCenter(idx)

Alias ​​voorinstance.setAlign(idx, AsciiTable.CENTER)

instance.setAlignRight(idx)

Alias ​​voorinstance.setAlign(idx, AsciiTable.RIGHT)

instance.setTitle(titel)

  • title- tabeltitel

Voorbeeld:

1 2 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

instance.getTitle()

Haal de huidige titel van de tabel op

Voorbeeld:

1
table.getTitle() // 'New Title'

instance.setTitleAlign(richting)

  • direction- richting van de tafeluitlijning

Voorbeeld:

1

instance.setTitleAlignLeft()

Alias ​​voorinstance.setTitleAlign(AsciiTable.LEFT)

instance.setTitleAlignCenter()

Alias ​​voorinstance.setTitleAlign(AsciiTable.CENTER)

instance.setTitleAlignRight()

Alias ​​voorinstance.setTitleAlign(AsciiTable.RIGHT)

instance.sort(iterator)

  • iterator- sorteermethode om tegen de rijen aan te lopen

Voorbeeld:

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(index, iterator)

Sorteersnelkoppeling voor het targeten van een specifieke kolom

  • index- kolom-IDX om te sorteren
  • iterator- sorteermethode om tegen kolomwaarden uit te voeren

Voorbeeld:

1 2 3 4
// This is quivalent to the `sort` example above table.sortColumn(2, function(a, b) { return a - b })

instance.setHeading(kop, [...])

Stel de kolomkoppen voor de tabel in, neemt argumenten op dezelfde manier alsaddRow

  • heading- koparray of argumenten

Voorbeeld:

1 2 3 4 5
table.setHeading('ID', 'Key', 'Value') // or: table.setHeading(['ID', 'Key', 'Value'])

instance.setHeadingAlign(richting)

  • direction-

Voorbeeld:

1

instance.setHeadingAlignLeft()

Alias ​​voorinstance.setHeadingAlignLeft(AsciiTable.LEFT)

instance.setHeadingAlignCenter()

Alias ​​voorinstance.setHeadingAlignLeft(AsciiTable.CENTER)

instance.setHeadingAlignRight()

Alias ​​voorinstance.setHeadingAlignLeft(AsciiTable.RIGHT)

instance.addRow(rij, [...])

Rijen kunnen worden toegevoegd met behulp van een enkel array-argument, of de argumenten als er meerdere argumenten worden gebruikt bij het aanroepen van de methode.

  • row- array of argumenten van kolomwaarden

Voorbeeld:

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

Bulkoperatie addRow_

  • rows- multidimensionale reeks rijen

Voorbeeld:

1 2 3 4
table.addRowMatrix([ [2, 'John', 34] , [3, 'Jim', 83] ])

instance.setJustify(ingeschakeld)

Geef alle kolommen dezelfde breedte

  • enabled- boolean voor het in- of uitschakelen van uitvullen, undefinedwordt als waar beschouwd

Voorbeeld:

1 2 3 4 5
table .addRow('1', 'two', 'three') .setJustify() console.log(table.toString())
1 2 3
.-----------------------. | 1 | two | three | '-----------------------'

instance.toString()

Geef de instantie weer als een tekenreeks voor uitvoer

Alias : [ valueOf, render]

instance.toJSON()

Retourneer de JSON-weergave van de tabel, hierdoor kunnen we ook JSON.stringifyde instantie aanroepen.

Voorbeeld:

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)

Vul de tabel in vanuit het json-object, deze moet overeenkomen met de toJSONbovenstaande uitvoer.

Alias : [ parse]

Voorbeeld:

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

Wis/reset alle tabelgegevens

Alias : [ reset]

instance.clearRows()

Reset alle rijgegevens, behoudt titel en koppen.

Installeren

Met npm

1
npm install ascii-table

Bijdragers

Matthew OliveiraPeter Daum

Licentie

(De MIT-licentie)

Copyright (c) 2013 Beau Sorensen

Hierbij wordt gratis toestemming verleend aan elke persoon die een kopie van deze software en bijbehorende documentatiebestanden (de 'Software') verkrijgt, om zonder beperking in de Software te handelen, inclusief maar niet beperkt tot de rechten om te gebruiken, kopiëren, wijzigen, samenvoegen publiceren, distribueren, in sublicentie geven en/of kopieën van de Software verkopen, en personen aan wie de Software wordt geleverd toestemming geven om dit te doen, met inachtneming van de volgende voorwaarden:

De bovenstaande copyrightkennisgeving en deze toestemmingsverklaring zullen worden opgenomen in alle kopieën of substantiële delen van de Software.

DE SOFTWARE WORDT GELEVERD 'AS IS', ZONDER ENIGE GARANTIE, EXPLICIET OF IMPLICIET, INCLUSIEF MAAR NIET BEPERKT TOT DE GARANTIES VAN VERKOOPBAARHEID, GESCHIKTHEID VOOR EEN BEPAALD DOEL EN NIET-INBREUK. IN GEEN GEVAL ZULLEN DE AUTEURS OF HOUDERS VAN HET AUTEURSRECHT AANSPRAKELIJK ZIJN VOOR ENIGE CLAIM, SCHADE OF ANDERE AANSPRAKELIJKHEID, HETZIJ IN EEN CONTRACTGEDING, ONRECHTMATIGE DAAD OF ANDERSZINS, VOORTVLOEIEND UIT, UIT OF IN VERBAND MET DE SOFTWARE OF HET GEBRUIK OF ANDERE HANDELINGEN IN DE SOFTWARE.