Что такое x-tmpl?

Ищет ответ в сети, но ничего не нашел. Эта небольшая закуска кода действительно меня разочаровывает, поскольку я не могу ее понять. (Это часть плагина, называемого: Загрузка файла jQuery)

<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
  <tr class="template-download fade">
    {% if (file.error) { %}
        <td></td>
        <td class="name"><span>{%=file.name%}</span></td>
        <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
        <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
    {% } else { %}
        <td class="preview">{% if (file.thumbnail_url) { %}
            <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
        {% } %}</td>
        <td class="name">
            <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
        </td>
        <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
        <td colspan="2"></td>
    {% } %}
    <td class="delete">
        <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
            <i class="icon-trash icon-white"></i>
            <span>{%=locale.fileupload.destroy%}</span>
        </button>
        <input type="checkbox" name="delete" value="1">
    </td>
  </tr>
{% } %}
</script>
  • Итак, какой тип text/x-tmpl?
  • Что это за теги {% и %}?
  • Какой парсер выполняет этот код?
  • ...

... но хотел бы знать все об этом.

Ответ 1

x-tmpl не имеет реального значения, он просто останавливает браузер от интерпретации script как javascript.

В основном используется с шаблонами jquery или привязка шаблона knockoutjs.

В какой-то момент объект данных javascript будет использоваться вместе с шаблоном для отображения некоторого html. Значения в объекте данных заменят значения, отмеченные {%} и аналогичными в шаблоне, с некоторыми разделами {%}, отражающими поток кода, такой как циклы и т.д.

Я не уверен, какая библиотека шаблонов использует {%}, но это не jquery-шаблоны, jsrender или нокаут. Вам нужно будет проверить, на какие библиотеки ссылаются в примере кода.

Ответ 2

Итак, какой тип text/x-tmpl?

Нестандартный. Похоже на шаблон.

Что это за те {% и%} теги?

Часть языка шаблона.

Какой парсер выполняет этот код?

Вероятно, один написан на JavaScript и импортирован в другой элемент <script> на той же странице.