Askinov
非物质的、无情的、超凡脱俗的伊玛·阿斯基诺夫
- Joined
- Oct 31, 2025
- Posts
- 2,383
- Reputation
- 4,779
try i g this has all try on note pad and save it as .html im just doing bs rn well you can generate it too
glowing text wont work when you toggle bb code its off
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forum BBCode & HTML Colorizer</title>
<style>
:root {
--bg-main: #121214;
--bg-card: #1a1a1e;
--bg-input: #26262b;
--accent: #00bcd4;
--accent-hover: #00acc1;
--text-main: #e2e8f0;
--text-muted: #94a3b8;
--border: #334155;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: var(--bg-main);
color: var(--text-main);
margin: 0;
padding: 20px;
display: flex;
justify-content: center;
}
.container {
width: 100%;
max-width: 900px;
background: var(--bg-card);
padding: 25px;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
border: 1px solid var(--border);
}
h1 {
text-align: center;
margin-top: 0;
color: #fff;
font-size: 24px;
text-transform: uppercase;
letter-spacing: 1px;
border-bottom: 2px solid var(--border);
padding-bottom: 15px;
}
.section-title {
font-size: 14px;
text-transform: uppercase;
color: var(--text-muted);
margin: 15px 0 8px 0;
letter-spacing: 0.5px;
font-weight: 600;
}
textarea {
width: 100%;
height: 120px;
background: var(--bg-input);
border: 1px solid var(--border);
border-radius: 6px;
color: #fff;
padding: 12px;
box-sizing: border-box;
font-size: 15px;
resize: vertical;
}
textarea:focus, select:focus {
outline: none;
border-color: var(--accent);
}
.toolbar {
display: flex;
flex-wrap: wrap;
gap: 10px;
background: var(--bg-input);
padding: 10px;
border-radius: 6px;
border: 1px solid var(--border);
align-items: center;
}
.tool-group {
display: flex;
align-items: center;
gap: 6px;
border-right: 1px solid var(--border);
padding-right: 10px;
}
.tool-group:last-child {
border-right: none;
padding-right: 0;
}
button.toggle-btn {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: all 0.2s;
}
button.toggle-btn.active {
background: var(--accent);
color: #000;
border-color: var(--accent);
}
select, input[type="color"] {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 5px;
border-radius: 4px;
cursor: pointer;
}
input[type="color"] {
width: 35px;
height: 28px;
padding: 0;
border: none;
}
.symbol-picker {
display: flex;
flex-wrap: wrap;
gap: 5px;
max-height: 75px;
overflow-y: auto;
background: var(--bg-input);
padding: 8px;
border-radius: 6px;
border: 1px solid var(--border);
}
.symbol-btn {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 4px 8px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.symbol-btn:hover {
background: var(--border);
}
.output-grid {
display: grid;
grid-template-columns: 1fr;
gap: 15px;
margin-top: 15px;
}
@media(min-width: 768px) {
.output-grid {
grid-template-columns: 1fr 1fr;
}
}
.output-wrapper {
position: relative;
}
.copy-btn {
position: absolute;
top: 32px;
right: 8px;
background: var(--accent);
border: none;
color: #000;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 600;
cursor: pointer;
}
.copy-btn:hover {
background: var(--accent-hover);
}
.output-box {
width: 100%;
height: 100px;
background: #0f172a;
color: #38bdf8;
font-family: 'Courier New', Courier, monospace;
font-size: 13px;
padding: 10px;
box-sizing: border-box;
border-radius: 6px;
border: 1px solid var(--border);
}
.preview-box {
width: 100%;
min-height: 80px;
background: #1e293b;
border: 1px solid var(--border);
border-radius: 6px;
padding: 15px;
box-sizing: border-box;
overflow-x: auto;
white-space: pre-wrap;
}
</style>
</head>
<body>
<div class="container">
<h1>Forum Text Colorizer</h1>
<div class="section-title">Input Text</div>
<textarea id="inputText" placeholder="Type your forum text or username here..."></textarea>
<div class="section-title">Cool Symbols (Click to inject)</div>
<div class="symbol-picker" id="symbolPicker"></div>
<div class="section-title">Formatting Options</div>
<div class="toolbar">
<!-- Standard Styles -->
<div class="tool-group">
<button class="toggle-btn" id="btnBold" onclick="toggleStyle('bold')">B</button>
<button class="toggle-btn" id="btnItalic" onclick="toggleStyle('italic')">I</button>
<button class="toggle-btn" id="btnUnderline" onclick="toggleStyle('underline')">U</button>
</div>
<!-- Font Family -->
<div class="tool-group">
<label style="font-size:12px;">Font:</label>
<select id="fontSelect" onchange="updateColors()">
<option value="">Default</option>
<option value="Arial">Arial</option>
<option value="Comic Sans MS">Comic Sans</option>
<option value="Courier New">Courier</option>
<option value="Georgia">Georgia</option>
<option value="Impact">Impact</option>
<option value="Lucida Sans Unicode">Lucida</option>
<option value="Tahoma">Tahoma</option>
<option value="Times New Roman">Times</option>
<option value="Trebuchet MS">Trebuchet</option>
<option value="Verdana">Verdana</option>
</select>
</div>
<!-- Coloring Types -->
<div class="tool-group">
<label style="font-size:12px;">Color Mode:</label>
<select id="colorMode" onchange="toggleColorMode()">
<option value="solid">Solid Color</option>
<option value="gradient">Gradient (Two Colors)</option>
</select>
<input type="color" id="colorStart" value="#ff0000" oninput="updateColors()">
<span id="gradientEndWrapper" style="display:none;">
<input type="color" id="colorEnd" value="#00ffff" oninput="updateColors()">
</span>
</div>
<!-- Glow Effect -->
<div class="tool-group">
<label style="font-size:12px; display:flex; align-items:center; gap:4px;">
<input type="checkbox" id="enableGlow" onchange="toggleGlowWrapper()"> Glow
</label>
<span id="glowColorWrapper" style="display:none;">
<input type="color" id="colorGlow" value="#ff00ff" oninput="updateColors()">
</span>
</div>
</div>
<div class="section-title">Live Preview</div>
<div class="preview-box" id="livePreview"></div>
<div class="output-grid">
<div class="output-wrapper">
<div class="section-title">BBCode Output</div>
<button class="copy-btn" onclick="copyToClipboard('bbcodeOutput')">Copy</button>
<textarea class="output-box" id="bbcodeOutput" readonly></textarea>
</div>
<div class="output-wrapper">
<div class="section-title">HTML Output</div>
<button class="copy-btn" onclick="copyToClipboard('htmlOutput')">Copy</button>
<textarea class="output-box" id="htmlOutput" readonly></textarea>
</div>
</div>
</div>
<script>
// State Tracking
const state = {
bold: false,
italic: false,
underline: false
};
// Curated list of decorative symbols
const symbols = [
"★", "☆", "
", "✦", "✧", "✹", "
", "
", "♛", "☠",
"☣", "
", "
", "
", "❄", "
", "
", "✈", "✉", "⚔",
"
", "🛡", "⚙", "⛓", "☯", "✞", "
", "
", "ツ", "彡",
"×", "®", "™", "█", "▄", "▀", "░", "▒", "▓", "■"
];
// Initialization
window.onload = function() {
const picker = document.getElementById('symbolPicker');
symbols.forEach(sym => {
const btn = document.createElement('button');
btn.className = 'symbol-btn';
btn.innerText = sym;
btn.onclick = () => injectSymbol(sym);
picker.appendChild(btn);
});
document.getElementById('inputText').addEventListener('input', updateColors);
// Default text seed
document.getElementById('inputText').value = "★ CUSTOM FORUM TEXT ★";
updateColors();
};
function injectSymbol(sym) {
const txtArea = document.getElementById('inputText');
const start = txtArea.selectionStart;
const end = txtArea.selectionEnd;
const text = txtArea.value;
txtArea.value = text.substring(0, start) + sym + text.substring(end);
txtArea.focus();
txtArea.selectionStart = txtArea.selectionEnd = start + sym.length;
updateColors();
}
function toggleStyle(style) {
state[style] = !state[style];
document.getElementById('btn' + style.charAt(0).toUpperCase() + style.slice(1)).classList.toggle('active', state[style]);
updateColors();
}
function toggleColorMode() {
const mode = document.getElementById('colorMode').value;
document.getElementById('gradientEndWrapper').style.display = (mode === 'gradient') ? 'inline' : 'none';
updateColors();
}
function toggleGlowWrapper() {
const isGlow = document.getElementById('enableGlow').checked;
document.getElementById('glowColorWrapper').style.display = isGlow ? 'inline' : 'none';
updateColors();
}
// Hex Color Processing Math
function hexToRgb(hex) {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
function rgbToHex(r, g, b) {
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}
function interpolateColor(color1, color2, factor) {
const c1 = hexToRgb(color1);
const c2 = hexToRgb(color2);
const r = Math.round(c1.r + factor * (c2.r - c1.r));
const g = Math.round(c1.g + factor * (c2.g - c1.g));
const b = Math.round(c1.b + factor * (c2.b - c1.b));
return rgbToHex(r, g, b);
}
// Main Formatting Engine
function updateColors() {
const text = document.getElementById('inputText').value;
const colorMode = document.getElementById('colorMode').value;
const colorStart = document.getElementById('colorStart').value;
const colorEnd = document.getElementById('colorEnd').value;
const font = document.getElementById('fontSelect').value;
const enableGlow = document.getElementById('enableGlow').checked;
const colorGlow = document.getElementById('colorGlow').value;
if (!text) {
document.getElementById('bbcodeOutput').value = "";
document.getElementById('htmlOutput').value = "";
document.getElementById('livePreview').innerHTML = "";
return;
}
let bbcode = "";
let html = "";
// Core text parsing & coloring engine
if (colorMode === 'solid') {
bbcode = `[color=${colorStart}]${text}[/color]`;
html = `<span style="color: ${colorStart};">${escapeHtml(text)}</span>`;
} else {
// Letter-by-Letter Gradient calculation
for (let i = 0; i < text.length; i++) {
const char = text;
if (char === " ") {
bbcode += " ";
html += " ";
continue;
}
// Handle single character cases smoothly to prevent division by zero
const factor = text.length > 1 ? i / (text.length - 1) : 0;
const curColor = interpolateColor(colorStart, colorEnd, factor);
bbcode += `[color=${curColor}]${char}[/color]`;
html += `<span style="color: ${curColor};">${escapeHtml(char)}</span>`;
}
}
// Apply Font configuration
if (font) {
bbcode = `[font=${font}]${bbcode}[/font]`;
html = `<span style="font-family: '${font}';">${html}</span>`;
}
// Apply Glow formatting
if (enableGlow) {
// Note: Forum plugins differ on Glow tags. [glow=Color] is the most widely supported.
bbcode = `[glow=${colorGlow}]${bbcode}[/glow]`;
html = `<span style="text-shadow: 0 0 4px ${colorGlow}, 0 0 8px ${colorGlow};">${html}</span>`;
}
// Apply Standard Typography Modifications
if (state.underline) {
bbcode = `${bbcode}`;
html = `<u>${html}</u>`;
}
if (state.italic) {
bbcode = `${bbcode}`;
html = `<em>${html}</em>`;
}
if (state.bold) {
bbcode = `${bbcode}`;
html = `<strong>${html}</strong>`;
}
// Commit outputs to the DOM UI
document.getElementById('bbcodeOutput').value = bbcode;
document.getElementById('htmlOutput').value = html;
document.getElementById('livePreview').innerHTML = html;
}
function escapeHtml(str) {
return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
}
function copyToClipboard(id) {
const copyText = document.getElementById(id);
copyText.select();
copyText.setSelectionRange(0, 99999);
navigator.clipboard.writeText(copyText.value);
}
</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Forum BBCode & HTML Colorizer</title>
<style>
:root {
--bg-main: #121214;
--bg-card: #1a1a1e;
--bg-input: #26262b;
--accent: #00bcd4;
--accent-hover: #00acc1;
--text-main: #e2e8f0;
--text-muted: #94a3b8;
--border: #334155;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: var(--bg-main);
color: var(--text-main);
margin: 0;
padding: 20px;
display: flex;
justify-content: center;
}
.container {
width: 100%;
max-width: 900px;
background: var(--bg-card);
padding: 25px;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
border: 1px solid var(--border);
}
h1 {
text-align: center;
margin-top: 0;
color: #fff;
font-size: 24px;
text-transform: uppercase;
letter-spacing: 1px;
border-bottom: 2px solid var(--border);
padding-bottom: 15px;
}
.section-title {
font-size: 14px;
text-transform: uppercase;
color: var(--text-muted);
margin: 15px 0 8px 0;
letter-spacing: 0.5px;
font-weight: 600;
}
textarea {
width: 100%;
height: 120px;
background: var(--bg-input);
border: 1px solid var(--border);
border-radius: 6px;
color: #fff;
padding: 12px;
box-sizing: border-box;
font-size: 15px;
resize: vertical;
}
textarea:focus, select:focus {
outline: none;
border-color: var(--accent);
}
.toolbar {
display: flex;
flex-wrap: wrap;
gap: 10px;
background: var(--bg-input);
padding: 10px;
border-radius: 6px;
border: 1px solid var(--border);
align-items: center;
}
.tool-group {
display: flex;
align-items: center;
gap: 6px;
border-right: 1px solid var(--border);
padding-right: 10px;
}
.tool-group:last-child {
border-right: none;
padding-right: 0;
}
button.toggle-btn {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
font-weight: bold;
transition: all 0.2s;
}
button.toggle-btn.active {
background: var(--accent);
color: #000;
border-color: var(--accent);
}
select, input[type="color"] {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 5px;
border-radius: 4px;
cursor: pointer;
}
input[type="color"] {
width: 35px;
height: 28px;
padding: 0;
border: none;
}
.symbol-picker {
display: flex;
flex-wrap: wrap;
gap: 5px;
max-height: 75px;
overflow-y: auto;
background: var(--bg-input);
padding: 8px;
border-radius: 6px;
border: 1px solid var(--border);
}
.symbol-btn {
background: #334155;
border: 1px solid var(--border);
color: #fff;
padding: 4px 8px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.symbol-btn:hover {
background: var(--border);
}
.output-grid {
display: grid;
grid-template-columns: 1fr;
gap: 15px;
margin-top: 15px;
}
@media(min-width: 768px) {
.output-grid {
grid-template-columns: 1fr 1fr;
}
}
.output-wrapper {
position: relative;
}
.copy-btn {
position: absolute;
top: 32px;
right: 8px;
background: var(--accent);
border: none;
color: #000;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
font-weight: 600;
cursor: pointer;
}
.copy-btn:hover {
background: var(--accent-hover);
}
.output-box {
width: 100%;
height: 100px;
background: #0f172a;
color: #38bdf8;
font-family: 'Courier New', Courier, monospace;
font-size: 13px;
padding: 10px;
box-sizing: border-box;
border-radius: 6px;
border: 1px solid var(--border);
}
.preview-box {
width: 100%;
min-height: 80px;
background: #1e293b;
border: 1px solid var(--border);
border-radius: 6px;
padding: 15px;
box-sizing: border-box;
overflow-x: auto;
white-space: pre-wrap;
}
</style>
</head>
<body>
<div class="container">
<h1>Forum Text Colorizer</h1>
<div class="section-title">Input Text</div>
<textarea id="inputText" placeholder="Type your forum text or username here..."></textarea>
<div class="section-title">Cool Symbols (Click to inject)</div>
<div class="symbol-picker" id="symbolPicker"></div>
<div class="section-title">Formatting Options</div>
<div class="toolbar">
<!-- Standard Styles -->
<div class="tool-group">
<button class="toggle-btn" id="btnBold" onclick="toggleStyle('bold')">B</button>
<button class="toggle-btn" id="btnItalic" onclick="toggleStyle('italic')">I</button>
<button class="toggle-btn" id="btnUnderline" onclick="toggleStyle('underline')">U</button>
</div>
<!-- Font Family -->
<div class="tool-group">
<label style="font-size:12px;">Font:</label>
<select id="fontSelect" onchange="updateColors()">
<option value="">Default</option>
<option value="Arial">Arial</option>
<option value="Comic Sans MS">Comic Sans</option>
<option value="Courier New">Courier</option>
<option value="Georgia">Georgia</option>
<option value="Impact">Impact</option>
<option value="Lucida Sans Unicode">Lucida</option>
<option value="Tahoma">Tahoma</option>
<option value="Times New Roman">Times</option>
<option value="Trebuchet MS">Trebuchet</option>
<option value="Verdana">Verdana</option>
</select>
</div>
<!-- Coloring Types -->
<div class="tool-group">
<label style="font-size:12px;">Color Mode:</label>
<select id="colorMode" onchange="toggleColorMode()">
<option value="solid">Solid Color</option>
<option value="gradient">Gradient (Two Colors)</option>
</select>
<input type="color" id="colorStart" value="#ff0000" oninput="updateColors()">
<span id="gradientEndWrapper" style="display:none;">
<input type="color" id="colorEnd" value="#00ffff" oninput="updateColors()">
</span>
</div>
<!-- Glow Effect -->
<div class="tool-group">
<label style="font-size:12px; display:flex; align-items:center; gap:4px;">
<input type="checkbox" id="enableGlow" onchange="toggleGlowWrapper()"> Glow
</label>
<span id="glowColorWrapper" style="display:none;">
<input type="color" id="colorGlow" value="#ff00ff" oninput="updateColors()">
</span>
</div>
</div>
<div class="section-title">Live Preview</div>
<div class="preview-box" id="livePreview"></div>
<div class="output-grid">
<div class="output-wrapper">
<div class="section-title">BBCode Output</div>
<button class="copy-btn" onclick="copyToClipboard('bbcodeOutput')">Copy</button>
<textarea class="output-box" id="bbcodeOutput" readonly></textarea>
</div>
<div class="output-wrapper">
<div class="section-title">HTML Output</div>
<button class="copy-btn" onclick="copyToClipboard('htmlOutput')">Copy</button>
<textarea class="output-box" id="htmlOutput" readonly></textarea>
</div>
</div>
</div>
<script>
// State Tracking
const state = {
bold: false,
italic: false,
underline: false
};
// Curated list of decorative symbols
const symbols = [
"★", "☆", "
", "✦", "✧", "✹", "
", "
", "♛", "☠", "☣", "
", "
", "
", "❄", "
", "
", "✈", "✉", "⚔", "
", "🛡", "⚙", "⛓", "☯", "✞", "
", "
", "ツ", "彡", "×", "®", "™", "█", "▄", "▀", "░", "▒", "▓", "■"
];
// Initialization
window.onload = function() {
const picker = document.getElementById('symbolPicker');
symbols.forEach(sym => {
const btn = document.createElement('button');
btn.className = 'symbol-btn';
btn.innerText = sym;
btn.onclick = () => injectSymbol(sym);
picker.appendChild(btn);
});
document.getElementById('inputText').addEventListener('input', updateColors);
// Default text seed
document.getElementById('inputText').value = "★ CUSTOM FORUM TEXT ★";
updateColors();
};
function injectSymbol(sym) {
const txtArea = document.getElementById('inputText');
const start = txtArea.selectionStart;
const end = txtArea.selectionEnd;
const text = txtArea.value;
txtArea.value = text.substring(0, start) + sym + text.substring(end);
txtArea.focus();
txtArea.selectionStart = txtArea.selectionEnd = start + sym.length;
updateColors();
}
function toggleStyle(style) {
state[style] = !state[style];
document.getElementById('btn' + style.charAt(0).toUpperCase() + style.slice(1)).classList.toggle('active', state[style]);
updateColors();
}
function toggleColorMode() {
const mode = document.getElementById('colorMode').value;
document.getElementById('gradientEndWrapper').style.display = (mode === 'gradient') ? 'inline' : 'none';
updateColors();
}
function toggleGlowWrapper() {
const isGlow = document.getElementById('enableGlow').checked;
document.getElementById('glowColorWrapper').style.display = isGlow ? 'inline' : 'none';
updateColors();
}
// Hex Color Processing Math
function hexToRgb(hex) {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
function rgbToHex(r, g, b) {
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
}
function interpolateColor(color1, color2, factor) {
const c1 = hexToRgb(color1);
const c2 = hexToRgb(color2);
const r = Math.round(c1.r + factor * (c2.r - c1.r));
const g = Math.round(c1.g + factor * (c2.g - c1.g));
const b = Math.round(c1.b + factor * (c2.b - c1.b));
return rgbToHex(r, g, b);
}
// Main Formatting Engine
function updateColors() {
const text = document.getElementById('inputText').value;
const colorMode = document.getElementById('colorMode').value;
const colorStart = document.getElementById('colorStart').value;
const colorEnd = document.getElementById('colorEnd').value;
const font = document.getElementById('fontSelect').value;
const enableGlow = document.getElementById('enableGlow').checked;
const colorGlow = document.getElementById('colorGlow').value;
if (!text) {
document.getElementById('bbcodeOutput').value = "";
document.getElementById('htmlOutput').value = "";
document.getElementById('livePreview').innerHTML = "";
return;
}
let bbcode = "";
let html = "";
// Core text parsing & coloring engine
if (colorMode === 'solid') {
bbcode = `[color=${colorStart}]${text}[/color]`;
html = `<span style="color: ${colorStart};">${escapeHtml(text)}</span>`;
} else {
// Letter-by-Letter Gradient calculation
for (let i = 0; i < text.length; i++) {
const char = text;
if (char === " ") {
bbcode += " ";
html += " ";
continue;
}
// Handle single character cases smoothly to prevent division by zero
const factor = text.length > 1 ? i / (text.length - 1) : 0;
const curColor = interpolateColor(colorStart, colorEnd, factor);
bbcode += `[color=${curColor}]${char}[/color]`;
html += `<span style="color: ${curColor};">${escapeHtml(char)}</span>`;
}
}
// Apply Font configuration
if (font) {
bbcode = `[font=${font}]${bbcode}[/font]`;
html = `<span style="font-family: '${font}';">${html}</span>`;
}
// Apply Glow formatting
if (enableGlow) {
// Note: Forum plugins differ on Glow tags. [glow=Color] is the most widely supported.
bbcode = `[glow=${colorGlow}]${bbcode}[/glow]`;
html = `<span style="text-shadow: 0 0 4px ${colorGlow}, 0 0 8px ${colorGlow};">${html}</span>`;
}
// Apply Standard Typography Modifications
if (state.underline) {
bbcode = `${bbcode}`;
html = `<u>${html}</u>`;
}
if (state.italic) {
bbcode = `${bbcode}`;
html = `<em>${html}</em>`;
}
if (state.bold) {
bbcode = `${bbcode}`;
html = `<strong>${html}</strong>`;
}
// Commit outputs to the DOM UI
document.getElementById('bbcodeOutput').value = bbcode;
document.getElementById('htmlOutput').value = html;
document.getElementById('livePreview').innerHTML = html;
}
function escapeHtml(str) {
return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
}
function copyToClipboard(id) {
const copyText = document.getElementById(id);
copyText.select();
copyText.setSelectionRange(0, 99999);
navigator.clipboard.writeText(copyText.value);
}
</script>
</body>
</html>
glowing text wont work when you toggle bb code its off