国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - innerHTML如何去除縮進

瀏覽:86日期:2022-11-12 17:00:31

問題描述

已解決

各位好:

欲在html中用template標簽里面寫Markdown,再用js對Markdown進行處理轉換成html,局部dom結構如下:

<p class='content'> <template type='markdown'> Welcome ==== My name is Hung </template></p><script type='text/javascript'> document.addEventListener(’DOMContentLoaded’ ,function (event){ var $templates = document.querySelectorAll(’template[type='markdown']’) $templates.forEach(function ($template){ console.log(marked($template.innerHTML)); }) })</script>

但是因為template標簽有縮進,導致了marked把內容當做段落代碼處理:javascript - innerHTML如何去除縮進

javascript - innerHTML如何去除縮進

javascript - innerHTML如何去除縮進

請問又沒法辦法清除這些縮進,但是又不影響正??s進的方式,或者不用template標簽的其他方式

問題解答

回答1:

給你一個思路,統計每一行前面的空白符,得到一個最小值,再按這個最小值清除

補上代碼

document.querySelectorAll(’template[type='markdown']’).forEach($template => { var lines = $template.innerHTML.split(/rn|n/) var trimLen = lines.reduce((minLen, line) => { var len = (/S/.exec(line) || {index: 0}).index if (len < minLen) { return len } return minLen }, Infinity) if (trimLen > 0) { lines = lines.map(line => line.slice(trimLen)) } console.log(marked(lines.join(’n’)))})回答2:

document.querySelectorAll(’template[type='markdown']’).forEach(($template) => { let lines = $template.innerHTML.split(’n’) let linesNum = lines.length if (linesNum > 0){ !!/^s*$/.test(lines[0]) && lines.shift() !!/^s*$/.test(lines[linesNum-1]) && lines.pop() } let markdown = lines.map(line => line.substring(Math.min(...lines.map(line => line.match(/^s*/)[0].length)))).join(’n’) $template.parentElement.innerHTML = marked(markdown)})

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 常熟市| 龙陵县| 小金县| 花莲市| 双辽市| 嘉定区| 普宁市| 临湘市| 长沙市| 樟树市| 民勤县| 惠州市| 南丰县| 奉贤区| 镇巴县| 德清县| 天祝| 永吉县| 大足县| 河东区| 德庆县| 湖南省| 遂宁市| 蕉岭县| 开封市| 潼关县| 民勤县| 东安县| 丹巴县| 南靖县| 汾西县| 河东区| 钦州市| 永吉县| 名山县| 阿坝| 京山县| 麦盖提县| 霍邱县| 吴忠市| 永宁县|