📝Github Favorite Markdown(gfm) preview with live rendering & location and highlight changed block.
npm install live-markd -g
live-markd .
const liveMarkd = require('live-markd')
// Returns express app instance listened port 8080
const app = liveMarkd('path/to/dir', {
port: 8080,
baseUrl: '/www'
})
const app = require('express')()
const liveMarkd = require('live-markd')
const middleware = liveMarkd('path/to/dir', {
heartBeatDelay: 4 * 1000, // 4s
gssOptions: {}
})
app.use(middleware)
// or
app.use('/base-url', middleware)
npm i live-markd -g
live-markd <path>
liveMarkd(root [, options])
root
The markdown files' root folder or exact file.
string
port
The server's port
number
baseUrl
The server's baseUrl (only works on port
is assigned)
string
heartBeatDelay
The heartbeat detection's interval millisecond
number
10 * 1000
gssOptions
Except port
, basePath
, rest options extends github-similar-server
templateParameters
NOTE: Expect preset parameters from github-similar-server
live-markd has injected follow parameters
name | description |
---|---|
baseUrl |
the base url from app.use('/baseUrl', lived(...)) |
markdownTemplate
The path of markdown's template, It's useful for customizing your suitable markdown style.
string
./dist/template.html
Fs Watcher -> Event Stream -> Client
|
markdown diff | heartbeat & data
|
[ Server ] | [ Browser ]
I use remark for treating markdown text as markdown abstract syntax tree(MDAST), then new MDAST comparing with old one.
For example
old.md
# hi
world
new.md
# hi
world!
old.md
{
type: 'root',
children: [
{
type: 'heading',
depth: 1,
children: [{
type: 'paragraph',
children: [{ type: 'text', value: 'world' }]
}]
}
]
}
new.md
{
type: 'root',
children: [
{
type: 'heading',
depth: 1,
children: [{
type: 'paragraph',
// This node is different with `old.md`
children: [{ type: 'text', value: 'world!' }]
}]
}
]
}
git checkout -b feature-new
or git checkout -b fix-which-bug
git commit -am 'feat: some description (close #123)'
or git commit -am 'fix: some description (fix #123)'
git push
This library is written and maintained by imcuttle, moyuyc95@gmail.com.
MIT - imcuttle 🐟