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
![vg|vega|vega-lite|vl](https://someurl/spec.json)
Example
![vega](barchart-vg.json)
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