vnu-jar 21.4.9 → 21.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # The Nu Html Checker (v.Nu) [![Chat room][1]][2] [![Download latest][3]][4]
2
2
 
3
- [1]: https://img.shields.io/badge/gitter-chat%20%E2%86%92-brightgreen.svg
4
- [2]: https://gitter.im/validator/validator
3
+ [1]: https://img.shields.io/badge/[matrix]-chat%20%E2%86%92-brightgreen.svg
4
+ [2]: https://matrix.to/#/#validator_validator:gitter.im
5
5
  [3]: https://img.shields.io/badge/download-latest%20%E2%86%92-blue.svg
6
6
  [4]: https://github.com/validator/validator/releases/latest
7
7
 
@@ -60,7 +60,6 @@ exec(`java -jar ${vnu} --version`, (error, stdout) => {
60
60
  });
61
61
  ```
62
62
  ## Usage
63
-
64
63
  Run the checker with one of the following invocations:
65
64
 
66
65
  • `vnu-runtime-image/bin/vnu OPTIONS FILES` (Linux or macOS)
@@ -78,10 +77,10 @@ the following options:
78
77
  --skip-non-svg --also-check-svg --html --skip-non-html
79
78
  --format gnu|xml|json|text --help --verbose --version
80
79
 
81
- The [Options][26] section below provides details on each option, and the rest of
80
+ The [Options][27] section below provides details on each option, and the rest of
82
81
  this section provides some specific examples.
83
82
 
84
- [26]: https://validator.github.io/validator/#options
83
+ [27]: https://validator.github.io/validator/#options
85
84
 
86
85
  **Note:** Throughout these examples, replace `~/vnu.jar` with the actual path to
87
86
  that jar file on your system, and replace `vnu-runtime-image/bin/vnu` and
Binary file
package/package.json CHANGED
@@ -1,34 +1 @@
1
- {
2
- "name": "vnu-jar",
3
- "version": "21.4.9",
4
- "description": "Provides the Nu Html Checker «vnu.jar» file",
5
- "main": "vnu-jar.js",
6
- "author": "Michael[tm] Smith <mike@w3.org>",
7
- "engines": {
8
- "node": ">=0.10"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/validator/validator.git"
13
- },
14
- "license": "MIT",
15
- "bugs": {
16
- "url": "https://github.com/validator/validator/issues"
17
- },
18
- "homepage": "https://github.com/validator/validator#readme",
19
- "keywords": [
20
- "checker",
21
- "html",
22
- "lint",
23
- "linter",
24
- "jar",
25
- "nu",
26
- "validator",
27
- "vnu",
28
- "w3c"
29
- ],
30
- "files": [
31
- "build/dist/vnu.jar",
32
- "vnu-jar.js"
33
- ]
34
- }
1
+ {"name": "vnu-jar", "version": "21.9.2", "description": "Provides the Nu Html Checker \u00abvnu.jar\u00bb file", "main": "vnu-jar.js", "author": "Michael[tm] Smith <mike@w3.org>", "engines": {"node": ">=0.10"}, "repository": {"type": "git", "url": "git+https://github.com/validator/validator.git"}, "license": "MIT", "bugs": {"url": "https://github.com/validator/validator/issues"}, "homepage": "https://github.com/validator/validator#readme", "keywords": ["checker", "html", "lint", "linter", "jar", "nu", "validator", "vnu", "w3c"], "files": ["build/dist/vnu.jar", "vnu-jar.js"]}
package/CHANGELOG.md DELETED
@@ -1,445 +0,0 @@
1
- With a few exceptions, this is a record of mainly just user-facing
2
- changes — that is, either changes to the actual behavior of the checker,
3
- or changes to any options/interfaces the checker exposes for developers.
4
-
5
- # NN.NN.NN
6
- NN XXX NNNN
7
- - Allow `loading` attribute for the `iframe` element (lazy loading)
8
- - Allow `autocomplete=username` with `input[type=email]`
9
- - Allow `operator=lighter` for SVG `feComposite` element
10
- - Allow more values for SVG `feBlend` element `mode` attribute
11
- - CLI: Add nu.validator.htmlparser.tools|test classes to vnu.jar
12
- - CLI/Docker: Enable setting timeouts & bind address w/ environment vars
13
- - CSS: Support color-adjust
14
- - Docker: Migrate Dockerfile to “distroless” image (reduces image size)
15
- - ARIA: Allow `aria-required` with `input[type=file]`
16
- - Update doc-fetching backend to Apache HTTP Components HttpClient 4.5.9
17
- - Make the checker use HTTP 1.0 for all requests it make, not HTTP 1.1
18
- - Make the checker ignore error for malformed/missing HTTP closing chunk
19
-
20
- # 20.6.30
21
- 30 June 2020
22
- - CLI: Add new `--stdout` option, to report all messages to stdout
23
- - CLI: Ensure the `--version` option reports the actual version
24
- - CLI: Actually check SVG files, rather than just seeming to (bug fix)
25
- - CSS: Improvements in `calc()`, `min()`/`max()` checking, more
26
- - Allow `height` and `width` attributes for SVG `symbol` element
27
- - Allow `capture` attribute for the `input[type=file]` element
28
- - Allow `disabled` attribute for the `link[rel=stylesheet]` element
29
- - Treat custom elements as labelable elements for `label[for]` handling
30
- - ARIA: Fix bug that disallowed implicit combobox/listbox for `select`
31
- - ARIA: Improve error message for `alt`-less `img` with ARIA attributes
32
- - ARIA: Allow `section[role=doc-glossary]`
33
-
34
- # 20.3.16
35
- 16 March 2020
36
- - Disallow `accept-charset` values other than `UTF-8`
37
- - Disallow object[typemustmatch]
38
- - Allow SVG feDropShadow element (from Filter Effects spec)
39
- - Allow `loading` attribute for the `img` element (lazy loading)
40
- - Allow `rel=modulepreload` for the `link` element
41
- - Allow `integrity` attribute on link[rel=preload|modulepreload]
42
- - Allow `integrity` attribute on script[type=module]
43
- - Allow `autofocus` as a global attribute
44
- - Allow `inputmode` as a global attribute
45
- - Allow `nonce` as a global attribute
46
- - Allow `allow-downloads` in iframe[sandbox]
47
- - Allow heading content within `legend` element
48
- - Allow negated media features in `media` and `sizes` attributes
49
- - Align `autocomplete` checking with current spec
50
- - CSS: Improve support for color values
51
- - ARIA: Allow implicit roles to satisfy owned-by requirements
52
- - ARIA: Add proper ARIA checking for the `math` element
53
- - ARIA: Align all role checking with current HTML-ARIA spec
54
- - Add option to specify additional script for Web-based checker
55
- - CLI: Make --errors-only option take precedence over --Werror
56
- - CLI: Enable checking standard input as SVG or CSS
57
- - Include binary runtime images in release (alternative to jar/war)
58
- - Dockerfile: Switch to using binary runtime image rather than jar
59
- - Add checker.py script to repo (for building/testing/running checker)
60
- - Add option to bind to specific IP address (rather than all interfaces)
61
-
62
- # 18.11.5
63
- 05 November 2018
64
- - Fix bugs that can cause the command-line checker to emit broken JSON output
65
- - Allow `dppx` and `x` and units in media queries
66
-
67
- # 18.8.29
68
- 29 August 2018
69
- - CSS: Allow unit-less values for stroke-width and other from-SVG props
70
- - CSS: Bring checking up to date w/ CSS Align3; support font-display
71
-
72
- # 18.7.23
73
- 23 July 2018
74
- - Disable logging in the language detector
75
-
76
- # 18.7.22
77
- 22 July 2018
78
- - Allow the `decoding` attribute for the `img` element
79
- - Allow the `allow` attribute for the `iframe` element (initial support)
80
- - Align ARIA checking further with ARIA in HTML spec requirements
81
- - Restore the language-detection feature to vnu.jar command-line checker
82
- - Ensure vnu.jar is always runnable under Java8, even if built under Java9
83
-
84
- # 18.3.0
85
- 24 March 2018
86
- - Add new major (optional) feature to command-line checker, Web-based checker,
87
- and network API to check CSS documents (in addition to HTML documents)
88
- - Add new major feature to check that `style` element contents and `style`
89
- attribute values in HTML documents are valid CSS
90
- - Add new (optional) feature to command-line checker to check SVG documents
91
- - Add new option to command-line checker for specifying User-Agent string
92
- - Add Dockerfile to Docker Hub https://hub.docker.com/r/validator/validator/
93
- - Add ability to Web-based checker to check SVG documents by file upload
94
- - Emit error (not warning) for HTML4/XHTML1 strict doctypes
95
- - Further restrict `script[type]` and `style[type]`
96
- - Allow the `autocapitalize` global attribute
97
- - Allow the `slot` attribute (for Shadow DOM interaction)
98
- - Allow the `allowpaymentrequest` attribute for the `iframe` element
99
- - Allow only one non-hidden `main` element per document
100
- - Allow only `html`, `body`, `div`, `form`, custom elements as `main` ancestor
101
- - Allow `</caption>` end tag to be omitted
102
- - Allow `role=none` where `role=presentation` is allowed
103
- - Allow `role=rowgroup` element to be contained in `role=table` element
104
- - Allow `role=row` element to be contained in `role=table` element
105
- - Allow more values for `aria-haspopup` per current ARIA spec
106
- - Allow more ARIA states & properties for `role=menuitem`
107
- - Allow CSP `prefetch-src` directive (updated to Salvation 2.4.0)
108
- - Disallow all character encodings other than UTF-8
109
- - Disallow `script[charset]`
110
- - Disallow nested interactive ARIA roles
111
- - Disallow the `dropzone` attribute
112
- - Disallow the `menuitem` element
113
- - Fix bug that caused the checker to incorrectly treat `input[type]` values
114
- case-sensitively when doing particular checks
115
-
116
- # 17.11.1
117
- 07 October 2017
118
- - Fix bug that made the vnu.jar `--Werror` option not work as expected
119
- - Make vnu.jar exit 0 if all errors have been filtered out
120
-
121
- # 17.11.0
122
- 06 October 2017
123
- - Allow DPUB roles on more elements (per ARIA in HTML spec updates)
124
- - Add `--Werror` option to the vnu.jar command-line checker. The option
125
- causes the checker to exit non-zero if any warnings are encountered
126
- (even if there are no errors).
127
- - Fix mismatch that caused message-filtering failures
128
- - Fix memory leak in language detector (patch from @tgyurci)
129
- - Stop reporting HTML4-specific parse errors for HTML4-doctype docs
130
-
131
- # 17.9.0
132
- 20 August 2017
133
- - Allow `script[nomodule]`
134
- - Allow `hover`, `any-hover`, `pointer`, and `any-pointer` media features
135
- - Allow `@scope`, `@updateviacache`, `@workertype` for `link[rel=serviceworker]`
136
- - Allow `&;` (don’t report it as “`&` did not start a character reference”)
137
- - Add `acceptlanguage` query parameter, to specify an Accept-Language
138
- request-header value for checker to send when fetching remote documents
139
- - Update CSP checking to Salvation 2.3.0
140
- https://github.com/shapesecurity/salvation/releases/tag/v2.3.0
141
-
142
- # 17.7.0
143
- 26 June 2017
144
- - Add new major feature to filter out (drop/ignore/suppress) errors/warnings
145
- by regex. See https://github.com/validator/validator/wiki/Message-filtering
146
- - Replace a case of “Attribute "foo" not allowed on element "param" **in this
147
- context**” wording in error message with “Attribute "foo" not allowed on
148
- element "param" **at this point**” (for consistent working for that error
149
- between the command-line checker and the web-based checker).
150
- - Disallow the `contextmenu` attribute and `type=contextmenu` and `type=toolbar`
151
- for the `menu` element.
152
- - Allow `link[rel=serviceworker]`
153
- - Allow floating-point numbers in attribute values to start with decimal point
154
- - Allow `a[href]` in SVG wherever `a[xlink:href]` is allowed
155
- - Allow the `focusable` and `tabindex` attributes on SVG elements
156
- - Fix bug that disallowed `progress` & `meter` as `label[for]` targets
157
- - Default to text/html for checking file uploads
158
- - Emit warnings for use of `rel={copyright,previous}`
159
- - Prevent Bulgarian ➡ Russian misidentifications in language detector
160
- - Skip figcaption elements when running the language detector
161
-
162
- # 17.3.0
163
- 26 March 2017
164
- - Allow `color` attribute with `link[rel="mask-icon"]`
165
- - Allow `meta[name]` to have `itemref`/`itemscope`/`itemtype`/`itemid`
166
- - Allow `allow-top-navigation-by-user-activation` in `iframe[sandbox]`
167
- - Stop hiding “sectioning roots” headings in “Heading-level outline”
168
- - Change error for `role=none` with `img[alt=""]` to warning
169
- - Fix from @xfq for longstanding bug in “Show source” behavior in Web UI
170
- - Fix from @xfq for controlling some runtime params for HTTP behavior
171
- - Fix from @zcorpan to drop unneeded warning for `<menu type=toolbar>`
172
- - Make “Corrupt GZIP trailer” a non-error
173
- - Add `--asciiquotes` option to vnu.jar command-line checker
174
- - Skip lang detection of elements w/ lang attributes not matching `html[lang]`
175
- - Drop Bulgarian lang detection, to prevent Russian misidentification
176
- - Update Estonian/Catalan lang profiles, to prevent Russian misidentification
177
- - Update ICU4J to 58.2
178
-
179
- # 17.2.1
180
- 06 February 2017
181
- - Fix bug in language detector that when running the vnu.jar command-line
182
- checker on a list of documents caused it to sometimes misidentify the
183
- language of the 2nd, 3rd, 4th, etc., documents. The bug also caused the
184
- memory used by the checker to increase as the number of documents
185
- checked at the same time increased, and caused performance to degrade.
186
- - Allow `aria-required` attribute everywhere `required` attribute is allowed
187
- - Add `--exit-zero-always` option to vnu.jar command-line checker
188
- - Fix longstanding bug around code for identifying overlapping cells in
189
- table-integrity checker (the bug somewhat frequently gets hit when checking
190
- Wikipedia pages but otherwise in the wild gets hit only extremely rarely)
191
-
192
- # 17.2.0
193
- 30 January 2017
194
- - Fix bug that broke vnu.jar command-line checking of URLs
195
- - Fix bug in `rel="shortcut icon"` checking
196
- - Add `nu.client.EmbeddedValidator` for use as library by other Java apps
197
- - Disallow `tfoot` before `tbody`
198
-
199
- # 17.1.0
200
- 15 January 2017
201
- This release adds the following changes to the vnu.jar command-line
202
- checker that had already been made available in the Web-based checker in
203
- the 17.0.1 release.
204
- - Allow **custom elements** (names containing “-”; e.g., `<foo-bar>`)
205
- - Allow anything in `template` element subtrees (exclude from checking)
206
-
207
- # 17.0.1
208
- 08 January 2017
209
- - New language-detection feature; warns for missing/wrong `html[lang]`
210
- - New option `--no-langdetect` for `vnu.jar` disables language detection
211
- - Allow **custom elements** (names containing “-”; e.g., `<foo-bar>`)
212
- - Allow the `is` attribute (for custom elements)
213
- - Allow **ARIA 1.1** roles/states/properties
214
- - Warn for viewport values that restrict resizing
215
- - Allow `div` in `dl`, to group `dt`+`dd` sets
216
- - Allow anything in `template` element subtrees (exclude from checking)
217
- - Allow `link[rel=preload]` in body
218
- - Disallow `sizes` attribute on non-icon `link`
219
- - Allow `<link rel=apple-touch-icon sizes=…>`
220
- - Allow comments before doctype (warning dropped)
221
- - Allow `<video playsinline>`
222
- - Allow `<iframe allowusermedia>`
223
- - Warn for `sandbox="allow-scripts allow-same-origin"`
224
- - New option to check error pages (404s and other non-200 responses)
225
- - Allow `link[nonce]`
226
- - Disallow `input[datetime]`
227
- - Disallow `mediagroup` attribute
228
- - Allow `menu[type=popup]`, disallow `menu[type=context]`
229
- - Disallow non-http/https URLs in `a[ping]`
230
- - Allow `referrerpolicy` attribute
231
- - Warn for `html[manifest]` (obsolete)
232
- - Disallow `keygen` (obsolete)
233
- - Warn for `about:legacy-compat` in doctype
234
- - Align SVG+ARIA checking with ARIA requirements in current SVG spec
235
- - Allow `h1`-`h6` & `hgroup` in `legend`
236
- - Ignore SSL errors when checking remote documents
237
- - Allow `script[type=module]` (supported in Edge but not in other UAs yet)
238
- - Disallow content in `iframe` (must be empty)
239
- - Make `vnu.jar` check `.xhtml` files using XML-specific RelaxNG grammar
240
- - Allow `th[abbr]`
241
- - Allow any value in SVG `class` attribute (not just XML-compatible names)
242
- - Disallow HTML4/XHTML1 Transitional doctype
243
- - Allow CSP `require-sri-for` directive (updated to Salvation 2.2.0)
244
- - Allow any element or text as content of SVG `desc`
245
- - Allow SVG `vector-effect=non-scaling-stroke`
246
- - Allow only text in `rp`
247
- - Disallow multiple `meta[name=description]`
248
- - Disallow URLs with port values greater than 65535
249
- - Disallow `<input name=isindex>`
250
- - Disallow empty `autocomplete` attribute
251
-
252
- # 16.6.29
253
- 29 June 2016
254
- - JSON/gnu message formats updated to ensure doc URL is always included
255
- - `<!-->` (IE conditional comment end) is now (again) a non-error
256
- - `<template>` contents are now hidden from outline views
257
-
258
- # 16.6.20
259
- 20 June 2016
260
- - fixes problem that made the release jars unusable with Scala `sbt test`
261
- - adds “Heading-level outline” in Web UI; shows simple h1-h6 hierarchy
262
-
263
- # 16.6.18
264
- 18 June 2016
265
- - link[rel=stylesheet] in body now non-error (body-OK)
266
- - rel=dns-prefetch|preconnect|prefetch|preload|prerender non-error+body-OK
267
- - style[scoped] now error
268
- - iframe[seamless] now error
269
- - `--` (consecutive hyphens) within a comment now non-error
270
- - new specific error for `--!>` at end of a comment
271
- - new specific error for `<!--` within a comment
272
- - multiple meta[charset] now error
273
- - `autocomplete` checking now aligned with current spec
274
- - label[form] now error
275
- - a|area[rel=noopener] now non-error
276
- - allow-presentation/allow-orientation-lock in iframe[sandbox] non-error
277
- - label-less empty option now non-error if datalist child
278
- - section[role=navigation|complementary|banner] now non-error
279
-
280
- # 16.3.3
281
- 3 March 2016
282
- - Made `minlength` a non-error for `input[type=password]`/`input[type=text]`
283
- - Made multiple values in `integrity` a non-error
284
- - Made `<time>` with element children an error if no `datetime` specified
285
- - Improved CSP checking (now using Salvation 2.0.1)
286
- - [WebUI] Dropped “Using the schema…”/“The Content-Type was…” Info msgs
287
- - [WebUI] Added some autofocus of URL field and Message Filtering button
288
- - [WebUI] Footer now tells whether document was served w/ charset param
289
- - [WebUI] Fixed bug/regression in Image Report image display
290
- - [build] Fixed bug caused by Rhino team building their jar with Java6
291
- - [build] Fixed some problems with running build script on Windows
292
- - [build] Made build script work with Python 3 (not just Python 2)
293
-
294
- # 16.1.1
295
- 1 January 2016
296
- - Java8 is now required to run the checker (and to build it).
297
- - Made the `<meta http-equiv=content-security-policy content="...">`
298
- element a non-error & added syntax checking of its `content` attribute
299
- and checking of the value of the Content-Security-Policy HTTP header.
300
- - Made the Content Security Policy `nonce` attribute a non-error.
301
- - Aligned `on*` event-handler-attribute checking with spec.
302
- - Aligned `iframe[sandbox]` checking with spec.
303
- - Made `minlength` attribute a non-error.
304
- - Dropped “heading needed” warning for cases where `aria-label` found.
305
- - Made unescaped ampersand a non-error in, e.g. `href="foo?bar=1&baz=2"`.
306
- - Added error for `img[alt=""]` w/ `role` != `presentation`.
307
- - Made `role=switch` a non-error.
308
- - Made `role=group` for `header` & `footer` a non-error.
309
- - Made `role=search` for `form` a non-error.
310
- - Made the Subresource Integrity `integrity` attribute a non-error and
311
- added syntax checking for it.
312
- - Refined bad-URL error message to indicate which character is invalid.
313
- - Refined Web UI "Message Filtering" to show total error/warning counts
314
- - Refined Web UI to show green if there are 0 errors or warnings to show
315
- - Fixed "`input[type=hidden]` label descendants" bug (@takenspc patch)
316
- - Refined Web UI to remove background colors and increase font size
317
- - Made a variety of refinements and fixes to ARIA role checking.
318
- - Made `ol>li[role=menuitem]` & `ol>li[role=tab]` non-errors.
319
- - Added warnings for use of ARIA roles with implicit-semantics elements.
320
- - Made nesting of `time` elements a non-error.
321
- - Made checker ignore `input[type=hidden]` label descendants in checks.
322
- - Improved errors for obsolete media types/features.
323
- - Fixed bug in checking of the content model for the `ruby` element.
324
-
325
-
326
- # 15.6.29
327
- 29 June 2015
328
- - Added error messages for deprecated CSS media types/features.
329
- - Changed checking of the `accept` attribute for input[type=file] to
330
- allow file extensions in the value (per spec).
331
- - Added error for documents that have multiple `autofocus` attributes.
332
- - Made the `<rb>` and `<rtc>` elements non-errors.
333
- - Made use of `data-*` attributes for SVG & MathML elements non-errors.
334
- - Made use of HTML content in the SVG `<desc>`, `<title>`, and
335
- `<metadata>` elements a non-error (per spec).
336
- - Changed error message for the `inputmode` attribute to a warning.
337
- - Fixed a bug that caused spurious error to be emitted for ID references
338
- in `aria-controls` and `aria-labelledby` with trailing whitespace.
339
- - Fixed a bug that prevented the command-line checker from being able
340
- to check URLs when run in a Windows environment. (patch from @mariusj)
341
- - Added option to disable log4j when using Java API. (patch from @abrin)
342
-
343
- # 15.4.12
344
- 12 April 2015
345
- - Fixed regression that caused spurious errors for `input[type=email]`.
346
- - Fixed regression in war caused by missing jar needed for gzip handling.
347
-
348
- # 15.3.28
349
- 28 March 2015
350
- - Renamed from “Nu HTML Checker” to “Nu Html Checker”.
351
- - Improved error messages for `input[type]` attribute mismatches.
352
- - Added support for checking `object[typemustmatch]` per-spec.
353
- - Added error message for `title` element that only has whitespace.
354
- - Dropped all `meta[name]` checking. Any arbitrary `meta[name]` value
355
- is now accepted unchecked.
356
- - Made a couple select/option error messages more precise.
357
- - Added `useragent` parameter, for allowing you to specify any arbitrary
358
- user-agent string for the checker to use when fetching remote documents.
359
- - Added option to limit maximum number of errors shown. Exposed thru
360
- `nu.validator.messages.limit` Java system prop & `--messages-limit`
361
- option for the build script. Controls limit on maximum number of
362
- messages the checker service will report for a single document before
363
- stopping with a “Too many messages” fatal error.
364
- - Make the API/CLI (command-line interface) emit source extracts &
365
- “hilite” info. When you set the `--format` option to `json`, `xml`,
366
- `xhtml`, or `html` (but not `gnu` or `text`), the output now includes:
367
- - an extract from the doc source (`extract` field in JSON output)
368
- - which extract part to hilight (JSON `hiliteLength` & `hiliteStart`)
369
- - error range starting line/column (JSON `firstColumn` & `firstLine`)
370
- - Added full support for checking documents at SNI origins.
371
- - Fixed regression that caused CLI/API to parse .xhtml docs as text/html
372
- instead of using the XML parser.
373
- - Changed backend handling for the case when the “promiscuous-ssl” option
374
- is on (that is, when you’re requesting the doc-fetching backend ignore
375
- any SSL/TLS cert errors). This should be a transparent change.
376
- - Now available from (Maven) Central Repository (nu.validator.validator).
377
- - Made a number of look&feel refinements to the Web frontend.
378
- - Replaced all Jena IRI code dependencies with dependency on galimatias.
379
- - Updated doc-fetching backend to Apache HTTP Components HttpClient 4.4.
380
- - Upgraded to Jetty 9.2.9 & upgraded many other build/run dependencies to
381
- latest versions; e.g., log4j 1.2.17, Apache Commons Codec 1.10.
382
- - Dropped some dependencies that aren’t actually needed.
383
- - Changed build to cut dependency download size from ~300MB down to ~16MB.
384
- - Made change to force java to always use Saxon instead of Xalan.
385
- - Renamed all org.whattf classes to nu.validator.
386
- - Did large reorganization/consolidation of sources.
387
- - Added `--javaversion` option, to generate class files targeted for
388
- particular VM versions (compiles for Java6/1.6 by default).
389
-
390
- # 16 February 2015
391
- - added new "`sizes` attr required when `srcset` specifies width" check
392
- - added `--skip-non-html` option to CLI; http://goo.gl/sKjRD5
393
- This change alters the default CLI handling of non-HTML files.
394
- Before the CLI by default skipped any files without .html, .htm,
395
- .xhtml, or .xht extensions; instead now by default all files
396
- found are checked, regardless of extension. The `--skip-non-html`
397
- option provides the old default behavior: it make the checker skip
398
- any files without .html, .htm, .xhtml, or .xht extensions.
399
- - added `--javaversion` option to build script and changed default build
400
- behavior to now generate vnu.jar/vnu.war builds that can run in Java6
401
- VMs (as well as in any newer VMs). To generate a vnu.jar/vnu.war build
402
- with a newer/different VM target, use, e.g., `--javaversion=1.8`.
403
- - added `--stacksize` option to build script & removed harcoded stack size
404
- - fixed several bugs in `sizes` checking
405
- - fixed position reporting of bad character refs in `title` & `textarea`
406
- - fixed ARIA checking to allow `li[role=separator]` & `time[role=timer]`
407
- - refined content-type check to treat `.csl` uploads as application/xml
408
- - refined "unexpected content-type" error msg to include URL of document
409
- - refined a few things in TestRunner
410
- - updated Rhino dependency to rhino1_7R5
411
-
412
- # 07 February 2015
413
- - made SVG `<style>` not require the `type` attribute
414
- - added initial (liberal) support for ARIA in SVG
415
- - dropped error for `X-UA-Compatible: IE=Edge` HTTP header. Thx @zcorpan
416
- - dropped error for `meta[http-equiv=X-UA-Compatible][content=IE=Edge]`
417
- - added version info to jar manifest file
418
- - made nu.validator.client.TestRunner exit non-zero for test failures
419
- - made build script explicitly request Python2. Thx @kurosawa-takeshi
420
- - code cleanup to build script and some Java sources. Thx @cvrebert
421
-
422
- # 06 October 2014
423
- - brought reporting of bad IDs in `form` attr into compliance with spec
424
- (see https://github.com/validator/validator.github.io/issues/8
425
- and thanks again to https://github.com/cavweb20)
426
-
427
- # 01 September 2014
428
- - fixed bug that broke json & xml message output
429
- (see https://github.com/validator/validator.github.io/issues/5
430
- and thanks to https://github.com/cavweb20)
431
-
432
- # 25 August 2014
433
- - added support for the `<picture>` element
434
- - improved ARIA support for various table elements
435
- - made refinements to outline handling
436
- - added experimental warnings for some heading/outline issues
437
- - improved checking for `meta@name` and `link@rel` values
438
- - CLI now exits with `1` if any errors are found
439
- - CLI no longer says `XHTML element` in error messages
440
- - switched to galimatias for URL checking
441
- - updated to latest ICU4J
442
- - release now includes WAR file
443
-
444
- # 02 February 2014
445
- - initial `vnu.jar` release
package/README.md.GOOD DELETED
@@ -1,727 +0,0 @@
1
- # The Nu Html Checker (v.Nu) [![Chat room][1]][2] [![Download latest][3]][4]
2
-
3
- [1]: https://img.shields.io/badge/gitter-chat%20%E2%86%92-brightgreen.svg
4
- [2]: https://gitter.im/validator/validator
5
- [3]: https://img.shields.io/badge/download-latest%20%E2%86%92-blue.svg
6
- [4]: https://github.com/validator/validator/releases/latest
7
-
8
- The Nu Html Checker (v.Nu) helps you [catch unintended mistakes in your HTML,
9
- CSS, and SVG][5]. It enables you to [batch-check documents from the command
10
- line][6] and from other scripts/apps, and to [deploy your own instance of the
11
- checker as a service][7] (like [validator.w3.org/nu][8]). Its [source code is
12
- available][9], as are [instructions on how to build, test, and run the
13
- code][10].
14
-
15
- [5]: https://validator.w3.org/nu/about.html#why-validate
16
- [6]: https://validator.github.io/validator/#usage
17
- [7]: https://validator.github.io/validator/#standalone
18
- [8]: https://validator.w3.org/nu/
19
- [9]: https://github.com/validator/validator
20
- [10]: https://validator.github.io/validator/#build-instructions
21
-
22
- A [Dockerfile][11] (see the **Pulling from Docker Hub** section below) and
23
- [npm][12], [pip][13], and [brew][14] packages of it are also available.
24
-
25
- [11]: https://hub.docker.com/r/validator/validator/
26
- [12]: https://www.npmjs.com/package/vnu-jar
27
- [13]: https://github.com/svenkreiss/html5validator
28
- [14]: https://formulae.brew.sh/formula/vnu
29
-
30
- It is released upstream in these formats:
31
-
32
- * pre-compiled Linux, Windows, and macOS binaries that include an embedded
33
- Java runtime
34
-
35
- * `vnu.jar` — a portable version you can use on any system that has Java 8 or
36
- above installed
37
-
38
- * `vnu.war` — for [deploying the checker service through a servlet container
39
- such as Tomcat][15]
40
-
41
- [15]: https://validator.github.io/validator/#servlet
42
-
43
- **Note:** The _vnu.jar_ and _vnu.war_ files require you to have Java 8 or above
44
- installed. The pre-compiled Linux, Windows, and macOS binaries don’t require you
45
- to have any version of Java already installed at all.
46
-
47
- You can [get the latest release][16] or run [`docker run -it --rm -p 8888:8888
48
- validator/validator:latest`][17], [`npm install vnu-jar`][18],
49
- [`brew install vnu`][19], or [`pip install html5validator`][20] and see the
50
- **Usage** and **Web-based checking** sections below. Or automate your document
51
- checking with a frontend such as:
52
-
53
- [16]: https://github.com/validator/validator/releases/latest
54
- [17]: https://hub.docker.com/r/validator/validator/
55
- [18]: https://www.npmjs.com/package/vnu-jar
56
- [19]: https://libraries.io/homebrew/vnu
57
- [20]: https://github.com/svenkreiss/html5validator
58
-
59
- * [Grunt plugin for HTML validation][21] or [Gulp plugin for HTML
60
- validation][22] or [Maven plugin for HTML validation][23]
61
-
62
- * [html5validator `pip` package][24] (for HTML checking integration in Travis
63
- CI, CircleCI, CodeShip, Jekyll, Pelican, etc.)
64
-
65
- * [LMVTFY: Let Me Validate That For You][25] (auto-check HTML of
66
- JSFiddle/JSBin, etc., links in GitHub issue comments)
67
-
68
- [21]: https://github.com/validator/grunt-html
69
- [22]: https://github.com/validator/gulp-html
70
- [23]: https://github.com/validator/maven-plugin
71
- [24]: https://github.com/svenkreiss/html5validator
72
- [25]: https://github.com/cvrebert/lmvtfy/
73
-
74
- ## Usage
75
-
76
- Run the checker with one of the following invocations:
77
-
78
- • `vnu-runtime-image/bin/vnu OPTIONS FILES` (Linux or macOS)
79
-
80
- • `vnu-runtime-image\bin\vnu.bat OPTIONS FILES` (Windows)
81
-
82
- • `java -jar ~/vnu.jar OPTIONS FILES` (any system with Java8+ installed)
83
-
84
- …where _`FILES`_ are the documents to check, and _`OPTIONS`_ are zero or more of
85
- the following options:
86
-
87
- --errors-only --Werror --exit-zero-always --stdout --asciiquotes
88
- --user-agent USER_AGENT --no-langdetect --no-stream --filterfile FILENAME
89
- --filterpattern PATTERN --css --skip-non-css --also-check-css --svg
90
- --skip-non-svg --also-check-svg --html --skip-non-html
91
- --format gnu|xml|json|text --help --verbose --version
92
-
93
- The [Options][26] section below provides details on each option, and the rest of
94
- this section provides some specific examples.
95
-
96
- [26]: https://validator.github.io/validator/#options
97
-
98
- **Note:** Throughout these examples, replace `~/vnu.jar` with the actual path to
99
- that jar file on your system, and replace `vnu-runtime-image/bin/vnu` and
100
- `vnu-runtime-image\bin\vnu.bat` with the actual path to the `vnu` or `vnu.bat`
101
- program on your system — or if you add the `vnu-runtime-image/bin` or
102
- `vnu-runtime-image\bin` directory your system `PATH` environment variable, you
103
- can invoke the checker with just `vnu`.
104
-
105
- To check one or more documents from the command line:
106
-
107
- vnu-runtime-image/bin/vnu FILE.html FILE2.html FILE3.html...
108
-
109
- vnu-runtime-image\bin\vnu.bat FILE.html FILE2.html FILE3.html...
110
-
111
- java -jar ~/vnu.jar FILE.html FILE2.html FILE3.html...
112
-
113
- **Note:** If you get a `StackOverflowError` error when invoking the checker, try
114
- adjusting the thread stack size by providing the `-Xss` option to java:
115
-
116
- java -Xss512k -jar ~/vnu.jar ...
117
-
118
- vnu-runtime-image/bin/java -Xss512k \
119
- -m vnu/nu.validator.client.SimpleCommandLineValidator ...
120
-
121
- To check all documents in a particular directory `DIRECTORY_PATH` as HTML:
122
-
123
- java -jar ~/vnu.jar DIRECTORY_PATH
124
-
125
- vnu-runtime-image/bin/vnu DIRECTORY_PATH
126
-
127
- vnu-runtime-image\bin\vnu.bat DIRECTORY_PATH
128
-
129
- #### More examples
130
-
131
- **Note:** The examples in this section assume you have the
132
- `vnu-runtime-image/bin` or `vnu-runtime-image\bin` directory in your system
133
- `PATH` environment variable. If you’re using the jar file instead, replace `vnu`
134
- in the examples with `java -jar ~/vnu.jar`.
135
-
136
- To check all documents in a particular directory `DIRECTORY_PATH` as HTML, but
137
- skip any documents whose names don’t end with the extensions `.html`, `.htm`,
138
- `.xhtml`, or `.xht`:
139
-
140
- vnu --skip-non-html DIRECTORY_PATH
141
-
142
- To check all documents in a particular directory as CSS:
143
-
144
- vnu --css DIRECTORY_PATH
145
-
146
- To check all documents in a particular directory as CSS, but skip any documents
147
- whose names don’t end with the extension `.css`:
148
-
149
- vnu --skip-non-css DIRECTORY_PATH
150
-
151
- To check all documents in a particular directory, with documents whose names end
152
- in the extension `.css` being checked as CSS, and all other documents being
153
- checked as HTML:
154
-
155
- vnu --also-check-css DIRECTORY_PATH
156
-
157
- To check all documents in a particular directory as SVG:
158
-
159
- vnu --svg DIRECTORY_PATH
160
-
161
- To check all documents in a particular directory as SVG, but skip any documents
162
- whose names don’t end with the extension `.svg`:
163
-
164
- vnu --skip-non-svg DIRECTORY_PATH
165
-
166
- To check all documents in a particular directory, with documents whose names end
167
- in the extension `.svg` being checked as SVG, and all other documents being
168
- checked as HTML:
169
-
170
- vnu --also-check-svg DIRECTORY_PATH
171
-
172
- To check a Web document:
173
-
174
- vnu _URL_
175
-
176
- example: vnu http://example.com/foo
177
-
178
- To check standard input:
179
-
180
- vnu -
181
-
182
- example:
183
-
184
- echo '<!doctype html><title>...' | vnu -
185
-
186
- echo '<!doctype html><title>...' | java -jar ~/vnu.jar -
187
-
188
- ### Options
189
-
190
- When used from the command line as described in this section, the checker
191
- provides the following options:
192
-
193
- #### --asciiquotes
194
-
195
- Specifies whether ASCII quotation marks are substituted for Unicode smart
196
- quotation marks in messages.
197
-
198
- default: [unset; Unicode smart quotation marks are used in messages]
199
-
200
- #### --errors-only
201
-
202
- Specifies that only error-level messages and non-document-error messages are
203
- reported (so that warnings and info messages are not reported).
204
-
205
- default: [unset; all messages reported, including warnings & info messages]
206
-
207
- #### --Werror
208
-
209
- Makes the checker exit non-zero if any warnings are encountered (even if
210
- there are no errors).
211
-
212
- default: [unset; checker exits zero if only warnings are encountered]
213
-
214
- #### --exit-zero-always
215
-
216
- Makes the checker exit zero even if errors are reported for any documents.
217
-
218
- default: [unset; checker exits 1 if errors are reported for any documents]
219
-
220
- #### --stdout
221
-
222
- Makes the checker report errors and warnings to stdout rather than stderr.
223
-
224
- default: [unset; checker reports errors and warnings to stderr]
225
-
226
- #### --filterfile _FILENAME_
227
-
228
- Specifies a filename. Each line of the file contains either a regular
229
- expression or starts with "#" to indicate the line is a comment. Any error
230
- message or warning message that matches a regular expression in the file is
231
- filtered out (dropped/suppressed).
232
-
233
- default: [unset; checker does no message filtering]
234
-
235
- #### --filterpattern _REGEXP_
236
-
237
- Specifies a regular expression. Any error message or warning message that
238
- matches the regular expression is filtered out (dropped/suppressed).
239
-
240
- As with all other checker options, this option may only be specified once.
241
- So to filter multiple error messages or warning messages, you must provide a
242
- single regular expression that will match all the messages. The typical way
243
- to do that for regular expressions is to OR multiple patterns together using
244
- the "|" character.
245
-
246
- default: [unset; checker does no message filtering]
247
-
248
- #### --format _format_
249
-
250
- Specifies the output format for reporting the results.
251
-
252
- default: "gnu"
253
-
254
- possible values: "gnu", "xml", "json", "text" [see information at URL below]
255
-
256
- https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#out
257
-
258
- #### --help
259
-
260
- Shows detailed usage information.
261
-
262
- #### --skip-non-css
263
-
264
- Check documents as CSS but skip documents that don’t have *.css extensions.
265
-
266
- default: [unset; all documents found are checked]
267
-
268
- #### --css
269
-
270
- Force all documents to be checked as CSS, regardless of extension.
271
-
272
- default: [unset]
273
-
274
- #### --skip-non-svg
275
-
276
- Check documents as SVG but skip documents that don’t have *.svg extensions.
277
-
278
- default: [unset; all documents found are checked]
279
-
280
- #### --svg
281
-
282
- Force all documents to be checked as SVG, regardless of extension.
283
-
284
- default: [unset]
285
-
286
- #### --skip-non-html
287
-
288
- Skip documents that don’t have *.html, *.htm, *.xhtml, or *.xht extensions.
289
-
290
- default: [unset; all documents found are checked, regardless of extension]
291
-
292
- #### --html
293
-
294
- Forces any *.xhtml or *.xht documents to be parsed using the HTML parser.
295
-
296
- default: [unset; XML parser is used for *.xhtml and *.xht documents]
297
-
298
- #### --also-check-css
299
-
300
- Check CSS documents (in addition to checking HTML documents).
301
-
302
- default: [unset; no documents are checked as CSS]
303
-
304
- #### --also-check-svg
305
-
306
- Check SVG documents (in addition to checking HTML documents).
307
-
308
- default: [unset; no documents are checked as SVG]
309
-
310
- #### --user-agent _USER_AGENT_
311
-
312
- Specifies the value of the User-Agent request header to send when checking
313
- HTTPS/HTTP URLs.
314
-
315
- default: "Validator.nu/LV"
316
-
317
- #### --no-langdetect
318
-
319
- Disables language detection, so that documents are not checked for missing
320
- or mislabeled html[lang] attributes.
321
-
322
- default: [unset; language detection & html[lang] checking are performed]
323
-
324
- #### --no-stream
325
-
326
- Forces all documents to be be parsed in buffered mode instead of streaming
327
- mode (causes some parse errors to be treated as non-fatal document errors
328
- instead of as fatal document errors).
329
-
330
- default: [unset; non-streamable parse errors cause fatal document errors]
331
-
332
- #### --verbose
333
-
334
- Specifies "verbose" output. (Currently this just means that the names of
335
- files being checked are written to stdout.)
336
-
337
- default: [unset; output is not verbose]
338
-
339
- #### --version
340
-
341
- Shows the checker version number.
342
-
343
- ## Web-based checking
344
-
345
- The Nu Html Checker — along with being usable as [a standalone command-line
346
- client][27] — can be run as an HTTP service, similar to
347
- [validator.w3.org/nu][28], for browser-based checking of HTML documents, CSS
348
- stylesheets, and SVG images over the Web. To that end, the checker is released
349
- as several separate packages:
350
-
351
- [27]: https://validator.github.io/validator/#usage
352
- [28]: https://validator.w3.org/nu/
353
-
354
- * Linux, Windows, and macOS binaries for deploying the checker as a simple
355
- self-contained service on any system
356
-
357
- * `vnu.jar` for deploying the checker as a simple self-contained service on a
358
- system with Java installed
359
-
360
- * `vnu.war` for deploying the checker to a servlet container such as Tomcat
361
-
362
- All deployments expose a REST API that enables checking of HTML documents, CSS
363
- stylesheets, and SVG images from other clients, not just web browsers. And the
364
- Linux, Windows, and macOS binaries and `vnu.jar` package also include a simple
365
- HTTP client that enables you to either send documents to a locally-running
366
- instance of the checker HTTP service — for fast command-line checking — or to
367
- any remote instance of the checker HTTP service running anywhere on the Web.
368
-
369
- The [latest releases of the Linux, Windows, and macOS binaries and vnu.jar and
370
- vnu.war packages][29] are available from the `validator` project at github. The
371
- following are detailed instructions on using them.
372
-
373
- [29]: https://github.com/validator/validator/releases/latest
374
-
375
- **Note:** Throughout these instructions, replace `~/vnu.jar` with the actual
376
- path to that jar file on your system, and replace `vnu-runtime-image/bin/java`
377
- and `vnu-runtime-image\bin\java.exe` with the actual path to the checker `java`
378
- or `java.exe` program on your system — or if you add the `vnu-runtime-image/bin`
379
- or `vnu-runtime-image\bin` directory your system `PATH` environment variable,
380
- you can invoke the checker with just `java nu.validator.servlet.Main 8888`.
381
-
382
- ### Standalone web server
383
-
384
- To run the checker as a standalone service (using a built-in Jetty server), open
385
- a new terminal window and invoke the checker like this:
386
-
387
- java -cp ~/vnu.jar nu.validator.servlet.Main 8888
388
-
389
- vnu-runtime-image/bin/java nu.validator.servlet.Main 8888
390
-
391
- vnu-runtime-image\bin\java.exe nu.validator.servlet.Main 8888
392
-
393
- Then open [http://0.0.0.0:8888][30] in a browser. (To listen on a different
394
- port, replace `8888` with the port number.)
395
-
396
- [30]: http://0.0.0.0:8888
397
-
398
- **Warning:** Future checker releases will bind by default to the address
399
- `127.0.0.1`. Your checker deployment might become unreachable unless you use the
400
- `nu.validator.servlet.bind-address` system property to bind the checker to a
401
- different address:
402
-
403
- java -cp ~/vnu.jar \
404
- -Dnu.validator.servlet.bind-address=128.30.52.73 \
405
- nu.validator.servlet.Main 8888
406
-
407
- vnu-runtime-image/bin/java \
408
- -Dnu.validator.servlet.bind-address=128.30.52.73 \
409
- nu.validator.servlet.Main 8888
410
-
411
- vnu-runtime-image\bin\java.exe \
412
- -Dnu.validator.servlet.bind-address=128.30.52.73 \
413
- nu.validator.servlet.Main 8888
414
-
415
- When you open [http://0.0.0.0:8888][31] (or whatever URL corresponds to the
416
- `nu.validator.servlet.bind-address` value you’re using), you’ll see a form
417
- similar to [validator.w3.org/nu][32] that allows you to enter the URL of an HTML
418
- document, CSS stylesheet, or SVG image, and have the results of checking that
419
- resource displayed in the browser.
420
-
421
- [31]: http://0.0.0.0:8888
422
- [32]: https://validator.w3.org/nu/
423
-
424
- **Note:** If you get a `StackOverflowError` error when using the checker, try
425
- adjusting the thread stack size by providing the `-Xss` option to java:
426
-
427
- java -Xss512k -cp ~/vnu.jar nu.validator.servlet.Main 8888
428
-
429
- vnu-runtime-image/bin/java -Xss512k -m vnu/nu.validator.servlet.Main 8888
430
-
431
- ### Deployment to servlet container
432
-
433
- To run the checker inside of an existing servlet container such as Apache Tomcat
434
- you will need to deploy the `vnu.war` file to that server following its
435
- documentation. For example, on Apache Tomcat you could do this using the
436
- [Manager][33] application or simply by copying the file to the `webapps`
437
- directory (since that is the default `appBase` setting). Typically you would see
438
- a message similar to the following in the `catalina.out` log file.
439
-
440
- [33]: https://tomcat.apache.org/tomcat-8.0-doc/manager-howto.html
441
-
442
- May 7, 2014 4:42:04 PM org.apache.catalina.startup.HostConfig deployWAR
443
- INFO: Deploying web application archive /var/lib/tomcat7/webapps/vnu.war
444
-
445
- Assuming your servlet container is configured to receive HTTP requests sent to
446
- `localhost` on port `80` and the context root of this application is `vnu`
447
- (often the default behavior is to use the WAR file's filename as the context
448
- root unless one is explicitly specified) you should be able to access the
449
- application by connecting to [http://localhost/vnu/][34].
450
-
451
- [34]: http://localhost/vnu/
452
-
453
- **Note:** You may want to customize the `/WEB-INF/web.xml` file inside the WAR
454
- file (you can use any ZIP-handling program) to modify the servlet filter
455
- configuration. For example, if you wanted to disable the inbound-size-limit
456
- filter, you could comment out that filter like this:
457
-
458
- <!--
459
- <filter>
460
- <filter-name>inbound-size-limit-filter</filter-name>
461
- <filter-class>nu.validator.servlet.InboundSizeLimitFilter</filter-class>
462
- </filter>
463
- <filter-mapping>
464
- <filter-name>inbound-size-limit-filter</filter-name>
465
- <url-pattern>/*</url-pattern>
466
- </filter-mapping>
467
- -->
468
-
469
- ### HTTP client (for fast command-line checking)
470
-
471
- The checker is packaged with an HTTP client you can use from the command line to
472
- either send documents to a locally-running instance of the checker HTTP service
473
- — for fast command-line checking — or to a remote instance anywhere on the Web.
474
-
475
- To check documents locally using the packaged HTTP client, do this:
476
-
477
- 1. Start up the checker as a local HTTP service, as described in the
478
- **Standalone web server** section.
479
-
480
- 2. Open a new terminal window and invoke the HTTP client like this:
481
-
482
- java -cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
483
-
484
- vnu-runtime-image/bin/java nu.validator.client.HttpClient FILE.html...
485
-
486
- To send documents to an instance of the checker on the Web, such as
487
- [html5.validator.nu/][35], use the nu.validator.client.host and
488
- nu.validator.client.port options, like this:
489
-
490
- [35]: https://html5.validator.nu/
491
-
492
- java -cp ~/vnu.jar -Dnu.validator.client.port=80 \
493
- -Dnu.validator.client.host=html5.validator.nu \
494
- nu.validator.client.HttpClient FILE.html...
495
-
496
- …or like this:
497
-
498
- vnu-runtime-image/bin/java -Dnu.validator.client.port=80 \
499
- -Dnu.validator.client.host=html5.validator.nu \
500
- nu.validator.client.HttpClient FILE.html...
501
-
502
- Other options are documented below.
503
-
504
- ### HTTP client options
505
-
506
- When using the packaged HTTP client for sending documents to an instance of the
507
- checker HTTP service for checking, you can set Java system properties to control
508
- configuration options for the checker behavior.
509
-
510
- For example, you can suppress warning-level messages and only show error-level
511
- ones by setting the value of the `nu.validator.client.level` system property to
512
- `error`, like this:
513
-
514
- java -Dnu.validator.client.level=error \
515
- -cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
516
-
517
- …or like this:
518
-
519
- vnu-runtime-image/bin/java -Dnu.validator.client.level=error \
520
- -cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
521
-
522
- Most of the properties listed below map to the common input parameters for the
523
- checker service, as documented at
524
- [github.com/validator/validator/wiki/Service-»-Common-params][36].
525
-
526
- [36]: https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params
527
-
528
- #### nu.validator.client.host
529
-
530
- Specifies the hostname of the checker for the client to connect to.
531
-
532
- default: "127.0.0.1"
533
-
534
- #### nu.validator.client.port
535
-
536
- Specifies the hostname of the checker for the client to connect to.
537
-
538
- default: "8888"
539
-
540
- example: java -Dnu.validator.client.port=8080 -jar ~/vnu.jar FILE.html
541
-
542
- #### nu.validator.client.level
543
-
544
- Specifies the severity level of messages to report; to suppress
545
- warning-level messages, and only show error-level ones, set this property to
546
- "error".
547
-
548
- default: [unset]
549
-
550
- possible values: "error"
551
-
552
- example: java -Dnu.validator.client.level=error -jar ~/vnu.jar FILE.html
553
-
554
- #### nu.validator.client.parser
555
-
556
- Specifies which parser to use.
557
-
558
- default: "html"; or, for *.xhtml input files, "xml"
559
-
560
- possible values: [see information at URL below]
561
-
562
- https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#parser
563
-
564
- #### nu.validator.client.charset
565
-
566
- Specifies the encoding of the input document.
567
-
568
- default: [unset]
569
-
570
- #### nu.validator.client.content-type
571
-
572
- Specifies the content-type of the input document.
573
-
574
- default: "text/html"; or, for *.xhtml files, "application/xhtml+xml"
575
-
576
- #### nu.validator.client.out
577
-
578
- Specifies the output format for messages.
579
-
580
- default: "gnu"
581
-
582
- possible values: [see information at URL below]
583
-
584
- https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#out
585
-
586
- #### nu.validator.client.asciiquotes
587
-
588
- Specifies whether ASCII quotation marks are substituted for Unicode smart
589
- quotation marks in messages.
590
-
591
- default: "yes"
592
-
593
- possible values: "yes" or "no"
594
-
595
- ### HTTP servlet options
596
-
597
- #### nu.validator.servlet.bind-address
598
-
599
- Binds the validator service to the specified IP address.
600
-
601
- default: 0.0.0.0 [causes the checker to listen on all interfaces]
602
-
603
- possible values: The IP address of any network interface
604
-
605
- example: -Dnu.validator.servlet.bind-address=127.0.0.1
606
-
607
- #### nu.validator.servlet.connection-timeout
608
-
609
- Specifies the connection timeout.
610
-
611
- default: 5000
612
-
613
- possible values: number of milliseconds
614
-
615
- example: -Dnu.validator.servlet.connection-timeout=5000
616
-
617
- #### nu.validator.servlet.socket-timeout
618
-
619
- Specifies the socket timeout.
620
-
621
- default: 5000
622
-
623
- possible values: number of milliseconds
624
-
625
- example: -Dnu.validator.servlet.socket-timeout=5000
626
-
627
- ## Pulling from Docker Hub
628
-
629
- You can pull the checker from the
630
- [https://hub.docker.com/r/validator/validator/][37] repo at Docker Hub.
631
-
632
- [37]: https://hub.docker.com/r/validator/validator/
633
-
634
- To pull and run the latest version of the checker:
635
-
636
- docker run -it --rm -p 8888:8888 validator/validator:latest
637
-
638
- To pull and run a specific Docker-Hub tag/version of the checker — for example,
639
- the `17.11.1` version:
640
-
641
- docker run -it --rm -p 8888:8888 validator/validator:17.11.1
642
-
643
- To bind the checker to a specific address (rather than have it listening on all
644
- interfaces):
645
-
646
- docker run -it --rm -p 128.30.52.73:8888:8888 validator/validator:latest
647
-
648
- To make the checker run with a connection timeout and socket timeout different
649
- than the default 5 seconds, use the `CONNECTION_TIMEOUT_SECONDS` and
650
- `SOCKET_TIMEOUT_SECONDS` environment variables:
651
-
652
- docker run -it --rm \
653
- -e CONNECTION_TIMEOUT_SECONDS=15 \
654
- -e SOCKET_TIMEOUT_SECONDS=15 \
655
- -p 8888:8888 \
656
- validator/validator
657
-
658
- To make the checker run with particular Java system properties set, use the
659
- `JAVA_TOOL_OPTIONS` environment variable:
660
-
661
- docker run -it --rm \
662
- -e JAVA_TOOL_OPTIONS=-Dnu.validator.client.asciiquotes=yes \
663
- -p 8888:8888 \
664
- validator/validator
665
-
666
- To define a service named `vnu` for use with `docker compose`, create a Compose
667
- file named `docker-compose.yml` (for example), with contents such as the
668
- following:
669
-
670
- version: '2' services:
671
- vnu:
672
- image: validator/validator ports:
673
- - "8888:8888"
674
- network_mode: "host" #so "localhost" refers to the host machine.
675
-
676
- ## Build instructions
677
-
678
- Follow the steps below to build, test, and run the checker such that you can
679
- open `http://0.0.0.0:8888/` in a Web browser to use the checker Web UI.
680
-
681
- 1. Make sure you have git, python, and JDK 8 or above installed.
682
-
683
- 2. Set the `JAVA_HOME` environment variable:
684
-
685
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 <-- Ubuntu, etc.
686
-
687
- export JAVA_HOME=$(/usr/libexec/java_home) <-- MacOS
688
-
689
- 3. Create a working directory:
690
-
691
- git clone https://github.com/validator/validator.git
692
-
693
- 4. Change into your working directory:
694
-
695
- cd validator
696
-
697
- 5. Start the checker Python script:
698
-
699
- python ./checker.py all
700
-
701
- The first time you run the checker Python script, you’ll need to be online and
702
- the build will need time to download several megabytes of dependencies.
703
-
704
- The steps above will build, test, and run the checker such that you can open
705
- `http://0.0.0.0:8888/` in a Web browser to use the checker Web UI.
706
-
707
- **Warning:** Future checker releases will bind by default to the address
708
- `127.0.0.1`. Your checker deployment might become unreachable unless you use the
709
- `--bind-address` option to bind the checker to a different address:
710
-
711
- python ./checker.py --bind-address=128.30.52.73 all
712
-
713
- Use `python ./checker.py --help` to see command-line options for controlling the
714
- behavior of the script, as well as build-target names you can call separately;
715
- e.g.:
716
-
717
- * python ./checker.py build # to build only
718
-
719
- * python ./checker.py build # test to build and test
720
-
721
- * python ./checker.py run # to run only
722
-
723
- * python ./checker.py jar # to compile vnu.jar
724
-
725
- * python ./checker.py update-shallow && \
726
-   python ./checker.py dldeps && \
727
-   python ./checker.py jar  # compile vnu.jar faster