2015-09-16 10 views
0

Я запускаю блог на арфе. Все работает как шарм, но одна вещь, которую я не могу достичь (и не понимаю). Весь проект использует EJS. Проблема в выпущенном источнике (HTML), есть много дополнительных пробелов. Я попытался уменьшить его, как в случае меню, но это не сработало.Сервер Harp производит много пробелов (в HTML)

Я бы ожидал сокращения разрывов линии, по крайней мере. Обычно я использую что-то вроде этого:

<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><!-- 

Но проблема в части динамически обслуживаемых EJS, там это не работает, код выглядит некрасиво:

 <div class="categories"><!-- 




      --><span class="category"><a class="category-link" href="/ebooks">ebooks</a></span> 

Есть ли способ, как бороться с этим? Если я использую minified LESS, я бы хотел использовать также миниатюрный (или, по крайней мере, разумно выглядящий) HTML!

Пример кода:

 <div class="categories"><!-- 
     <% var categories = public.articles._data[slug].categories %> 
     <% if (categories !== undefined) { %> 
     <% for (var i = 0; i < categories.length; i++) { %> 
      <% if (categories[i] !== "vim tips") { %> 
      --><span class="category"><a class="category-link" href="/<%= categories[i] %>"><%= categories[i] %></a></span> 
      <% } else { %> 
      --><span class="category"><a class="category-link" href="/vim">vim tips</a></span> 
      <% } %> 
      <% } %> 
     <% } %> 
     </div> 
+0

Эй, какая версия арфы вы используете? Если вы просмотрите источник на harpjs.com, вы увидите, что Harp обычно по умолчанию изменяет все HTML вне тегов 'script',' style' и 'pre'. – kennethormandy

+0

Эй, спасибо за вопрос, моя версия 0.17.0. Я также могу подчеркнуть, что это то же самое, на динамически просматриваемых сайтах, а также на компилируемых. –

+0

Я только что понял, что это улучшает многое! когда я удаляю все пробелы (концы строк также). Это может быть проблема? Я использую Vim на безгласном сервере Ubuntu. Я предполагаю, что там все UTF-8, а концы строк - Unix. –

ответ

0

Это может быть стоит искать для существующего вопроса об этом на EJS repository, если вы чувствуете, как это вопрос. Решение, скорее всего, исходит от этого, а не от арфы. Тем не менее, один из способов исправить это может быть использование JS комментарии в EJS, а не комментарии 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> 

Надеется, что это полезно!

+0

Спасибо, я думаю, что использование '-%>' могло бы помочь, но нет, это не так. Никакой реакции. К сожалению, использование комментариев не помогает ни , –

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> 

... он работает.

С моей точки зрения это гораздо менее структурировано, но оно работает.

 Смежные вопросы

  • Нет связанных вопросов^_^