牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Emacsとhtml-modeとtidyの構文チェックでエラーなど


[MacOSX10.7, Emacs23]


Emacs でFlaymakによるHTMLのtidyを使った構文チェックでの問題。
nxhtml-mode は起動激遅だし、nxml-modeはいいようなそうでもないような微妙な感じ。
あまり考えないでhtml-modeでやってみる。

tidyのオプションやらを駆使してゴニョゴニョしてみる

tidyインストール(Macports)
sudo port install tidy
tidyのオプションをちょい足し。

ストファイルindex.htmlを用意して、コマンドラインで実験。

tidy -utf8 --accessibility-check 1 --new-blocklevel-tags table,section,article,aside,hgroup,header,footer,nav,figure,figcaption,video,audio,canvas markup no index.html
Emacsの設定のベースは下記
オプションを足すと

こんなかんじかな
init.el

  ;;;;
  ;; FlymakeHtml
  ;; http://www.emacswiki.org/emacs/FlymakeHtml
  (defun flymake-html-init ()
      (let* ((temp-file (flymake-init-create-temp-buffer-copy
                         'flymake-create-temp-inplace))
             (local-file (file-relative-name
                          temp-file
                          (file-name-directory buffer-file-name))))
        ;; (list "tidy" (list local-file))))
        (list "/opt/local/bin/tidy" (list "-utf8" "--accessibility-check" "1" "--new-blocklevel-tags" "table,section,article,aside,hgroup,header,footer,nav,figure,figcaption,video,audio,canvas" "markup" "no" local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.html$\\|\\.ctp" flymake-html-init))
  (add-to-list 'flymake-err-line-patterns
               '("line \\([0-9]+\\) column \\([0-9]+\\) - \\(Warning\\|Error\\): \\(.*\\)"
                 nil 1 2 4))
  (add-hook 'html-mode-hook '(lambda () (flymake-mode t)))
tidyrcを書く方法もあるけど

『--config ~/.tidyrc』みたいなやつもあるけど今回やらない。

エラーやらワーニングやら

tableタグを使うとWarningでる
Warning: <table> lacks "summary" attribute

これはtidyのオプションで「--accessibility-check 1 」すると出なくなる。ちなみおにデフォルトは0。
しかしこのオプションで副作用が出るかもしれない。調べれば良いことだけど。

すべて読むのしんどい(´・ω・`)

HTML5のタグ

HTML5

とかのタグもErrerとかWarningとか出る。

Error: 
is not recognized! Warning: discarding unexpected

オプションでタグ追加してみる

参考サイト

--new-blocklevel-tags" "table, section, article, aside, hgroup, header, footer, nav, figure, figcaption, video, audio, canvas" local-file

これでチェックすると

Warning: <section> is not approved by W3C

これどうすりゃいいの(´・ω・`)

試験的な『HTML Tidy for HTML5 (experimental)』

experimentalでなくなったら試してみるかも。

HTML Lint

PythonDjango で書かれてるらしいサイト。
これよさげなんだけどweb上でのチェックのみなのが残念。
コマンドラインで使いたい。

WebStormが良さそう、Emacsじゃないけど

評判の高い有料IDE $49.
兄弟IDEのPyCharmとかRubyMineもあるよ。