In this tutorial I’m going to explain you how to build stack overflow like editor.
Follow this below steps and build stack overflow like editor.
Step : 1 - Create project:
Open empty folder in visual studio code.
Step : 2 - Install stacks-editor package:
Then after open Terminal in visual studio code and install stacks-editor package using this command :
npm install @stackoverflow/stacks-editor
Step : 3 - Code:
HTML CODE:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://unpkg.com/@stackoverflow/stacks/dist/css/stacks.min.css">
<link rel="stylesheet" href="node_modules/@stackoverflow/stacks-editor/dist/styles.css" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
<title>TextEditor</title>
<style>
body {
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
</style>
</head>
<div class="container my-5">
<h1 class="mb-3">Stack-Editor Example:</h1>
<div id="editor-example-1"></div>
<button type="button" class="btn btn-primary my-4" id="btn" onclick="parseHTML()">Submit</button><br>
<label for="preview" class="my-4 mb-0 fs-1 mb-2">Preview:</label>
<hr class="my-0 mb-0">
<div id="preview" class="text-dark"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" defer></script>
<script src="node_modules/@stackoverflow/stacks-editor/dist/app.bundle.js"></script>
<script src="https://unpkg.com/@stackoverflow/stacks/dist/js/stacks.min.js" defer></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js" defer></script>
<script>
new window.stacksEditor.StacksEditor(
document.querySelector("#editor-example-1"),
"",
{
}
);
</script>
<script src="logic.js" defer></script>
</body>
</html>
JAVASCRIPT CODE:
// targeting id and class code - start here
let editorText = document.getElementsByClassName('ProseMirror')[0];
editorText.id = "stackEditor";
let stackEditor = document.getElementById('stackEditor');
let preview = document.getElementById('preview');
// targeting id and class code - start end
// remove 'plainText' text inside code - start here
stackEditor.addEventListener('input', (e) => {
let languageEditorText = document.getElementsByClassName('js-language-indicator')[0];
if (languageEditorText != null) {
languageEditorText.id = "languageText";
let languageText = document.getElementById('languageText');
languageText.innerText = "";
}
});
// remove 'plainText' text inside code - end here
// function for parseHTML to string - start here
function parseHTML() {
console.log(stackEditor.innerText)
preview.innerText = "";
var $preview = $("#preview"),
str = stackEditor.innerHTML,
html = $.parseHTML(str),
nodeNames = [];
// Append the parsed HTML
$preview.append(html);
stackEditor.innerText = "";
}
// function for parseHTML to string - end here
Download code : Downlaod
0 Comments
Enter Your Comment