簡體   English   中英

如何刪除lodash模板創建的換行符?

[英]How to remove line breaks that lodash templates create?

我從lodash模板(使用webpack)渲染HTML,但是lodash模板正在創建新的換行符。 美化HTML將無濟於事,因為這些行不是“錯誤”。

我用什么:

<!-- Theme
============================================= -->
<%if (theme == "main") { %>
<link rel="stylesheet" href="css/theme.css" />
<% } %>

結果。 HTML <link>上方和下方的換行符

<!-- Theme
============================================= -->

<link rel="stylesheet" href="css/theme.css" />


這就是我想要的而上下沒有換行符的方式:

<!-- Theme
============================================= -->
<link rel="stylesheet" href="css/theme.css" />

可以像這樣在一行中完成所有操作,但是長代碼會變得很丑陋。

<!-- Theme
============================================= -->
<%if (theme == "main") { %><link rel="stylesheet" href="css/theme.css" /><% } %>

您可以使用_.trim()從結果的開頭和結尾刪除\\n ,並可以使用RegExp將_.replace()轉換為一個連續的\\n

 const str = `<!-- Theme ============================================= --> <%if (theme == "main") { %> <link rel="stylesheet" href="css/theme.css" /> <% } %>`; const compiled = _.template(str); const fn = _.flow([ compiled, str => _.trim(str, '\\n'), str => _.replace(str, /(\\n)\\1+/, '$1'), ]); const result = fn({ 'theme': 'main' }); console.log(result); 
 .as-console-wrapper { top: 0; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM