HyperMD

A WYSIWYG Markdown Editor for browsers. Break the Wall between writing and previewing.

Github stars Tracking Chart

HyperMD

HyperMD Markdown Editor

Breaks the Wall between writing and preview, in a Markdown Editor.

NPM version Build Status

Online Demo, Examples, Documentation

中文介绍

Quickstart

// npm install --save hypermd codemirror
var HyperMD = require('hypermd')
var myTextarea = document.getElementById('input-area')
var editor = HyperMD.fromTextArea(myTextarea)

Remix on Glitch

Also for RequireJS, Parcel, webpack, plain browser env. Read the Doc

Why use HyperMD?

HyperMD is a set of CodeMirror add-ons / modes / themes / commands / keymap etc.

You may use both original CodeMirror and HyperMD on the same page.

? Write, and preview on the fly

  • Regular Markdown blocks and elements
    • Strong, Emphasis, Strikethrough, Code
    • Links, Images
    • Title / Quote / Code Block / List / Horizontal Rule
  • Markdown Extension
    • Simple Table
    • Footnote [^1]
    • TODO List (the box is clickable)
    • YAML Front Matter
    • $\LaTeX$ Formula, inline or block display mode [^4]
    • Emoji: :joy: => :joy: (also support custom emoji)
  • And more
    • HTML in Markdown -- WYSIWIG MDX is possible
    • #hashtag support [^6] , see demo
    • Flowchart and Diagrams (mermaid or flowchart.js)

? Better Markdown-ing Experience

  • Upload Images and files via clipboard, or drag'n'drop
  • Alt+Click to open link / jump to footnote [^1]
  • Hover to read footnotes
  • Copy and Paste, translate HTML into Markdown [^5]
  • Easy and ready-to-use Key-bindings (aka. KeyMap)

? CodeMirror benefits

  • Syntax Highlight for code blocks, supports 120+ languages[^2]. Mode can be loaded on-demand.
  • Configurable key-bindings
  • Diff and Merge
  • Themes [^3]
  • Almost all of CodeMirror addons!

? Extensible and Customizable

? Tailored KeyMap "HyperMD":

  • Table
    • Enter Create a table with , column, line,
    • Enter Insert new row, or finish a table (if last row is empty)
    • Tab or Shift-Tab to navigate between cells
  • List
    • Tab or Shift-Tab to indent/unindent current list item
  • Formatting a nearby word (or selected text)
    • Ctrl+B bold
    • Ctrl+I emphasis
    • Ctrl+D strikethrough

Special Thanks

? Service and Resource

? Sponsors

? Sponsors (sorted by date)

Contributing

HyperMD is a personal Open-Source project by laobubu.
Contributions are welcomed. You may:


[^1]: Ctrl+Click works too, but will jump to the footnote if exists.
[^2]: Languages as many as CodeMirror supports.
[^3]: If the theme is not designed for HyperMD, some features might not be present.
[^4]: Math block use $$ to wrap your TeX expression.
[^5]: Use Ctrl+Shift+V to paste plain text.
[^6]: Disabled by default, see doc; #use two hash symbol# if tag name contains spaces.

Main metrics

Overview
Name With Ownerlaobubu/HyperMD
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2017-01-14 16:48:39
Pushed At2021-01-05 03:36:46
Last Commit At2019-01-15 18:37:11
Release Count12
Last Release Namev0.3.11 (Posted on )
First Release Namev0.3.0 (Posted on )
用户参与
Stargazers Count1.5k
Watchers Count32
Fork Count138
Commits Count244
Has Issues Enabled
Issues Count72
Issue Open Count33
Pull Requests Count10
Pull Requests Open Count2
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private