我在Harp上运行博客。一切都像魅力,但有一件事我无法实现(并且不理解)。整个项目使用EJS。问题是在生成的源(HTML)中有很多额外的空格。我试图像菜单一样减少它,但是没有用。
我希望至少减少换行次数。通常我使用这样的东西:
B Nazanin
但问题是由EJS动态提供的部分,这不起作用,代码看起来很难看:
<li id="nav1" class="main-menu-li-current"><a class="menu-link-current" href="/">home</a></li><!--
--><li id="nav2" class=""><a class="menu-link" href="/ebooks">ebooks</a></li><!--
--><li id="nav3" class=""><a class="menu-link" href="/coding">coding</a></li><!--
有什么方法可以解决这个问题吗?如果我使用缩小的LESS,我也想使用缩小(或至少看起来合理)的HTML!
示例代码:
<div class="categories"><!--
--><span class="category"><a class="category-link" href="/ebooks">ebooks</a></span>
答案 0 :(得分:0)
如果您认为这是一个问题,可能值得在EJS repository上搜索有关此问题的现有问题。解决方案可能来自而不是竖琴。也就是说,解决这个问题的一种方法可能是在EJS中使用JS注释而不是HTML注释,因此根本不会编译注释:
<% /* %>
<h1>Commented out portion of my template</h1>
<% */ %>
我不认为你所拥有的评论是必要的。动态EJS不会输出您已将其注释掉的任何HTML,因此最好的方法是将它们完全删除:
<div class="categories">
<% var categories = public.articles._data[slug].categories %>
<% if (categories !== undefined) { %>
<% for (var i = 0; i < categories.length; i++) { %>
<span class="category"><a class="category-link" href="/<%= categories[i] === "vim tips" ? "vim" : categories[i] %>"><%= categories[i] %></a></span>
<% } %>
<% } %>
<% } %>
</div>
希望这有用!
答案 1 :(得分:0)
解决了,问题是EJS将新行放在哪里 - 如果它们没有被正确评论。当我将代码缩减为:
<div class="categories"><%
var categories = public.articles._data[slug].categories
if (categories !== undefined) {
for (var i = 0; i < categories.length; i++) { %>
<span class="category"><a class="category-link" href="/<%= categories[i] === "vim tips" ? "vim" : categories[i] %>"><%= categories[i] %></a></span>
<% }
}
}
%></div>
......它有效。
从我的观点来看,它的结构要差得多,但却有效。