2011-01-22 18 views

Trả lời

3

This question nói về cách làm cho Tidy hoạt động với HTML5; tinh chỉnh dòng lệnh của gói TextMate để sử dụng các tham số này sẽ hoạt động.

1

Không phải về các gói văn bản, nhưng làm thế nào về coda từ hoảng loạn? www.panic.com/coda

+0

+1: Tôi cũng định đề xuất điều đó. ;) – Alerty

0

Textmate có một bó mà sẽ xác nhận đối với các validator của W3C - http://validator.w3.org/

+0

Nhưng còn định dạng thì sao? –

0

tôi phải nói rằng tôi không quen thuộc với bó TextMate bởi vì tôi không cá nhân sử dụng trình soạn thảo. Không ít hơn, tôi phát hiện ra rằng họ có một public subversion server nơi họ giữ các gói khác nhau. Tìm kiếm nhanh không tiết lộ bất kỳ gói HTML5 nào. Bạn có thể tìm thêm thông tin về các gói trên website của chúng.

Nếu bạn muốn một cách tạo hộp nội dung web trong HTML5, hãy xem Aloha Editor.

+0

Máy chủ lật đổ chính thức chỉ giữ một tập con của các gói có sẵn trong vũ trụ TextMate. Những ngày này GitHub là nơi gói mới bật lên. Sử dụng gói GetBundles (lưu ý "s") tìm thấy một số gói HTML5 có sẵn. – cczona

2

Tôi cố gắng thêm một HTML5 Tidy để TextMate bằng cách sử dụng các thông tin tìm thấy trong this question. Tidy dường như không chấp nhận chuỗi tùy chỉnh dưới dạng DocType, vì vậy tôi đã sử dụng macro TextMate để chèn một chuỗi hợp lệ. Có lẽ là một cách thanh lịch hơn để làm điều này, nhưng nó được hoàn thành công việc!

Để bắt đầu, chúng ta cần tạo một lệnh TextMate cho Tidy phát đẹp với HTML5. Truy cập "Trình chỉnh sửa nhóm" từ trình đơn Gói và tạo một lệnh mới có chứa các mục sau:

#!/usr/bin/env ruby -wKU 

require ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb' 
require ENV['TM_SUPPORT_PATH'] + '/lib/exit_codes.rb' 

result = `"${TM_TIDY:-tidy}" -f /tmp/tm_tidy_errors -iq -utf8 \ 
      -wrap 0 --tab-size $TM_TAB_SIZE --indent-spaces $TM_TAB_SIZE \ 
      --indent yes \ 
      ${TM_XHTML:+-asxhtml --output-xhtml yes} \ 
      ${TM_SELECTED_TEXT:+--show-body-only yes} \ 
      --enclose-text yes \ 
      --doctype omit \ 
      --new-blocklevel-tags article,header,footer \ 
      --new-inline-tags video,audio,canvas,ruby,rt,rp \ 
      --break-before-br yes --vertical-space yes \ 
      --wrap-php no \ 
      --tidy-mark no` 
status = $?.exitstatus 

at_exit { File.unlink('/tmp/tm_tidy_errors') } # Clean up error log 

if status == 2 # Errors 

    msg = "Errors: " + File.read('/tmp/tm_tidy_errors') 
    TextMate.exit_show_tool_tip msg 

elsif status == 1 # Warnings - use output but also display notification with warnings 

    log = File.read('/tmp/tm_tidy_errors').to_a.select do |line| 
    ! (ENV['TM_SELECTED_TEXT'] and (line.include?('Warning: missing <!DOCTYPE> declaration') or line.include?("Warning: inserting missing 'title' element"))) 
    end.join rescue nil 

    unless log.empty? 
    options = { 
     :title => "Tidy Warnings", 
     :summary => "Warnings for tidying your document (press escape to close):", 
     :log  => log 
    } 
    TextMate::UI.simple_notification(options) 
    end 

end 

if ENV['TM_SOFT_TABS'] == "YES" 
    print result 
else 
    in_pre = false 
    result.each_line do |line| 
    unless in_pre 
     tab_size = ENV["TM_TAB_SIZE"].to_i 
     space, text = /(*)(.*)/m.match(line)[1..2] 
     line = "\t" * (space.length/tab_size).floor + " " * (space.length % tab_size) + text 
    end 

    print line 

    in_pre = true if line.include?("<pre>") 
    in_pre = false if line.include?("</pre>") 
    end 
end 

Đặt tên lệnh này theo dòng "HTML5 gọn gàng". Đặt phạm vi lựa chọn thành "text.html". Chúng tôi sẽ thiết lập phím tắt trong giây lát. Lưu ý rằng chuyển đổi "doctype" đã được đặt thành "bỏ qua", loại bỏ toàn bộ quy tắc DocType.

Sau đó bạn cần phải ghi lại một macro từ menu Gói với các hành động sau:

  • Lựa chọn "HTML5 Tidy" lệnh bạn vừa tạo
  • Nhấn CMD + Up để di chuyển đến đầu tài liệu
  • <!DOCTYPE html>
  • Chèn một dòng mới

Chọn "Save Ghi âm lần cuối "mục trình đơn để lưu trữ macro. Đặt tên cho nó là một cái gì đó thích hợp, chẳng hạn như "HTML5 Tidy + DocType" và đặt phạm vi thành "text.html". Sau đó, bạn có thể gán lối tắt bàn phím cho macro đã hoàn thành của mình bằng cách sử dụng đầu vào "Tương đương khóa".

Điều này sẽ cho phép bạn sử dụng Tidy trên tài liệu HTML5 của mình mà không gặp bất kỳ sự cố nào.