tableau

package module
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2024 License: MIT Imports: 12 Imported by: 3

README

Tableau

Modern Configuration Converter

Release Status Testing Status Code Coverage GitHub release (latest SemVer including pre-releases) go.dev GitHub

Tableau

A modern configuration converter based on Protobuf (proto3).

Features

  • Convert Excel/CSV/XML/YAML to JSON/Text/Bin.
  • Use Protobuf to define the structure of Excel/CSV/XML/YAML.
  • Use Golang to develop the conversion engine.
  • Support multiple programming languages, thanks to Protobuf (proto3).

Concepts

  • Importer:
    • imports a Excel/CSV file to a in-memory book of Table sheets.
    • imports a XML/YAML file to a in-memory book of Document sheets.
  • Parsers:
    • protogen: converts Excel/CSV/XML/YAML files to Protoconf files.
    • confgen: converts Excel/CSV/XML/YAML with Protoconf files to JSON/Text/Bin files.
  • Exporter:
    • protogen: exports a tableau.Workbook to a proto file.
    • confgen: exports a protobuf message to a JSON/Text/Bin file.
  • Protoconf: a dialect of Protocol Buffers (proto3) extended with tableau options, aimed to define the structure of Excel/CSV/XML/YAML.

Design

See official document: Design.

Contribution

Requirements
Protobuf

Goto Protocol Buffers v21.12, choose and download the correct platform of protoc, then install by README.

protoc-gen-go

Install: go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.27.1

Documentation

Index

Constants

View Source
const RevisionSize = 7

Variables

This section is empty.

Functions

func GenConf added in v0.9.6

func GenConf(protoPackage, indir, outdir string, setters ...options.Option) error

GenConf can convert Excel/CSV/XML/YAML files to different configuration files: JSON, Text, and Bin.

func GenProto added in v0.9.6

func GenProto(protoPackage, indir, outdir string, setters ...options.Option) (err error)

GenProto can convert Excel/CSV/XML/YAML files to protoconf files.

func Generate added in v0.9.14

func Generate(protoPackage, indir, outdir string, setters ...options.Option) error

Generate can convert Excel/CSV/XML/YAML files to protoconf files and different configuration files: JSON, Text, and Bin at the same time.

func NewConfGenerator added in v0.10.6

func NewConfGenerator(protoPackage, indir, outdir string, options ...options.Option) *confgen.Generator

NewConfGenerator creates a new conf generator.

func NewConfGeneratorWithOptions added in v0.10.6

func NewConfGeneratorWithOptions(protoPackage, indir, outdir string, options *options.Options) *confgen.Generator

NewConfGeneratorWithOptions creates a new conf generator with options.

func NewImporter added in v0.10.6

func NewImporter(workbookPath string) (importer.Importer, error)

NewImporter creates a new importer of the specified workbook.

func NewProtoGenerator added in v0.10.6

func NewProtoGenerator(protoPackage, indir, outdir string, options ...options.Option) *protogen.Generator

NewProtoGenerator creates a new proto generator.

func NewProtoGeneratorWithOptions added in v0.10.6

func NewProtoGeneratorWithOptions(protoPackage, indir, outdir string, options *options.Options) *protogen.Generator

NewProtoGeneratorWithOptions creates a new proto generator with options.

func Proto2Excel

func Proto2Excel(protoPackage, indir, outdir string)

Proto2Excel converts protoconf files to excel files (with tableau header). TODO: fully usable generation of excel templates.

func SetLang added in v0.10.6

func SetLang(lang string) error

SetLang sets the default language. E.g: en, zh.

Types

type VersionInfo added in v0.10.6

type VersionInfo struct {
	ProtogenVersion string // version of protogen module
	ConfgenVersion  string // version of confgen module
	// VCS info
	Revision     string
	Time         string
	Experimental string
}

VersionInfo holds versions of tableau'd main modules and VCS info.

func GetVersionInfo added in v0.10.6

func GetVersionInfo() *VersionInfo

GetVersionInfo returns VersionInfo of tableau.

Directories

Path Synopsis
cmd
internal
camelcase
Package camelcase is a micro package to split the words of a camelcase type string into a slice of words.
Package camelcase is a micro package to split the words of a camelcase type string into a slice of words.
fs
Package load provides functions to load a protobuf message from different formats:
Package load provides functions to load a protobuf message from different formats:
log
Refer:
Refer:
proto
Package store provides functions to store a protobuf message to different formats: json, bin, and txt.
Package store provides functions to store a protobuf message to different formats: json, bin, and txt.
test

Jump to

Keyboard shortcuts

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