📝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>
The markdown files' root folder or exact file.
- Type:
string
The server's port
- Type:
number
The server's baseUrl (only works on port
is assigned)
- Type:
string
The heartbeat detection's interval millisecond
- Type:
number
- Default:
10 * 1000
Except port
, basePath
, rest options extends github-similar-server
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(...)) |
The path of markdown's template, It's useful for customizing your suitable markdown style.
- Type:
string
- Default:
./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!
- MDAST of
old.md
{
type: 'root',
children: [
{
type: 'heading',
depth: 1,
children: [{
type: 'paragraph',
children: [{ type: 'text', value: 'world' }]
}]
}
]
}
- MDAST of
new.md
{
type: 'root',
children: [
{
type: 'heading',
depth: 1,
children: [{
type: 'paragraph',
// This node is different with `old.md`
children: [{ type: 'text', value: 'world!' }]
}]
}
]
}
- github-similar-server - A github similar static server with a markdown renderer.
- detect-one-changed - Detect first changed html and markdown between old text and new one.
- Fork it!
- Create your new branch:
git checkout -b feature-new
orgit checkout -b fix-which-bug
- Start your magic work now
- Make sure npm test passes
- Commit your changes:
git commit -am 'feat: some description (close #123)'
orgit commit -am 'fix: some description (fix #123)'
- Push to the branch:
git push
- Submit a pull request :)
This library is written and maintained by imcuttle, [email protected].
MIT - imcuttle 🐟