gulp-marked-vega is a gulp plugin to replace
marked-vega
codeblocks with base64 image markdown tags so that any markdown parser can
render the Vega or Vega-Lite
charts as images.
Currently, only the marked-vega codebase markdown is supported.
The image markdown is not supported yet.
API documentation can be found at https://e2fyi.github.io/gulp-marked-vega.
Yarn
yarn add gulp-marked-vega -D
Npm
npm install gulp-marked-vega -D
Replacing marked-vega codeblocks with image. Export as markdown.
const gulp = require('gulp');
const marked_vega = require('gulp-marked-vega');
gulp
.src('./test/sample.md')
.pipe(marked_vega()) // replace codeblocks with image
.pipe(gulp.dest('test/output')); // output as "test/output/sample.md"Replacing marked-vega codeblocks with image. Export as HTML. Auto rename to <original_filename>.html.
const gulp = require('gulp');
const marked_vega = require('gulp-marked-vega');
gulp
.src('./test/sample.md')
.pipe(marked_vega(true)) // replace codeblocks with image and export as html
.pipe(gulp.dest('test/output')); // output as "test/output/sample.html"More details on how to use Gulp as part of your build chain can be found at their site.
There is also a cli to directly embed the Vega and Vega-Lite charts in your markdown file.
usage: mdvg.js [-h] [-v] -f FILE [-o OUTPUT] [--html]
cli to replace marked-vega codeblocks with base64 embedded charts.
Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
-f FILE, --file FILE Input markdown file to process
-o OUTPUT, --output OUTPUT
Output file to write to
--html Convert to HTML
Embed chart only.
mdvg -f ./test/sample.md -o ./test/sample_.md
Embed and convert to HTML.
mdvg -f ./test/sample.md -o ./test/sample_.md --html
One of the underlaying lib to generate the image is canvas.
canvas has some special dependencies. Hence, you will get many error message if these are not met.
However, canvas-prebuilt is also been included
to ensure that it will still work if canvas cannot be compiled properly.
Below is an extract from canvas repo:
You can quickly install the dependencies by using the command for your OS:
| OS | Command |
|---|---|
| OS X | brew install pkg-config cairo pango libpng jpeg giflib |
| Ubuntu | sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++ |
| Fedora | sudo yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel giflib-devel |
| Solaris | pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto |
| Windows | Instructions on their wiki |
marked-vega introduces a few new markdown syntax.
Syntax

Example

Syntax
```vg|vega|vega-lite|vl
<Vega/Vega-Lite JSON specification>
or
<Vega/Vega-Lite JSON specification in YAML format>
```
Example - JSON specification
```vega-lite
{
"data": {
"values": [
{"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
{"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
{"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
]
},
"mark": "bar",
"encoding": {
"x": {"field": "a", "type": "ordinal"},
"y": {"field": "b", "type": "quantitative"}
}
}
```
Example - YAML specification
```vega-lite
data:
values:
- x: A
y: 13
- x: B
y: 55
- x: C
y: 43
- x: D
y: 91
- x: E
y: 81
- x: F
y: 53
- x: G
y: 19
- x: H
y: 87
- x: I
y: 52
mark:
bar
encoding:
x:
field: x
type: ordinal
y:
field: y
type: quantitative
```
Compile and publish documentation to /docs.
npm run publish
Lint and Unit testing
npm test
Run demo
npm run demo