https://github.com/vowstar/gitbook-plugin-wavedrom
WaveDrom Plugin for GitBook and Honkit
https://github.com/vowstar/gitbook-plugin-wavedrom
gitbook honkit honkit-plugin wavedrom
Last synced: about 1 year ago
JSON representation
WaveDrom Plugin for GitBook and Honkit
- Host: GitHub
- URL: https://github.com/vowstar/gitbook-plugin-wavedrom
- Owner: vowstar
- Created: 2018-03-08T11:57:45.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-28T13:51:54.000Z (over 1 year ago)
- Last Synced: 2025-02-28T19:38:28.600Z (over 1 year ago)
- Topics: gitbook, honkit, honkit-plugin, wavedrom
- Language: JavaScript
- Homepage:
- Size: 573 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gitbook-plugin-wavedrom
[](https://github.com/vowstar/gitbook-plugin-wavedrom/actions)
[](https://coveralls.io/github/vowstar/gitbook-plugin-wavedrom?branch=master)
[](https://www.npmjs.org/package/gitbook-plugin-wavedrom)
[](https://www.npmjs.org/package/gitbook-plugin-wavedrom)
[WaveDrom](http://wavedrom.com/tutorial.html) Plugin for [~~GitBook~~](https://github.com/GitbookIO/gitbook) [Honkit](https://github.com/honkit/honkit)
This is a sample plugin for ~~GitBook~~ Honkit and is specially adapted for ~~GitBook~~ Honkit from [WaveDrom](http://wavedrom.com/tutorial.htm). ~~Gitbook~~ Honkit WaveDrom plugin is used to select from ``WaveDrom`` and converting it into a picture.
WaveDrom is a JavaScript application. WaveJSON is a format that describes Digital Timing Diagrams. WaveDrom renders the diagrams directly inside the browser. Element "signal" is an array of WaveLanes. Each WaveLane has two mandatory fields: "name" and "wave".
## Installation
```bash
npm install gitbook-plugin-wavedrom
```
Add this plugin into ``book.json``.
```bash
{
"plugins": ["wavedrom"]
}
```
## Features
* Support HTML, PDF, EPUB output(make sure your gitbook support SVG)
* Support `` ```wavedrom `` code block quote
* Multi code style support
### Beautiful Waveform

## Configuration
book.json add the wavedrom options
```js
"pluginsConfig": {
"wavedrom": {
}
}
```
## Usage
To include a wavedrom waveform, just wrap your definition in a "wavedrom" code block. For example:
```wavedrom
{ signal: [
{ name: "pclk", wave: 'p.......' },
{ name: "Pclk", wave: 'P.......' },
{ name: "nclk", wave: 'n.......' },
{ name: "Nclk", wave: 'N.......' },
{ name: 'clk0', wave: 'phnlPHNL' },
{ name: 'clk1', wave: 'xhlhLHl.' },
{ name: 'clk2', wave: 'hpHplnLn' },
{ name: 'clk3', wave: 'nhNhplPl' },
{ name: 'clk4', wave: 'xlh.L.Hx' },
]}
```
Also you can put in your book block as
```js
{% wavedrom %}
{ signal: [
{ name: "pclk", wave: 'p.......' },
{ name: "Pclk", wave: 'P.......' },
{ name: "nclk", wave: 'n.......' },
{ name: "Nclk", wave: 'N.......' },
{ name: 'clk0', wave: 'phnlPHNL' },
{ name: 'clk1', wave: 'xhlhLHl.' },
{ name: 'clk2', wave: 'hpHplnLn' },
{ name: 'clk3', wave: 'nhNhplPl' },
{ name: 'clk4', wave: 'xlh.L.Hx' },
]}
{% endwavedrom %}
```
Set width and height parameter:
```js
{% wavedrom width=800, height=800 %}
{ signal: [
{ name: "pclk", wave: 'p.......' },
{ name: "Pclk", wave: 'P.......' },
{ name: "nclk", wave: 'n.......' },
{ name: "Nclk", wave: 'N.......' },
{},
{ name: 'clk0', wave: 'phnlPHNL' },
{ name: 'clk1', wave: 'xhlhLHl.' },
{ name: 'clk2', wave: 'hpHplnLn' },
{ name: 'clk3', wave: 'nhNhplPl' },
{ name: 'clk4', wave: 'xlh.L.Hx' },
]}
{% endwavedrom %}
```
Of course, you can also pass the parameters like this.
```wavedrom {width=600,height=1000}
{ signal: [
{ name: "pclk", wave: 'p.......' },
{ name: "Pclk", wave: 'P.......' },
{ name: "nclk", wave: 'n.......' },
{ name: "Nclk", wave: 'N.......' },
{},
{ name: 'clk0', wave: 'phnlPHNL' },
{ name: 'clk1', wave: 'xhlhLHl.' },
{ name: 'clk2', wave: 'hpHplnLn' },
{ name: 'clk3', wave: 'nhNhplPl' },
{ name: 'clk4', wave: 'xlh.L.Hx' },
]}
```
> If use both configure method, the code configure will overwrite the template configure.
## Learn WaveDrom and more information
[WaveDrom](http://wavedrom.com/tutorial.html)
## Thanks
* [@ly0](https://github.com/ly0)
* [@0x00-pl](https://github.com/0x00-pl)
* [@manageryzy](https://github.com/manageryzy)
## See also
These plugins are also available on honkit.
| Plugin | Description |
| ----------------------------------------------------------------------------- | ------------------------------------------------------ |
| [gitbook-plugin-uml](https://github.com/vowstar/gitbook-plugin-uml) | A plug-in that use plantuml to draw beautiful pictures |
| [gitbook-plugin-wavedrom](https://github.com/vowstar/gitbook-plugin-wavedrom) | A plug-in that can draw waveforms and register tables |
| [gitbook-plugin-sequence](https://github.com/vowstar/gitbook-plugin-sequence) | A plug-in that can draw sequence diagrams |
| [gitbook-plugin-flow](https://github.com/vowstar/gitbook-plugin-flow) | A plug-in that can draw flowchart.js diagrams |
| [gitbook-plugin-echarts](https://github.com/vowstar/gitbook-plugin-echarts) | A plug-in that can draw various charts such as bar/pie |