Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laobubu/HyperMD

A WYSIWYG Markdown Editor for browsers. Break the Wall between writing and previewing.
https://github.com/laobubu/HyperMD

codemirror editor markdown markdown-editor typescript wysiwyg

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# HyperMD

![HyperMD Markdown Editor](./demo/logo.png)

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

[![NPM version](https://img.shields.io/npm/v/hypermd.svg?style=flat-square)](https://npmjs.org/package/hypermd) [![Build Status](https://travis-ci.org/laobubu/HyperMD.svg?branch=master)](https://travis-ci.org/laobubu/HyperMD)

[Online Demo](https://laobubu.net/HyperMD/) | [Examples][] | [Documentation][doc]

[中文介绍](./docs/zh-CN/README.md)

## [Quickstart](./docs/quick-start.md)

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

[![Remix on Glitch](https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg)](https://glitch.com/edit/#!/remix/hello-hypermd)

Also for RequireJS, Parcel, webpack, plain browser env. [Read the Doc](./docs/quick-start.md)

## 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](https://laobubu.net), Images
+ Title / Quote / Code Block / List / Horizontal Rule
- **Markdown Extension**
+ Simple Table
+ Footnote [^1]
+ [x] TODO List *(the box is clickable)*
+ YAML Front Matter
+ $\LaTeX$ Formula, inline or block display mode [^4]
+ Emoji: `:joy:` => :joy: [(also support custom emoji)](https://laobubu.net/HyperMD/docs/examples/custom-emoji.html)
- **And more**
+ HTML in Markdown -- WYSIWIG MDX is possible
+ #hashtag support [^6] , see [demo](https://laobubu.net/HyperMD/docs/examples/hashtag.html)
+ Flowchart and Diagrams ([mermaid](https://laobubu.net/HyperMD/docs/examples/mermaid.html) or [flowchart.js](https://laobubu.net/HyperMD/docs/examples/flowchart.html))

### πŸ’ͺ 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

- Use **PowerPacks** to integrate 3rd-party libs and services on-the-fly
- [MathJax][], [marked][], [KaTeX][] and more.
- *[Read the list][powerpacks]*
- HyperMD functions are highly **modulized**

### 🎹 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**



IcoMoon - The IconPack(Free Version)


Demo Page uses IcoMoon icons. Related files are stored in demo/svgicon.



CodeCogs - An Open Source Scientific Library


FoldMath uses codecogs' service as the default TeX MathRenderer.

(You may load PowerPack to use other renderer, eg. KaTeX or MathJax)





SM.MS - A Free Image Hosting service


Demo Page and PowerPack/insert-file-with-smms use SM.MS open API to upload user-inserted images.

(If you want to integrate SM.MS service, use the PowerPack)



EmojiOne - Open emoji icons


Demo Page and PowerPack/fold-emoji-with-emojione use
Emoji icons provided free by EmojiOne
(free license)

(You may use other alternatives, eg. twemoji from twitter)





CodeMirror - In-browser code editor.

RequireJS - A JavaScript AMD module loader.

KaTeX - The fastest math typesetting library for the web.

marked,
turndown
and more remarkable libs.



🌟 **Sponsors**



πŸ™ **Sponsors** _(sorted by date)_


β˜•Phithon β˜•c*i β˜•*Yuan β˜•*Xiuzhang
β˜•*Junjie πŸŒŸεœ†δΌžη§‘ζŠ€ β˜•*Di

## Contributing

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

- [Fork on GitHub](https://github.com/laobubu/HyperMD/) , create your amazing themes and add-ons.
- [Buy me a Coffee](https://laobubu.net/donate.html)
- Spread HyperMD to the world!

-------------------------------------------------------

[CodeMirror]: https://codemirror.net/
[RequireJS]: http://requirejs.org/
[MathJax]: https://www.mathjax.org/
[marked]: https://github.com/chjj/marked/
[katex]: https://khan.github.io/KaTeX/
[laobubu]: https://laobubu.net/
[doc]: https://laobubu.net/HyperMD/docs/
[powerpacks]: https://laobubu.net/HyperMD/#./docs/powerpacks.md
[examples]: https://laobubu.net/HyperMD/docs/examples/index.html

[^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.