Sublime Text 2 распознает шаблоны подчеркивания как HTML
Итак, я использую шаблоны underscore.js, в которых я должен поместить свой html-шаблон внутри тега script, например,
<script id="contactTemplate" type="text/template">
<img src="{{ photo }}" alt="{{ name }}" />
<h1>{{ name }}<span>{{ type }}</span></h1>
<div>{{ address }}</div>
<dl>
<dt>Tel:</dt><dd>{{ tel }}</dd>
<dt>Email:</dt><dd><a href="mailto:{{ email }}">{{ email }}</a></dd>
</dl>
</script>
но возвышенный текст 2 оценивает код внутри как обычный js, как я могу его изменить?
Спасибо заранее!
Ответы
Ответ 1
- Перейдите в
"Browse Packages"
в меню (где пункт меню зависит от вашей платформы).
- Открыть
HTML/HTML.tmLanguage
-
Измените эту строку (строка 286 в моей HTML.tmLanguage
):
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
:
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?!.*type=["']text/template['"])</string>
Теперь любые теги script с type="text/template"
или type='text/template'
будут отображаться как html, а не javascript.
Ответ 2
Поскольку модификация встроенных пакетов не совсем проста, безопасна или переносима (особенно в ST3), я отделил Matt York на свой собственный пакет.
Он доступен через управление пакетами и поддерживает как Sublime Text 2, так и 3 на всех платформах.
Синтаксис HTML Underscore
Ответ 3
Для тех из нас, кто использует Sublime Text 3
Я думал, что буду консолидировать информацию во что-то более простое, потому что ни один из ответов или комментариев напрямую не дал мне решение, в котором я нуждался. Ответ Matt York в основном правильный, но решение Shane N немного более гибкое:
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?!.*type=["']text/(template|html)['"])</string>
Вы можете найти HTML.sublime-пакет внутри C:\Program Files\Sublime Text 3\Packages
, как указано PAEz.
Инструкция
- Извлечь содержимое HTML.sublime-пакета как любой обычный zip файл
- В новом каталоге HTML/HTML, который вы только что создали, откройте HTML.tmLanguage и измените указанную выше строку (вероятно, строка 286)
- Он должен появиться сразу после
<key>begin</key>
- Сохраните изменения, затем добавьте каталог /HTML, в котором HTML.tmLanguage находится в новом zip файле.
- Удалить старый файл HTML.sublime-package
- Измените тип файла с
.zip
на .sublime-package
(убедитесь, что Sublime не работает, пока вы это делаете)
- Теперь вам должно быть хорошо идти - запустите Sublime и проверьте свои удивительные недавно выделенные шаблоны!
Ответ 4
Для тех из нас, кто использует Sublime Text 3, используйте плагин PackageResourceViewer для редактирования HTML.sublime-package
PackageResourceViewer