Add commonmark sandbox editor to docs site

This commit is contained in:
Dimitry Ivanov 2019-01-08 14:13:52 +03:00
parent 059bc42ac6
commit 726d26b006
7 changed files with 116 additions and 1 deletions

View File

@ -0,0 +1,82 @@
<template>
<div>
<div class="container">
<div class="container-item">
<textarea @input="processMarkdown">{{markdownInput}}</textarea>
</div>
<div class="container-item display" v-html="markdownHtml"></div>
</div>
<div class="footer">
<p>
<em>
* Please note that this tool can be used to evaluate how commonmark
will react to certain markdown input. There is no guarantee that results
here and in an Android application that uses Markwon will be the same.
Especially if raw HTML is involved.
</em>
</p>
<p>
<em>
** For a little more sophisticated commonmark sandbox editor
<a href="https://spec.commonmark.org/dingus/">the dingus</a> can be used.
</em>
</p>
</div>
</div>
</template>
<script>
import commonmark from "commonmark";
const parser = new commonmark.Parser();
const writer = new commonmark.HtmlRenderer();
const initialMarkdown = `# Header 1\n\n*Hello* __there!__`;
export default {
name: "CommonmarkSandbox",
data() {
return {
markdownInput: initialMarkdown,
markdownHtml: writer.render(parser.parse(initialMarkdown))
};
},
methods: {
processMarkdown(e) {
const input = e.target.value;
const parsed = parser.parse(input);
this.markdownHtml = writer.render(parsed);
}
}
};
</script>
<style scoped>
.container {
display: flex;
flex-wrap: nowrap;
box-sizing: border-box;
}
.container-item {
flex: 4;
padding: 0.5em;
}
.container textarea {
width: 100%;
height: 100%;
resize: vertical;
min-height: 20em;
padding: 0px;
margin: 0px;
}
.display {
flex: 5;
background-color: rgba(0, 0, 0, 0.05);
}
.footer {
color: #666;
font-size: 0.85em;
}
</style>

View File

@ -13,6 +13,7 @@ module.exports = {
nav: [
{ text: 'Install', link: '/docs/install.md' },
{ text: 'Changelog', link: '/CHANGELOG.md' },
{ text: 'Sandbox', link: '/sandbox.md' },
{ text: 'Github', link: 'https://github.com/noties/Markwon' }
],
sidebar: [

View File

@ -2,7 +2,7 @@ $textColor = #000000
$accentColor = #4CAF50
a.sidebar-link {
font-weight: bold;
font-weight: 500;
}
.sidebar-sub-headers a.sidebar-link {
@ -15,6 +15,7 @@ a.sidebar-link {
.sidebar-heading {
color: $textColor;
font-weight: 600;
}
.sidebar-heading.open, .sidebar-heading:hover {

View File

@ -4,4 +4,8 @@ div[class~=language-gradle]:before {
div[class~=language-proguard]:before {
content:"proguard"
}
div[class~=language-groovy]:before {
content:"gradle"
}

23
docs/package-lock.json generated
View File

@ -2471,6 +2471,24 @@
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
},
"commonmark": {
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz",
"integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=",
"requires": {
"entities": "~ 1.1.1",
"mdurl": "~ 1.0.1",
"minimist": "~ 1.2.0",
"string.prototype.repeat": "^0.2.0"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
}
}
},
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
@ -9060,6 +9078,11 @@
}
}
},
"string.prototype.repeat": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
"integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8="
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",

View File

@ -3,6 +3,7 @@
"docs:build": "node ./collectArtifacts.js && vuepress build"
},
"dependencies": {
"commonmark": "^0.28.1",
"markdown-it-task-lists": "^2.1.1",
"vuepress": "^0.14.2"
}

3
docs/sandbox.md Normal file
View File

@ -0,0 +1,3 @@
# Commonmark Sandbox
<CommonmarkSandbox />