Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/baig/pandoc-csv2table
A Pandoc filter that renders CSV as Pandoc Markdown Tables.
https://github.com/baig/pandoc-csv2table
csv pandoc pandoc-filter
Last synced: 18 days ago
JSON representation
A Pandoc filter that renders CSV as Pandoc Markdown Tables.
- Host: GitHub
- URL: https://github.com/baig/pandoc-csv2table
- Owner: baig
- License: mit
- Created: 2015-05-07T20:16:10.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-07-31T23:50:00.000Z (over 1 year ago)
- Last Synced: 2024-05-02T12:38:09.559Z (7 months ago)
- Topics: csv, pandoc, pandoc-filter
- Language: Haskell
- Homepage:
- Size: 575 KB
- Stars: 96
- Watchers: 6
- Forks: 13
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Pandoc csv2table Filter
[![Build Status](https://travis-ci.org/vmandela/pandoc-csv2table.svg?branch=master)](https://travis-ci.org/vmandela/pandoc-csv2table)
A Pandoc filter that replaces CSV content (either inside fenced code blocks or referenced CSV files) with
[Pandoc Table Markdown][tables].![A CSV file rendered to Markdown and PDF][png]
[png]: Examples/demo.png
## Installation
You can use this filter in two ways.
1. **Install using Cabal:** After installing Haskell platform, run:
> ```
> cabal install pandoc-csv2table
> ```
2. **Use the single file filter:** There is a gist hosting a single file
version of this filter [here][gist]. Clone it and make it an executable script by
running:
> ```
> chmod +x pandoc-csv2table.hs
> ```
[gist]: https://gist.github.com/baig/b69e3146251bd90d12e7You can also use this filter in your Pandoc application by calling
`tablifyCsvlinks`.## Usage
### Referencing or including CSV
There are three ways to include CSV in your markdown.
1. **Referencing CSV file in Image Links:**
```
![This text will become the table caption](table.csv)
```
2. **Referencing CSV file in Fenced Code Blocks:**
```{.table caption="This is the **caption**" source="table.csv"}
```
Only code blocks having `.table` class will be processed.
3. **Including CSV content inside Fenced Code Blocks:**```{.table aligns="LCR" caption="This is the **caption**" header="yes"}
Fruit, Quantity, Price
apples, 15, 3.24
oranges, 12, 2.22
```Only code blocks having `.table` class will be processed.
CSV file or content can contain pandoc markdown. It will be parsed by the Pandoc Markdown
Reader before being inserted as a table into the document.### Running the filter
Given the filename `test.md`, run the filter using command
pandoc --filter pandoc-csv2table -o test.html test.md
or
pandoc -t json test.md | pandoc-csv2table | pandoc -f json -o test.html
## Examples
See [example.md][md] and the rendered [pdf][] version in the Examples folder
for more details on usage.[md]: Examples/example.md
[pdf]: Examples/example.pdf## Options
You can specify a [configuration string][cfg] for image links and
[attributes][atr] for fenced code blocks. There are valid options for specifying- Type of the table
- Column alignments
- Whether to treat the first line of the CSV file as header or not[cfg]: README.md#configuration-string
[atr]: README.md#attributes### Configuration String
It is included right before the closing square bracket **without any space in
between**, as shown in the example below.> \!\[Another table. mylrcd](table.csv)
`mylrcd` is the configuration string.
This will be rendered as a **m**ultiline table with a header with first column
**l**eft-aligned, second **r**ight-aligned, third **c**enter-aligned, and the
fourth one having **d**efault alignment.
***The config string will be removed from the caption after being processed.***The config string can contain following letters:
- **`s`** for **s**imple table
- **`m`** for **m**ultiline table
- **`g`** for **g**rid table
- **`p`** for **p**ipe table
- **`y`** (from **y**es) when you want the first row of CSV file to be the
header.
- **`n`** (from **n**o) when you want to omit the header.
- **`l`** for **l**eft alignment of the column
- **`r`** for **r**ight alignment of the column
- **`c`** for **c**center alignment of the column
- **`d`** for **d**efault alignment of the columnYou can specify `l` `r` `c` `d` for each column in a series.
The extra letters will be ignored if they exceed the number of columns in the
CSV file.### Attributes
You can specify header attributes in fecnced code blocks like this:
```{.table type="pipe" aligns="LCR" caption="A **caption**" header="yes"}
Fruit, Quantity, Price
apples, 15, 3.24
oranges, 12, 2.22
```***Note: `.table` must be included if the fenced code block is intended to be
processed by this filter.***Valid attributes that you can specify in code blocks include:
- **type** of the table can be **`simple`**, **`multiline`**,
**`grid`** (default), or **`pipe`**.
- **header** can be `yes` (default) or `no`
- **caption** is a string which can contain markdown.
- **source** is the path to a valid CSV file to be rendered as pandoc table.
If present, the contents inside the fenced code blocks are ignored.
- **aligns** specify alignment for each column. Use **`L`** for left, **`R`**
for right, **`C`** for center, and **`D`** for default.## License
Copyright © 2015-2023 [Wasif Hasan Baig](https://twitter.com/_wbaig),[Venkateswara Rao Mandela](https://vmandela.com)
Source code is released under the Terms and Conditions of [MIT License](http://opensource.org/licenses/MIT).
Please refer to the [License file][license] in the project's root directory.
[license]: LICENSE
[tables]: http://pandoc.org/README.html#tables