64 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<script src="https://unpkg.com/marked@0.3.6"></script>
 | 
						|
<script src="https://unpkg.com/lodash@4.16.0"></script>
 | 
						|
<script src="../../dist/vue.global.js"></script>
 | 
						|
 | 
						|
<div id="editor">
 | 
						|
  <textarea :value="input" @input="update"></textarea>
 | 
						|
  <div v-html="compiledMarkdown"></div>
 | 
						|
</div>
 | 
						|
 | 
						|
<script>
 | 
						|
const App = {
 | 
						|
  data: {
 | 
						|
    input: '# hello'
 | 
						|
  },
 | 
						|
  computed: {
 | 
						|
    compiledMarkdown() {
 | 
						|
      return marked(this.input, { sanitize: true })
 | 
						|
    }
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
    update: _.debounce(function (e) {
 | 
						|
      this.input = e.target.value
 | 
						|
    }, 300)
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
Vue.createApp().mount(App, '#editor')
 | 
						|
</script>
 | 
						|
 | 
						|
<style>
 | 
						|
html, body, #editor {
 | 
						|
  margin: 0;
 | 
						|
  height: 100%;
 | 
						|
  font-family: 'Helvetica Neue', Arial, sans-serif;
 | 
						|
  color: #333;
 | 
						|
}
 | 
						|
 | 
						|
textarea, #editor div {
 | 
						|
  display: inline-block;
 | 
						|
  width: 49%;
 | 
						|
  height: 100%;
 | 
						|
  vertical-align: top;
 | 
						|
  -webkit-box-sizing: border-box;
 | 
						|
  -moz-box-sizing: border-box;
 | 
						|
  box-sizing: border-box;
 | 
						|
  padding: 0 20px;
 | 
						|
}
 | 
						|
 | 
						|
textarea {
 | 
						|
  border: none;
 | 
						|
  border-right: 1px solid #ccc;
 | 
						|
  resize: none;
 | 
						|
  outline: none;
 | 
						|
  background-color: #f6f6f6;
 | 
						|
  font-size: 14px;
 | 
						|
  font-family: 'Monaco', courier, monospace;
 | 
						|
  padding: 20px;
 | 
						|
}
 | 
						|
 | 
						|
code {
 | 
						|
  color: #f66;
 | 
						|
}
 | 
						|
</style>
 |