Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.07.2013, 15:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от danik.js Посмотреть сообщение
Думаю такой инструмент был бы очень кстати.
Основное применение - контроль качества html кода при его написании в web-based HTML-редакторах.
Дополнительное - использование в NodeJS окружении.

Тремуебого валидатора как я понимаю в природе не существует.
Поэтому я начал подбирать полезные материалы.

Возможно у кого-то есть интерес к разработке или полезная инфа - буду рад.
велосипед или просто практика для повышения скилла?
Ответить с цитированием
  #12 (permalink)  
Старый 13.07.2013, 15:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Велосипед предполагает повторную реализацию уже существующего решения. Я что-то пропустил? Можно ссылку на работающий в браузере валидатор HTML? Скомпилированный в яваскрипт htmltidy не в счет.
Ответить с цитированием
  #13 (permalink)  
Старый 14.07.2013, 00:40
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от danik.js
Я что-то пропустил?
вроде такого ещё не видел. но они есть не в браузере - т.е. не на JS.
Сообщение от danik.js
работающий в браузере валидатор HTML
а чем он отличается от не работающего в браузере? если привязки к DOM нет, то различий нет никаких.

Последний раз редактировалось melky, 14.07.2013 в 00:43.
Ответить с цитированием
  #14 (permalink)  
Старый 14.07.2013, 10:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от melky
а чем он отличается от не работающего в браузере? если привязки к DOM нет, то различий нет никаких.
Ну так то да. Я просто имел ввиду полная реализация на JS. Потому что например для NodeJS можно в общем-то использвовать обертку над экзешником.

Схемы для валидации HTML представляют собой формат Relax NG плюс схема Schematron.

Я разбирал как работает validator.nu. Он использует HTML парсер (либо XML для application/xhtml+xml), который используется в Firfefox. Причем именно как SAX-интерфейс. В качестве контент-хэндлера (обработчика "событий" startElement, startDocument, characters и тд) устанавливается специальный обработчик, получаемый из валидатора. Валидатор по получаемым SAX-событиям делает проверку. Сам валидатор представляет из себя цепочку комбинаций валидаторов. То есть он состоит из валидатора RelaxNG, Schematron, спец-оберток, например, обертки удаляющей data-атрибут, так как он не соответствует схеме RelaxNG. Плюс еще различные checker-ы, проверяющие устаревшие атрибуты, неподдерживаемые фичи и тд.

Реализацию RelaxNG валидатора на JS я нашел. Работает очень хреново и медленно но думаю допилить можно. С Schematron схемой все сложней. По идее она трансформируется в специальный xslt-шаблон, который нужно применить к проверяемому документу. То есть нужна голая имплементация XSLT на JS. Так как валидатор будет работать внутри web-worker'а, а всяких DOM-примочек там нету.
Ответить с цитированием
  #15 (permalink)  
Старый 16.07.2013, 12:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Запаковал этот html5 парсер испольуя browserify.
В итоге имеем живую проверку синтаксиса в редакторе: http://www.new-era63.ru/ace/kitchen-sink.html (выбрать HTML документ сначала)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск