마크다운 에디터를 5분으로 만드는 【Marked.js & highlight.js】
결론으로는
Marked.js
를 사용합니다.완제품
5분 Ver
10분 ver(highlight.js 도입)
샘플
pc만 대응하고 있습니다.
병아리
먼저 Marked.js를 로드합니다.
CDN의 경우,
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
npm 사용의 경우
npm i marked
그럼
import marked from 'marked';
됩니다.
이번에는 다른 bootstrap4와 jQuery를로드합니다.
jQuery는 필수입니다.
<div class="row">
<div class="col-5 m-1">
<!-- ここに入力-->
<textarea name="article" id="markdown_editor_textarea" cols="30" rows="30" class="form-control"></textarea>
</div>
<div class="col-6 m-1 border">
<!-- ここに出力される -->
<div id="markdown_preview"></div>
</div>
</div>
// マークダウンをプレビュー画面に表示する
$(function () {
$('#markdown_editor_textarea').keyup(function () {
var html = marked($(this).val());
$('#markdown_preview').html(html);
});
});
textarea id
markdown_editor_textarea
의 마크 다운을 감지하고 markdown_preview에 html로 반환하고 표시합니다.모든 것은 marked 함수가 잘 하고 있어요.
이것만으로 완성입니다.
오션으로 만들기
그냥 수수한이므로 highlight.js와 CSS를 맞추고 갑니다.
h1 {
background: #dfefff;
box-shadow: 0px 0px 0px 5px #dfefff;
border: dashed 1px #96c2fe;
padding: 0.2em 0.5em;
color: #454545;
margin-bottom: 20px;
}
h2 {
background: linear-gradient(transparent 70%, #a7d6ff 70%);
margin-bottom: 20px;
}
h3 {
color: #010079;
text-shadow: 0 0 5px white;
padding: 0.3em 0.5em;
background: -webkit-repeating-linear-gradient(-45deg, #cce7ff, #cce7ff 3px, #e9f4ff 3px, #e9f4ff 7px);
background: repeating-linear-gradient(-45deg, #cce7ff, #cce7ff 3px, #e9f4ff 3px, #e9f4ff 7px);
margin-bottom: 20px;
}
pre {
padding: 20px;
}
제목에 css를 붙였을 뿐이므로 여기는 중요하지 않습니다.
그런 다음 코드 하이라이터 highlight.js를 소개합니다.
highlight.js 소개
이번에는 CDN으로 읽었습니다.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/styles/solarized-dark.min.css">
<script src="//cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/highlight.min.js"></script>
로드할 css는 highlight.js의 공식 demo 중에서 선택하십시오.
이번 holarized-dark.
npm의 경우
npm install highlight
import hljs from 'highlight.js';
로드 후,
// マークダウンをプレビュー画面に表示する
$(function () {
marked.setOptions({
// code要素にdefaultで付くlangage-を削除
langPrefix: '',
// highlightjsを使用したハイライト処理を追加
highlight: function (code, lang) {
return hljs.highlightAuto(code, [lang]).value
}
});
$('#markdown_editor_textarea').keyup(function () {
var html = marked($(this).val());
$('#markdown_preview').html(html);
});
});
marked.setOptions에서 읽을 때 처리를 수행합니다.
이제 코드가 강조 표시됩니다.
실물 공개
스마트 폰 미 대응입니다.
여러가지 놀아보세요.
Reference
이 문제에 관하여(마크다운 에디터를 5분으로 만드는 【Marked.js & highlight.js】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/samuraibrass/items/d40d54aa0754692d5439텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)