*MarkdownPalettes** is an open-source Markdown editor for the modern web.
We have four bundle schemes. Choose what you prefer. Note that to use *MarkdownPalettes**, your web page must be in standard mode and use UTF-8 encoding. e.g.:
<!DOCTYPE html>
<meta charset="utf-8">
First install our npm package:
$ yarn add markdown-palettes
Since *MarkdownPalettes** is a Vue component, we assume you're familiar with Vue.
If you use webpack v2+ or rollup, you can use the ES6 module:
<template>
<div style="height: 700px;">
<markdown-palettes v-model="value"/>
</div>
</template>
<script>
import MarkdownPalettes from 'markdown-palettes'
export default {
components: [MarkdownPalettes],
data: () => { value: 'Hello, **Markdown*Palettes**!' }
}
</script>
Note that the ES6 module didn't resolve its dependencies and pack them inside. It doesn't matter if you configure your webpack or rollup to resolve into node_modules
, which is the common practice. As a fallback, you can use the CommonJS module.
Replacing the ES6 'import' statement with CommonJS 'require' function:
const MarkdownPalettes = require('markdown-palettes')
require('markdown-palettes/dist/MarkdownPalettes.css')
The CommonJS module resolved its dependencies and packed them inside.
It's OK to use *MarkdownPalettes** without build tools, if you're not so familiar with Vue and Node.js toolchain.
Copy the items in dist
directory into your project.
This is recommended if you use other Vue components in your HTML page.
<link rel="stylesheet" href="https://github.com/luogu-dev/markdown-palettes/blob/master/MarkdownPalettes.css">
<div id="editor-container" style="height: 700px;">
<markdown-palettes v-model="value"></markdown-palettes>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5"></script>
<script src="https://github.com/luogu-dev/markdown-palettes/raw/master/MarkdownPalettes.umd.min.js"></script>
<script>
var app = new Vue({
el: '#editor-container',
components: { MarkdownPalettes },
data: () => { value: 'Hello, **Markdown*Palettes**!' }
})
</script>
This is suitable if you don't have other Vue components in your HTML page or you 'dislike' Vue. Note that this bundle includes Vue inside so it's larger.
<link rel="stylesheet" href="https://github.com/luogu-dev/markdown-palettes/blob/master/markdown-palettes.css">
<script src="https://github.com/luogu-dev/markdown-palettes/raw/master/markdown-palettes.js"></script>
<div id="editor-container" style="height: 700px;">
<div id="editor"></div>
</div>
<script>
var markdownEditor = new MarkdownPalettes("#editor");
markdownEditor.contenet = "**content**";
var code = markdownEditor.content;
</script>
By default bundle don't contain syntax highlighting for programming languages. If you use the bundles other than ES6 module, unfortunately you have to build it by yourself to get extra language support. If you use ES6 module, you can easily import them:
// register languages for hljs
import hljs from 'highlight.js/lib/highlight'
import cpp from 'highlight.js/lib/languages/cpp'
hljs.registerLanguage('cpp', cpp)
// register languages for CodeMirror
import 'codemirror/mode/clike/clike'
TODO
First checkout this repo.
$ yarn # install dependencies
$ yarn dev # start dev server
$ yarn build # build dist
Please upload dist
directory to npm together.
Developed by @darkflames and @lin_toto of the Luogu Dev Team