Konverter Kode HTML Aman untuk Blogger
Konversi kode HTML (misalnya </b:skin> atau ]]>) ke format aman untuk artikel Blogger.
Masukkan kode HTML untuk dikonversi.
Pilih format spasi untuk output kode.
Pilih format untuk mengonversi kode HTML.
Lihat Kode
${escapeHtml(t)}${escapeHtml(t)}`;break;case"prettyprint":n=`${escapeHtml(t)}`;break;case"json":n=`"${escapeJson(t)}"`;break;case"preview":return document.getElementById("preview").style.display="block",document.getElementById("preview").textContent=escapeHtml(t).replace(/[^\x20-\x7E\n\r\t]/g,""),setOutput("Preview ditampilkan di bawah.",!0),void saveInput(t)}n=applySpacing(n,o),setOutput(n,!0),saveInput(t)}catch(e){console.error("Convert error:",e),setOutput("Error: Gagal mengonversi kode!",!1)}}
function copyInput(){try{const t=document.getElementById("input").value,e=document.querySelector(".copy-btn"),o=document.getElementById("copy-status");if(!t.trim())return e.classList.add("error"),o.textContent="Error: Input kosong!",setTimeout(()=>{e.classList.remove("error"),o.textContent=""},6e3),setOutput("Error: Input kosong!",!1);navigator.clipboard.writeText(t).then(()=>{e.classList.add("success"),o.textContent="Tersalin!",setTimeout(()=>{e.classList.remove("success"),o.textContent=""},6e3),setOutput("Input berhasil disalin!",!0)}).catch(r=>{e.classList.add("error"),o.textContent="Gagal menyalin!",setTimeout(()=>{e.classList.remove("error"),o.textContent=""},6e3),setOutput("Gagal menyalin: "+r,!1)})}catch(e){console.error("Copy error:",e),setOutput("Error: Gagal menyalin input!",!1)}}
function downloadOutput(){try{const t=document.getElementById("output").textContent,e=document.getElementById("mode").value;if(!t)return setOutput("Error: Tidak ada output untuk diunduh!",!1);const o=new Blob([t],{type:"text/plain"}),n=URL.createObjectURL(o),r=document.createElement("a");r.href=n,r.download=`converted_${e}.txt`,r.click(),URL.revokeObjectURL(n),setOutput("Output diunduh sebagai file!",!0)}catch(e){console.error("Download error:",e),setOutput("Error: Gagal mengunduh output!",!1)}}
function resetFields(){try{document.getElementById("input").value="",document.getElementById("output").textContent="",document.getElementById("preview").style.display="none",document.getElementById("mode").value="entity",document.getElementById("spacing").value="2",document.getElementById("copy-status").textContent="",localStorage.removeItem("savedInput"),autoResize(document.getElementById("input")),setOutput("Input dan output direset.",!0)}catch(e){console.error("Reset error:",e),setOutput("Error: Gagal mereset!",!1)}}
function saveInput(t){try{localStorage.setItem("savedInput",t.substring(0,5e4))}catch(e){console.error("Save input error:",e),setOutput("Peringatan: Input terlalu besar untuk disimpan!",!1)}}
function loadInput(){try{const t=localStorage.getItem("savedInput");t&&(document.getElementById("input").value=t,autoResize(document.getElementById("input")))}catch(e){console.error("Load input error:",e),setOutput("Gagal memuat input sebelumnya!",!1)}}
window.addEventListener("DOMContentLoaded",()=>{try{loadInput(),document.querySelector(".controls").addEventListener("click",e=>{e.target.classList.contains("action-btn")&&e.target.focus()}),document.getElementById("mode").addEventListener("change",()=>{const t=document.getElementById("mode").value;document.getElementById("output").setAttribute("aria-label",`Hasil konversi mode ${t}`)}),document.addEventListener("keydown",e=>{(e.ctrlKey&&e.key==="Enter")&&convert(),(e.ctrlKey&&e.key==="s")&&(e.preventDefault(),copyInput())})}catch(e){console.error("DOM load error:",e)}});