[javascript] Marked를 사용하여 마크다운 문서의 단락을 접기/펼치기 기능을 추가하는 방법은?
Marked는 JavaScript로 작성된 마크다운 파서 라이브러리로, 마크다운 문서를 HTML로 변환하는 기능을 제공합니다. 이 라이브러리를 사용하여 마크다운 문서의 단락을 접기/펼치기 기능을 추가할 수 있습니다.
먼저 Marked 라이브러리를 다운로드하고 HTML 파일에 포함시킵니다. 그런 다음, 다음과 같이 HTML을 작성합니다.
<!DOCTYPE html>
<html>
<head>
<title>마크다운 문서의 단락 접기/펼치기 기능</title>
<!-- Marked 라이브러리 -->
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<style>
/* 접혀진 단락의 스타일 */
.collapsed {
display: none;
}
</style>
</head>
<body>
<h1>마크다운 문서의 단락 접기/펼치기 기능</h1>
<!-- 마크다운 문서 -->
<textarea id="markdown" rows="10" cols="50">
# 제목
1. 첫 번째 단락
2. 두 번째 단락
3. 세 번째 단락
</textarea>
<!-- 변환된 HTML을 표시할 컨테이너 -->
<div id="output"></div>
<script>
var markdownTextarea = document.getElementById('markdown');
var outputContainer = document.getElementById('output');
// 마크다운 문서 변환 및 표시 함수
function renderMarkdown() {
var markdown = markdownTextarea.value;
var html = marked(markdown);
outputContainer.innerHTML = html;
}
// 단락의 접기/펼치기 토글 함수
function toggleParagraph(paragraph) {
paragraph.classList.toggle('collapsed');
}
// 변환된 HTML에 토글 버튼 요소 추가
function addToggleButtons() {
var paragraphs = outputContainer.querySelectorAll('p');
paragraphs.forEach(function(paragraph) {
var toggleButton = document.createElement('button');
toggleButton.innerText = 'Toggle';
toggleButton.addEventListener('click', function() {
toggleParagraph(paragraph);
});
paragraph.appendChild(toggleButton);
});
}
markdownTextarea.addEventListener('input', function() {
renderMarkdown();
addToggleButtons();
});
renderMarkdown();
addToggleButtons();
</script>
</body>
</html>
위의 코드를 실행하면, 마크다운 문서의 단락을 펼치거나 접을 수 있는 토글 버튼이 추가된 HTML이 표시됩니다. 버튼을 클릭하여 단락을 확장하거나 축소할 수 있습니다.
이 예시에서는 Marked와 간단한 JavaScript 코드를 사용하여 단락의 접기/펼치기 기능을 구현했습니다. 필요에 따라 스타일을 수정하거나 추가적인 기능을 구현할 수 있습니다.