The Nu Html Checker をローカルで使ってみた


# The Nu Html Checkerとは
> `The Nu Html Checker`は、`W3C`や`WhatWG`でも利用されているHTMLのバリデーターです。上記W3CまたはWhatWGのページにアクセスして、チェック対象のページのURLを入力して、HTMLの仕様に準拠しているかどうかをチェックするというのが一般的な使い方となる。

> しかし、この方法には以下の問題があります：

> 開発中のページのように社外からアクセスできないページや、ログインが必要なページのチェックができない

> 公開前のページなど、社外に出せないページのチェックに向いていない

## 以下の方法で、これらの問題に対応できる

> 以下の方法で、手元の開発環境や社内ネットワーク上に`The Nu Html Checker`の実行環境を構築することができます

# 準備
1. [公式からDL](https://github.com/validator/validator/releases/download/16.1.1/vnu.jar_16.1.1.zip)

2. 1を以下コマンドで解凍

```vim
$ unzip vnu.jar_16.1.1.zip
```
# 展開されたのファイル確認
> `dist/ ` 配下を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/21b1e3a0-91ab-05dc-5191-617c29d4525e.png)

> `dist/index.html` マニュアルとなっている

## コマンドを実行
``` vim
$ java -Xss512k -cp dist/vnu.jar nu.validator.servlet.Main  8099
2021-07-22 20:02:26.795:INFO::main: Logging initialized @304ms
nu.validator.servlet.VerifierServletTransaction - Starting static initializer.
nu.validator.servlet.VerifierServletTransaction - Reading miscellaneous properties.
nu.validator.servlet.VerifierServletTransaction - Starting to loop over config file lines.
nu.validator.servlet.VerifierServletTransaction - Finished reading config.
nu.validator.servlet.VerifierServletTransaction - Converted config to arrays.
nu.validator.servlet.VerifierServletTransaction - Prepared namespace array.
nu.validator.servlet.VerifierServletTransaction - Parsed doctype numbers into ints.
nu.validator.servlet.VerifierServletTransaction - The cache path prefix is: null
nu.validator.servlet.VerifierServletTransaction - Parsing set up. Starting to read schemas.
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/html5.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/html5-its.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/html5-rdfalite.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml10/xhtml-strict.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml10/xhtml-transitional.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml10/xhtml-frameset.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml5.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml5-rdfalite.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/xhtml1-ruby-rdf-svg-mathml.rnc
nu.validator.servlet.VerifierServletTransaction - Will load schema: http://s.validator.nu/svg-xhtml5-rdf-mathml.rnc
nu.validator.servlet.VerifierServletTransaction - Schemas read.
nu.validator.servlet.VerifierServletTransaction - Reading spec.
nu.validator.servlet.VerifierServletTransaction - Spec read.
nu.validator.servlet.VerifierServletTransaction - Initialization complete.
2021-07-22 20:02:32.134:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
2021-07-22 20:02:32.171:INFO:oejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@f32f46{/,null,AVAILABLE}
2021-07-22 20:02:32.198:INFO:oejs.ServerConnector:main: Started ServerConnector@13edb3b{HTTP/1.1}{0.0.0.0:8099}
2021-07-22 20:02:32.199:INFO:oejs.Server:main: Started @5712ms
```

## `http://localhost:8099/` アクセス

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/2a4e888f-1cb1-ee86-f842-48d2a81edf62.png)

### 実際に`ファイル選択` からhtmlファイルを指定してチェッカー実施

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/ec48a02f-d4b2-b158-911e-ad577ea460c3.png)

> 下までスクロールで確認し、HTML5のチェッカーに通るようにファイルを修正する