2015-01-26 22 views
13

Provo a scrivere principalmente poliglotta (X) HTML 5 nei miei modelli angolari HTML. Sembrano qualcosa del genere:Come convalidare i modelli angolari HTML

<div class="some-class"> 
    <input type="checkbox" data-ng-model="variable" /> 
    <foo-directive data-ng-if="variable"></foo-directive> 
</div> 

A volte mi dimentico di chiudere correttamente un tag che rompe alcuni browser. Quindi vorrei includere un validatore nella mia toolchain.

Il problema è: non conosco un validatore in grado di gestire questo caso. I validatori XML in genere richiedono un DTD, i validatori HTML si lamenteranno delle direttive angolari utilizzate nel codice.

Forse validatore è la parola sbagliata e voglio davvero un linter. L'unica cosa reale che voglio che faccia è controllare che ogni tag di apertura abbia un tag di chiusura corrispondente. Tutto il resto è un bonus.

Conoscete un tale validatore?

NOTA: Io principalmente cerco uno strumento da riga di comando che posso integrare con i miei test automatici. Ma anche un servizio web potrebbe essere utile.

+1

Sto usando [htmlhint] (http://htmlhint.com/) (attraverso [Grunt] (https://github.com/yaniswang/grunt-htmlhint) - ma non fa differenza, c'è anche un CLI). Io uso solo la 'tag-pair' (assicurati che i tag siano chiusi) e le opzioni' attr-no-dupation'. –

+1

Funziona alla grande! Lo farei solo come risposta, se lo crei. – tobib

+0

related: [Polyglot-Markup validator] (http: // stackoverflow.it/q/16281471/588079) e [Validator for polyglot HTML5] (http://softwarerecs.stackexchange.com/questions/17108/validator-for-polyglot-html5) – GitaarLAB

risposta

7

Dal htmlhint è un'opzione, è possibile utilizzarlo come descritto here da linea di comando (ovviamente dovrete npm install prima e assicurarsi che il proprio PATH contiene node_modules/.bin):

htmlhint test.html 

per testare la specifica opzioni:

htmlhint -r tag-pair,attr-no-duplication test.html 

O se le opzioni sono in un file di configurazione:

htmlhint -c config-file test.html 

io uso le seguenti opzioni con angolare:

  • tag-pair: assicurarsi che i tag siano chiusi correttamente
  • attr-no-duplication: attributi non duplicata in un elemento
+0

come si fa a 'htmllint' ignorare le direttive personalizzate e attributi? – jrharshath

+0

Non si cura di attributi/elementi personalizzati, almeno nel validatore online sulla loro [prima pagina] (http://htmlhint.com/). –

+0

true, ho notato la stessa cosa in seguito – jrharshath

0

Il progetto html-angular-validate è quello che uso e penso che sia perfetto per questo. Si utilizza il servizio di validazione del W3C HTML, ed è fondamentalmente solo ignora gli errori circa conoscere cose angolare (come le proprietà che iniziano con ng-* che sono normalmente HTML non valido)

corro via sorso usando gulp-html-angular-validate

Si dovrà configuralo per conoscere il tuo elemento personalizzato e le direttive sugli attributi, che possono diventare un po 'un problema se ne aggiungi sempre di nuovi ... una volta che lo hai fatto funziona abbastanza bene e ha salvato la mia squadra molte volte trovando errori di battitura semplici e errori comuni!