Generate markdown tables from JSON data at the command line.
npm install tablemark-cli> Generate markdown tables from JSON data at the command line.
Render JSON input data as a markdown table from the command line,
powered by the tablemark module.
This utility supports:
- JSON file input from a provided path
- Data piped from stdin
- NDJSON formatted data (newline delimited JSON)
- And most options supported by tablemark
``shell
pnpm add --global tablemark-cli
You can also use
pnpx/pnpm dlx, npx, bunx, etc. to run it without installing:`sh
pnpx tablemark-cli input.json > output.mdor
npx tablemark-cli input.json > output.mdor
bunx tablemark-cli input.json > output.md
`Usage
`
tablemark 4.0.0
> Generate markdown tables from JSON data at the command line.ARGUMENTS:
- Path to input file containing JSON data (use - for stdin)
OPTIONS:
--align , -a= - Alignment, can be used multiple times [default: left]
--align-all, -A - Default alignment for all columns [default: left]
--column , -c= - Column name, can be used multiple times [default: infer from object key]
--descriptors, -D - Column descriptors as a JSON array, overrides --align/--column [default: none] [optional]
--header-case, -H - Control the casing of column names [default: sentenceCase]
--line-break-strategy, -l - How to handle line breaks in cell content [default: preserve]
--line-ending, -e - End-of-line string [default: \n] [optional]
--max-width, -w - Maximum content width of each column [default: Infinity]
--overflow-strategy, -o - What to do when cell content exceeds max width [default: wrap]
--overflow-header-strategy, -O - What to do when header cell content exceeds max width [default: wrap]
--unknown-key-strategy, -u - What to do when an unknown key is encountered [default: ignore]
--text-handling-strategy, -t - Which text processing method to use [default: auto]
--wrap-width - (Deprecated) Alias for --max-width [default: Infinity]
FLAGS:
--count-ansi - Count ANSI escape codes towards content width
--no-case-headers, -N - (Deprecated) Disable automatic sentence casing of inferred column names
--no-pad-header-separator, -P - Omit padding on the header separator row
--wrap-with-gutters, -G - Add '|' characters to wrapped rows
--help, -h - show help
--version, -v - print the version
`To apply the
align and column options to multiple columns, supply the flag
multiple times, like this:`sh
tablemark input.json > output.md -a left -a center -a right
`... which will align the first three columns left, center, and right respectively.
Piped input (
stdin)In bash-like shells:
`sh
stdin -> stdout
echo '{ "one": 1 }' | tablemark -redirect input file content into stdin, then to a file
tablemark - < input.json > output.md
`In PowerShell:
`powershell
stdin -> stdout
'{ "one": 1 }' | tablemark -redirect input file content into stdin, then to a file
cat input.json | tablemark - > output.md
`NDJSON
NDJSON is a form of JSON that delimits multiple JSON objects by newlines:
`js
{"name":"trilogy","repo":"haltcase/trilogy","desc":"No-hassle SQLite with type-casting schema models and support for native & pure JS backends."}
{"name":"strat","repo":"haltcase/strat","desc":"Functional-ish JavaScript string formatting, with inspirations from Python."}
{"name":"tablemark-cli","repo":"haltcase/tablemark-cli","desc":"Generate markdown tables from JSON data at the command line."}
`This input from a file or stdin is supported just as if it were
a JSON compatible array:
`sh
tablemark input.ndjson > output.md
`See also
tablemark` – the module used by this utilitySearch the issues if you come
across any trouble, open a new one if it hasn't been posted, or, if you're
able, open a pull request.
Contributions of any kind are welcome in this project.
The following people have already contributed their time and effort:
- Thomas Jensen (@tjconcept)
Thank you!
MIT © Bo Lingen / haltcase