2012-03-11 26 views
35

Vì vậy, tôi đang sử dụng underscore.js mẫu, trong đó tôi có phải đặt template html của tôi bên trong một thẻ script, nhưSublime Văn bản 2 nhận biết nhấn mạnh mẫu dưới dạng HTML

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

nhưng siêu việt văn bản này là 2 đánh giá mã bên trong như js thông thường, làm thế nào tôi có thể thay đổi điều đó?

Cảm ơn trước!

+0

tôi đã nộp đơn này là một lỗi với ST, do đó tất cả người dùng có thể tận hưởng bản sửa lỗi này trong một phiên bản sau: http://sublimetext.userecho.com/topic/453232-/ – Timm

Trả lời

69
  1. Chuyển đến "Browse Packages" trong menu (nơi mục menu phụ thuộc vào nền tảng của bạn).
  2. Mở HTML/HTML.tmLanguage
  3. Thay đổi dòng này (dòng 286 trong HTML.tmLanguage của tôi):

    <string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)</string>

    này:

    <string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)(?!.*type=["']text/template['"])</string>

Bây giờ bất kỳ thẻ script với type="text/template" hoặc type='text/template' sẽ hiển thị dưới dạng html chứ không phải javascript.

+0

Cảm ơn Matt! Đã chết để sử dụng zencoding và tag-match trên các mẫu gạch dưới nặng. –

+4

Xin Chúa ban phước cho bạn, RegExp siêu anh hùng. –

+1

Và nếu bạn muốn tính năng này hoạt động cho "văn bản/html": ' (?:^\ S +)? (<) ((? I: script)) \ b (?! [^ >] */>) (?!. * Type = ["'] text/(mẫu | html) ['"]) ' –

3

Đối với những người trong chúng ta sử dụng chữ Sublime 3

tôi nghĩ rằng tôi muốn củng cố các thông tin vào một cái gì đó dễ dàng hơn để tìm, vì không ai trong số các câu trả lời hoặc bình luận trực tiếp cho tôi giải pháp tôi cần. câu trả lời Matt York là chủ yếu đúng, nhưng giải pháp Shane N là một chút linh hoạt hơn:

<string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)(?!.*type=["']text/(temp‌​late|html)['"])</string>

Bạn có thể tìm HTML.sublime gói bên C:\Program Files\Sublime Text 3\Packages, như đã đề cập bởi Paez.

Hướng dẫn

  1. Extract HTML.sublime gói 's nội dung giống như bất kỳ tập tin bình thường zip
  2. Bên trong thư mục mới/HTML bạn vừa tạo ra, HTML.tmLanguage mở và sửa đổi dòng đã đề cập ở trên (có thể là dòng 286)
    1. Nó sẽ đến ngay sau <key>begin</key>
  3. Lưu các thay đổi của bạn, sau đó thêm các thư mục/HTML HTML.tmLanguage cuộc sống vào một file zip mới
  4. Xóa cũ HTML.sublime gói tập tin
  5. Thay đổi filetype từ .zip để .sublime-package (hãy chắc chắn Sublime không chạy trong khi bạn làm điều này)
  6. Bây giờ bạn nên làm tốt - kích hoạt Tuyệt vời và xem các mẫu mới được đánh dấu tuyệt vời của bạn!
+1

Để thực hiện việc này cho OS X, trước tiên bạn phải nhấp chuột phải vào ứng dụng ST3 và chọn "Hiển thị Nội dung gói", sau đó điều hướng đến Nội dung/MacOS/Gói/HTML.sublime-package –

9

Vì sửa đổi gói tích hợp không chính xác dễ dàng, an toàn hoặc di động (đặc biệt là trong ST3), tôi tách ra Matt York's thay đổi thành gói riêng.

Tính năng này có sẵn thông qua Kiểm soát gói và hỗ trợ cả hai văn bản tuyệt vời 2 và 3 trên tất cả các nền tảng.

HTML Underscore Syntax

+1

không hoạt động trên tuyệt vời văn bản 3 –

+0

Chỉ cần cài đặt nó trên một máy mới. Hoạt động hoàn hảo trong Sublime 3. Dễ dàng hơn so với chỉnh sửa tập tin. Cảm ơn John! – Throttlehead

1

Đối với những người trong chúng ta sử dụng Sublime bản 3 sử dụng các plugin "PackageResourceViewer" để chỉnh sửa HTML.sublime gói

PackageResourceViewer

Các vấn đề liên quan