javascript - innerHTML如何去除缩进
本文介绍了javascript - innerHTML如何去除缩进的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
已解决
各位好:
欲在html中用template
标签里面写Markdown
,再用js
对Markdown
进行处理转换成html
,局部dom结构如下:
<div class="content">
<template type="markdown">
Welcome
====
My name is Hung
</template>
</div>
<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把内容当做段落代码处理:
请问又没法办法清除这些缩进,但是又不影响正常缩进的方式,或者不用template标签的其他方式
解决方案
给你一个思路,统计每一行前面的空白符,得到一个最小值,再按这个最小值清除
补上代码
document.querySelectorAll('template[type="markdown"]').forEach($template => {
var lines = $template.innerHTML.split(/\r\n|\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')))
})
这篇关于javascript - innerHTML如何去除缩进的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文