📝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-neworgit 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 🐟
