drmark
turn markdown with embedded browserifiable demos into html
Your code should append elements to document.body
or a custom target and they
will appear inline in the page.
regl example
var drmark =var fs =var src = fs
<style>.identifier {font-weight: bold;}.template-element {background-color: cyan;color: purple;}.literal {color: red;}</style># hellowhatever<script show>var regl = require('regl')()var mat4 = require('gl-mat4')var rmat = []var draw = regl({frag: `precision mediump float;varying vec2 uv;void main () {float x = uv.x + 2.0, y = uv.y + 3.0;gl_FragColor = vec4(sin(x*x*8.0 + x*y*5.0 + x*y*x*y*0.04),sin(x*x*3.0 + x*y*6.0 + x*y*x*y*0.08),sin(x*x*11.0 + x*y*7.0 + x*y*x*y*0.02),1);}`,vert: `precision mediump float;attribute vec2 position;varying vec2 uv;void main () {uv = position;gl_Position = vec4(position,0,1);}`,attributes: {position: [-5,5,-5,-5,5,0]},elements: [0,1,2]})regl.frame(() => {regl.clear({ color: [0,0,0,1], depth: true })draw()})</script># hey now<script show highlight=false>var regl = require('regl')()var mat4 = require('gl-mat4')var rmat = []var draw = regl({frag: `precision mediump float;varying vec2 uv;void main () {float x = uv.x + 2.0, y = uv.y + 3.0;gl_FragColor = vec4(uv,1,1);}`,vert: `precision mediump float;attribute vec2 position;varying vec2 uv;void main () {uv = position;gl_Position = vec4(position,0,1);}`,attributes: {position: [-5,5,-5,-5,5,0]},elements: [0,1,2]})regl.frame(() => {regl.clear({ color: [0,0,0,1], depth: true })draw()})</script>ok...
usage
drmark {OPTIONS} < infile.md > outfile.html
Read markdown from stdin and write html to stdout.
OPTIONS are the same as browserify plus:
--target Append elements to this spot in the page as a query selector.
-w --watch Recompile when an input file changes.
--live Reload automatically when an input file changes.
--server Start a server without live reload.
--class Set the css class of inline content blocks.
--theme Use a theme for syntax highlighting.
-v --verbose Print a message every time the code is recompiled.
-i --infile Read from a file. Default: - (stdin)
-o --outfile Write to a file. Default: - (stdout)
You can specify commands with `-o`:
drmark -i infile.md -o 'gzip > index.html.gz'
To recompile changes automatically when you edit a file, you can use the
onchange command (npm install -g onchange
):
$ onchange mark.md -- sh -c 'drmark < mark.md > mark.html'
syntax
To insert an inline script tag, include a <script>
tag at the beginning of a
line in the markdown file. You can set these html attributes on the script tag:
show
- whether to show code. default:false
highlight
- whether to wrap shown code in spans. default:true
For example:
# hello this is markdown whatever
The syntax highlighting wraps javascript tokens in span tags with acorn/esprima node types for class names converted from camel case to lower-case and dashed.
api
var drmark =
drmark(src, opts, cb)
Convert a markdown document source string src
to html by cb(err, html)
.
Any opts
provided are passed through to browserify plus:
opts.target
- append elements to this query selector. default:'body'
opts.class
- set the css class of inline content blocks
install
To get the library:
$ npm install drmark
To get the command:
$ npm install -g drmark
license
BSD