csv2md

package module
v0.0.0-...-56415a9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2016 License: MIT Imports: 5 Imported by: 1

README

csv2md

Build Status

csv2md transmogrifies CSV-encoded data into GitHub Flavored Markdown, GFM, tables.

Formatting of fields is supported. Text can either have no justification or be left justified, centered, or right justified. Text can either be un-styled or styled with bold, italic, or strikethrough styling. Formatting is per column, field, and does not apply to the table header row, record.

For more details see https://help.github.com/articles/github-flavored-markdown/#tables.

An example implementation and cli app can be found at https://github.com/mohae/csv2md/tree/master/cmd/csv2md. Documentation on usage of the CLI app is in the cli's README

Docs

https://godoc.org/github.com/mohae/csv2md

Documentation

Overview

Package csv2md transforms CSV-encoded data into Github Flavored Mardown, GFM, tables. The field names, field alignment, and field text effects can be specified: either by providing a format file or by configuring the Transmogrifier. If the field names have not been set, the first record of the CSV-encoded data should have a header record.

It is assumed that all CSV-encoded data contains a header record, even if the field names have been set, unless the HasHeaderRecord is set to false. If the field names has been set and the CSV-encoded data has a header record, the first record in the data will be ignored.

Index

Constants

This section is empty.

Variables

View Source
var ErrNoFormatData = errors.New("no format data")

ErrNoFormatData occurs when no data is found in the provided reader.

Functions

This section is empty.

Types

type ShortWriteError

type ShortWriteError struct {
	// contains filtered or unexported fields
}

ShortWriteError occurs when the number of bytes written is less than the number of bytes to be written.

func (ShortWriteError) Error

func (e ShortWriteError) Error() string

type Transmogrifier

type Transmogrifier struct {
	// HasHeaderRecord specifies whether or not the CSV-encoded data's
	// first record has field names.  If false, either the field names
	// must be set; either by calling SetFieldNames or SetFmt.  In either
	// case, the number of fields must match the number of fields per
	// record in the CSV data.
	HasHeaderRecord bool
	// CSV is a csv.Reader.  This is exported so that the caller can
	// can configure the CSV reader.
	CSV *csv.Reader
	// contains filtered or unexported fields
}

Transmogrifier turns CSV data into a markdown table

func NewTransmogrifier

func NewTransmogrifier(r io.Reader, w io.Writer) *Transmogrifier

NewTransmogrifier returns an initialized Transmogrifier for transmogrifierication of CSV-encoded data to GitHub Flavored Markdown tables.

func (*Transmogrifier) BytesWritten

func (t *Transmogrifier) BytesWritten() int64

BytesWritten returns the number of bytes written to the writer.

func (*Transmogrifier) MDTable

func (t *Transmogrifier) MDTable() error

MDTable reads from the configured reader, CSV, transforms the data into a GitHub Flavored Markdown table, applying justification and text styling, and writes the resulting bytes to the Transmogrifier's writer.

func (*Transmogrifier) NewLine

func (t *Transmogrifier) NewLine() string

NewLine returns the current new line sequence.

func (*Transmogrifier) SetFieldAlignment

func (t *Transmogrifier) SetFieldAlignment(vals []string)

SetFieldAlignment sets the alignment, justification, used for each field in the table.

Valid alignment values:

  • Left justification
  • l
  • left
  • :--
  • Centered text
  • c
  • centered
  • center
  • :--:
  • Right justification
  • r
  • right
  • --:
  • No justification
  • empty string

func (*Transmogrifier) SetFieldNames

func (t *Transmogrifier) SetFieldNames(vals []string)

SetFieldNames sets the names for each field; these values are used in the table header as each column's, field's, name.

func (*Transmogrifier) SetFieldStyle

func (t *Transmogrifier) SetFieldStyle(vals []string)

SetFieldStyle sets the text styling for a record's field. Accepted values:

  • Bold
  • b
  • bold
  • __
  • Italics
  • i
  • italics
  • italic
  • _
  • Strikethrough
  • s
  • strikethrough
  • ~~
  • No text styling
  • empty string

func (*Transmogrifier) SetFmt

func (t *Transmogrifier) SetFmt(r io.Reader) error

SetFmt takes a reader and reads the format information from it as CSV encoded data. The CSV reader used to read the format information is configured to be consistent with CSV's configuration under the assumption that the CSV data in the format file will be encoded the same way as the actual CSV data; e.g. if the CSV data is tab delimited, the format file will also be tab delimited.

func (*Transmogrifier) SetNewLine

func (t *Transmogrifier) SetNewLine(s string)

SetNewLine sets the newLine value based on the received value. If the received value is not recognized, nothing is done.

Valid new line values:

  • Carriage Return (new line)
  • cr
  • CR
  • \n
  • Line Feed
  • lf
  • LF
  • \r
  • Carriage Return/Line Feed
  • crlf
  • CRLF
  • \r\n

For a new line to occur, Markdown requires the line to terminate with either two spaces, " ", or have a double line feed. The newLine is prefixed with two spaces.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL