2011-01-22 16 views

risposta

3

This question parla di come fare in modo che Tidy funzioni con HTML5; tweaking della riga di comando del bundle di TextMate per utilizzare questi parametri dovrebbe funzionare.

1

Non parlare di bundle di compagni di testo, ma che ne dici di coda dal panico? www.panic.com/coda

+0

+1: stavo per suggerirlo anche io. ;) – Alerty

0

TextMate ha un bundle che convaliderà contro il validatore W3C - http://validator.w3.org/

+0

Ma per quanto riguarda la formattazione? –

0

devo dire che non ho familiarità con fasci TextMate, perché io non uso personalmente che editore. Tuttavia, ho scoperto che hanno uno public subversion server dove mantengono diversi pacchetti. Una ricerca rapida non ha rivelato alcun bundle HTML5. Puoi trovare ulteriori informazioni sui pacchetti sul loro website.

Se si desidera un modo immediato di creare contenuto Web in HTML5, dare un'occhiata a Aloha Editor.

+0

Il server di subversion ufficiale contiene solo un sottoinsieme dei bundle disponibili nell'universo di TextMate. In questi giorni GitHub è il luogo in cui nuovi bundle compaiono. Usando il pacchetto GetBundles (nota come "s") si trovano diversi bundle HTML5 disponibili. – cczona

2

sono riuscito a aggiungere un HTML5 Tidy a TextMate utilizzando le informazioni si trovano in this question. Tidy non sembra accettare una stringa personalizzata come DocType, quindi ho usato una macro di TextMate per inserirne una valida. Probabilmente esiste un modo più elegante per farlo, ma il lavoro è fatto!

Per iniziare, dobbiamo creare un comando TextMate per Tidy che funzioni bene con HTML5. Accedi al "Bundle Editor" dal menu Bundles, e creare un nuovo comando che contiene il seguente:

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

Nome questo comando qualcosa sulla falsariga di "HTML5 Tidy". Imposta la selezione dell'ambito su "text.html". Imposteremo una scorciatoia da tastiera in un attimo. Si noti che l'opzione "doctype" è stata impostata su "ometti", che rimuove completamente la dichiarazione DocType.

È quindi necessario registrare una macro dal menu Bundles con le seguenti azioni:

  • selezionando il comando "HTML5 Tidy" appena creata
  • Premendo CMD + Fino a spostarsi all'inizio del documento
  • Digitando <!DOCTYPE html>
  • Inserimento di una nuova linea di

Selezionare l'opzione "Salva Ultima registrazione "voce di menu per memorizzare la macro. Assegnare un nome appropriato, ad esempio "HTML5 Tidy + DocType" e impostarne l'ambito su "text.html". È quindi possibile assegnare una scorciatoia da tastiera per la macro completata utilizzando l'ingresso "Key Equivalent".

Questo dovrebbe consentire di utilizzare Tidy sui documenti HTML5 senza problemi.