为了账号安全,请及时绑定邮箱和手机立即绑定

innerHTML如何去除缩进

innerHTML如何去除缩进

慕勒3428872 2018-11-13 16:19:44
各位好:欲在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标签的其他方式
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

给你一个思路,统计每一行前面的空白符,得到一个最小值,再按这个最小值清除

补上代码

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')))

})


查看完整回答
反对 回复 2018-12-25
  • 1 回答
  • 0 关注
  • 706 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信