Nu Html Checker (v.Nu) ช่วยให้คุณตรวจจับข้อผิดพลาดที่ไม่ได้ตั้งใจใน HTML, CSS และ SVG ของคุณ ช่วยให้คุณสามารถตรวจสอบเอกสารเป็นชุดจากบรรทัดคำสั่งและจากสคริปต์/แอปอื่นๆ และปรับใช้อินสแตนซ์ตัวตรวจสอบของคุณเองเป็นบริการได้ (เช่น validator.w3.org/nu) มีซอร์สโค้ดให้ใช้งาน เช่นเดียวกับคำแนะนำในการสร้าง ทดสอบ และรันโค้ด
Dockerfile (ดู การดึงอิมเมจ Docker ด้านล่าง) และแพ็คเกจ npm, pip และ brew ก็มีให้บริการเช่นกัน
มีการเผยแพร่ต้นน้ำในรูปแบบเหล่านี้:
ไบนารี Linux, Windows และ macOS ที่คอมไพล์ไว้ล่วงหน้าซึ่งรวมถึงรันไทม์ Java แบบฝัง
vnu.jar
— เวอร์ชันพกพาที่คุณสามารถใช้บนระบบใดก็ได้ที่ติดตั้ง Java 11 ขึ้นไป
vnu.war
— สำหรับการปรับใช้บริการตรวจสอบผ่านคอนเทนเนอร์เซิร์ฟเล็ตเช่น Tomcat
หมายเหตุ: ไฟล์ vnu.jar และ vnu.war ต้องการให้คุณติดตั้ง Java 11 ขึ้นไป ไบนารี Linux, Windows และ macOS ที่คอมไพล์ไว้ล่วงหน้าไม่จำเป็นต้องให้คุณติดตั้ง Java เวอร์ชันใดๆ เลย
คุณสามารถรับรุ่นล่าสุดหรือเรียกใช้ docker run -it --rm -p 8888:8888 ghcr.io/validator/validator:latest
, npm install vnu-jar
, npm install --registry=https://npm.pkg.github.com @validator/vnu-jar
, brew install vnu
หรือ pip install html5validator
และดูส่วน การใช้งาน และ การตรวจสอบบนเว็บ ด้านล่าง หรือทำให้การตรวจสอบเอกสารของคุณเป็นแบบอัตโนมัติด้วยส่วนหน้าเช่น:
ปลั๊กอิน Grunt สำหรับการตรวจสอบ HTML หรือปลั๊กอิน Gulp สำหรับการตรวจสอบ HTML หรือปลั๊กอิน Maven สำหรับการตรวจสอบ HTML
แพ็คเกจ pip
html5validator (สำหรับการรวมใน Travis CI, CircleCI, CodeShip, Jekyll, Pelican ฯลฯ )
LMVTFY: ให้ฉันตรวจสอบสิ่งนั้นสำหรับคุณ (ตรวจสอบอัตโนมัติ JSFiddle/JSBin ฯลฯ ลิงก์ในความคิดเห็นเกี่ยวกับปัญหา GitHub)
รันตัวตรวจสอบโดยใช้หนึ่งในคำขอต่อไปนี้:
• vnu-runtime-image/bin/vnu OPTIONS FILES
(Linux หรือ macOS)
• vnu-runtime-imagebinvnu.bat OPTIONS FILES
(Windows)
• java -jar ~/vnu.jar OPTIONS FILES
(ระบบใดๆ ที่ติดตั้ง Java8+)
…โดยที่ FILES
คือเอกสารที่ต้องตรวจสอบ และ OPTIONS
มีค่าเป็นศูนย์หรือมากกว่าตัวเลือกต่อไปนี้:
--errors-only --Werror --exit-zero-always --stdout --asciiquotes
--user-agent USER_AGENT --no-langdetect --no-stream --filterfile FILENAME
--filterpattern PATTERN --css --skip-non-css --also-check-css --svg
--skip-non-svg --also-check-svg --xml --html --skip-non-html
--format gnu|xml|json|text --help --verbose --version
ส่วนตัวเลือกด้านล่างจะให้รายละเอียดเกี่ยวกับแต่ละตัวเลือก และส่วนที่เหลือของส่วนนี้จะแสดงตัวอย่างเฉพาะบางส่วน
หมายเหตุ: ตลอดตัวอย่างเหล่านี้ ให้แทนที่ ~/vnu.jar
ด้วยพาธจริงไปยังไฟล์ jar นั้นบนระบบของคุณ และแทนที่ vnu-runtime-image/bin/vnu
และ vnu-runtime-imagebinvnu.bat
ด้วยพาธจริง เส้นทางไปยังโปรแกรม vnu
หรือ vnu.bat
บนระบบของคุณ - หรือหากคุณเพิ่มไดเร็กทอรี vnu-runtime-image/bin
หรือ vnu-runtime-imagebin
ตัวแปรสภาพแวดล้อม PATH
ของระบบของคุณ คุณสามารถเรียกใช้ตัวตรวจสอบได้ด้วย vnu
-
หากต้องการตรวจสอบเอกสารตั้งแต่หนึ่งรายการขึ้นไปจากบรรทัดคำสั่ง:
vnu-runtime-image/bin/vnu FILE.html FILE2.html FILE3.html...
vnu-runtime-imagebinvnu.bat FILE.html FILE2.html FILE3.html...
java -jar ~/vnu.jar FILE.html FILE2.html FILE3.html...
หมายเหตุ: หากคุณได้รับข้อผิดพลาด StackOverflowError
เมื่อเรียกใช้ตัวตรวจสอบ ให้ลองปรับขนาดสแต็กเธรดโดยระบุตัวเลือก -Xss
ให้กับ java:
java -Xss512k -jar ~/vnu.jar ...
vnu-runtime-image/bin/java -Xss512k
-m vnu/nu.validator.client.SimpleCommandLineValidator ...
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเรกทอรีเฉพาะ DIRECTORY_PATH
เป็น HTML:
java -jar ~/vnu.jar DIRECTORY_PATH
vnu-runtime-image/bin/vnu DIRECTORY_PATH
vnu-runtime-imagebinvnu.bat DIRECTORY_PATH
หมายเหตุ: ตัวอย่างในส่วนนี้ถือว่าคุณมีไดเร็กทอรี vnu-runtime-image/bin
หรือ vnu-runtime-imagebin
ในตัวแปรสภาพแวดล้อม PATH
ของระบบของคุณ หากคุณใช้ไฟล์ jar แทน ให้แทนที่ vnu
ในตัวอย่างด้วย java -jar ~/vnu.jar
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเรกทอรีเฉพาะ DIRECTORY_PATH
เป็น HTML แต่ให้ข้ามเอกสารที่มีชื่อไม่ได้ลงท้ายด้วยนามสกุล .html
, .htm
, .xhtml
หรือ .xht
:
vnu --skip-non-html DIRECTORY_PATH
วิธีตรวจสอบเอกสารทั้งหมดในไดเร็กทอรีเฉพาะเป็น CSS:
vnu --css DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเร็กทอรีใดไดเร็กทอรีเป็น CSS แต่ให้ข้ามเอกสารที่มีชื่อไม่ได้ลงท้ายด้วยนามสกุล .css
:
vnu --skip-non-css DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเรกทอรีใดไดเรกทอรีหนึ่ง โดยเอกสารที่ชื่อลงท้ายด้วยนามสกุล .css
จะถูกตรวจสอบเป็น CSS และเอกสารอื่นๆ ทั้งหมดจะถูกตรวจสอบเป็น HTML:
vnu --also-check-css DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเร็กทอรีเฉพาะเป็น SVG:
vnu --svg DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเรกทอรีใดไดเรกทอรีหนึ่งเป็น SVG แต่ให้ข้ามเอกสารใดๆ ที่ชื่อไม่ได้ลงท้ายด้วยนามสกุล .svg
:
vnu --skip-non-svg DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารทั้งหมดในไดเร็กทอรีเฉพาะ โดยเอกสารที่ชื่อลงท้ายด้วยนามสกุล .svg
จะถูกตรวจสอบเป็น SVG และเอกสารอื่นๆ ทั้งหมดจะถูกตรวจสอบเป็น HTML:
vnu --also-check-svg DIRECTORY_PATH
หากต้องการตรวจสอบเอกสารเว็บ:
vnu _URL_
example: vnu http://example.com/foo
วิธีตรวจสอบอินพุตมาตรฐาน:
vnu -
example:
echo '<!doctype html><title>...' | vnu -
echo '<!doctype html><title>...' | java -jar ~/vnu.jar -
เมื่อใช้จากบรรทัดคำสั่งตามที่อธิบายไว้ในส่วนนี้ ตัวตรวจสอบจะมีตัวเลือกต่อไปนี้:
Specifies whether ASCII quotation marks are substituted for Unicode smart
quotation marks in messages.
default: [unset; Unicode smart quotation marks are used in messages]
Specifies that only error-level messages and non-document-error messages are
reported (so that warnings and info messages are not reported).
default: [unset; all messages reported, including warnings & info messages]
Makes the checker exit non-zero if any warnings are encountered (even if
there are no errors).
default: [unset; checker exits zero if only warnings are encountered]
Makes the checker exit zero even if errors are reported for any documents.
default: [unset; checker exits 1 if errors are reported for any documents]
Makes the checker report errors and warnings to stdout rather than stderr.
default: [unset; checker reports errors and warnings to stderr]
Specifies a filename. Each line of the file contains either a regular
expression or starts with "#" to indicate the line is a comment. Any error
message or warning message that matches a regular expression in the file is
filtered out (dropped/suppressed).
default: [unset; checker does no message filtering]
Specifies a regular expression. Any error message or warning message that
matches the regular expression is filtered out (dropped/suppressed).
As with all other checker options, this option may only be specified once.
So to filter multiple error messages or warning messages, you must provide a
single regular expression that will match all the messages. The typical way
to do that for regular expressions is to OR multiple patterns together using
the "|" character.
default: [unset; checker does no message filtering]
Specifies the output format for reporting the results.
default: "gnu"
possible values: "gnu", "xml", "json", "text" [see information at URL below]
https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#out
Shows detailed usage information.
Check documents as CSS but skip documents that don’t have *.css extensions.
default: [unset; all documents found are checked]
Force all documents to be checked as CSS, regardless of extension.
default: [unset]
Check documents as SVG but skip documents that don’t have *.svg extensions.
default: [unset; all documents found are checked]
Force all documents to be checked as SVG, regardless of extension.
default: [unset]
Skip documents that don’t have *.html, *.htm, *.xhtml, or *.xht extensions.
default: [unset; all documents found are checked, regardless of extension]
Forces any *.xhtml or *.xht documents to be parsed using the HTML parser.
default: [unset; XML parser is used for *.xhtml and *.xht documents]
Forces any *.html documents to be parsed using the XML parser.
default: [unset; HTML parser is used for *.html documents]
Check CSS documents (in addition to checking HTML documents).
default: [unset; no documents are checked as CSS]
Check SVG documents (in addition to checking HTML documents).
default: [unset; no documents are checked as SVG]
Specifies the value of the User-Agent request header to send when checking
HTTPS/HTTP URLs.
default: "Validator.nu/LV"
Disables language detection, so that documents are not checked for missing
or mislabeled html[lang] attributes.
default: [unset; language detection & html[lang] checking are performed]
Forces all documents to be be parsed in buffered mode instead of streaming
mode (causes some parse errors to be treated as non-fatal document errors
instead of as fatal document errors).
default: [unset; non-streamable parse errors cause fatal document errors]
Specifies "verbose" output. (Currently this just means that the names of
files being checked are written to stdout.)
default: [unset; output is not verbose]
Shows the checker version number.
Nu Html Checker — พร้อมด้วยการใช้งานเป็นไคลเอนต์บรรทัดคำสั่งแบบสแตนด์อโลน — สามารถทำงานเป็นบริการ HTTP ได้ เช่นเดียวกับ validator.w3.org/nu สำหรับการตรวจสอบเอกสาร HTML, สไตล์ชีต CSS และรูปภาพ SVG บนเบราว์เซอร์ ผ่านทางเว็บ ด้วยเหตุนี้ ตัวตรวจสอบจึงถูกปล่อยออกมาเป็นแพ็คเกจแยกหลายชุด:
ไบนารี Linux, Windows และ macOS สำหรับการปรับใช้ตัวตรวจสอบเป็นบริการที่เรียบง่ายในตัวเองบนทุกระบบ
vnu.jar
สำหรับการปรับใช้ตัวตรวจสอบเป็นบริการแบบครบวงจรอย่างง่ายบนระบบที่ติดตั้ง Java
vnu.war
สำหรับการปรับใช้ตัวตรวจสอบกับคอนเทนเนอร์เซิร์ฟเล็ตเช่น Tomcat
การปรับใช้ทั้งหมดเปิดเผย REST API ที่เปิดใช้งานการตรวจสอบเอกสาร HTML, สไตล์ชีต CSS และรูปภาพ SVG จากไคลเอนต์อื่น ไม่ใช่แค่เว็บเบราว์เซอร์ และไบนารี Linux, Windows และ macOS และแพ็คเกจ vnu.jar
ยังมีไคลเอนต์ HTTP แบบธรรมดาที่ช่วยให้คุณสามารถส่งเอกสารไปยังอินสแตนซ์ที่รันในเครื่องของบริการ HTTP ของตัวตรวจสอบ — สำหรับการตรวจสอบบรรทัดคำสั่งที่รวดเร็ว — หรือไปยังระยะไกลใดๆ อินสแตนซ์ของบริการตรวจสอบ HTTP ที่ทำงานได้ทุกที่บนเว็บ
ไบนารี Linux, Windows และ macOS และแพ็คเกจ vnu.jar และ vnu.war รุ่นล่าสุดมีให้ใช้งานจากโปรเจ็กต์ validator
ที่ github ต่อไปนี้เป็นคำแนะนำโดยละเอียดเกี่ยวกับการใช้งาน
หมายเหตุ: ตลอดคำแนะนำเหล่านี้ ให้แทนที่ ~/vnu.jar
ด้วยพาธจริงไปยังไฟล์ jar นั้นบนระบบของคุณ และแทนที่ vnu-runtime-image/bin/java
และ vnu-runtime-imagebinjava.exe
ด้วยพาธจริง เส้นทางไปยังโปรแกรมตรวจสอบ java
หรือ java.exe
บนระบบของคุณ - หรือหากคุณเพิ่มไดเร็กทอรี vnu-runtime-image/bin
หรือ vnu-runtime-imagebin
ตัวแปรสภาพแวดล้อม PATH
ของระบบของคุณ คุณสามารถเรียกใช้ตัวตรวจสอบได้เพียง java nu.validator.servlet.Main 8888
หากต้องการเรียกใช้ตัวตรวจสอบเป็นบริการแบบสแตนด์อโลน (โดยใช้เซิร์ฟเวอร์ Jetty ในตัว) ให้เปิดหน้าต่างเทอร์มินัลใหม่และเรียกใช้ตัวตรวจสอบดังนี้:
java -cp ~/vnu.jar nu.validator.servlet.Main 8888
vnu-runtime-image/bin/java nu.validator.servlet.Main 8888
vnu-runtime-imagebinjava.exe nu.validator.servlet.Main 8888
จากนั้นเปิด http://0.0.0.0:8888 ในเบราว์เซอร์ (หากต้องการฟังบนพอร์ตอื่น ให้แทนที่ 8888
ด้วยหมายเลขพอร์ต)
คำเตือน: ตัวตรวจสอบในอนาคตจะผูกเข้ากับที่อยู่โดยค่าเริ่มต้น 127.0.0.1
การปรับใช้ตัวตรวจสอบของคุณอาจไม่สามารถเข้าถึงได้เว้นแต่คุณจะใช้คุณสมบัติระบบ nu.validator.servlet.bind-address
เพื่อผูกตัวตรวจสอบกับที่อยู่อื่น:
java -cp ~/vnu.jar
-Dnu.validator.servlet.bind-address=128.30.52.73
nu.validator.servlet.Main 8888
vnu-runtime-image/bin/java
-Dnu.validator.servlet.bind-address=128.30.52.73
nu.validator.servlet.Main 8888
vnu-runtime-imagebinjava.exe
-Dnu.validator.servlet.bind-address=128.30.52.73
nu.validator.servlet.Main 8888
เมื่อคุณเปิด http://0.0.0.0:8888 (หรือ URL ใดก็ตามที่สอดคล้องกับค่า nu.validator.servlet.bind-address
ที่คุณใช้) คุณจะเห็นแบบฟอร์มที่คล้ายกับ validator.w3.org/nu ที่ให้คุณป้อน URL ของเอกสาร HTML, สไตล์ชีต CSS หรือรูปภาพ SVG และให้ผลลัพธ์ของการตรวจสอบทรัพยากรนั้นแสดงในเบราว์เซอร์
หมายเหตุ: หากคุณได้รับข้อผิดพลาด StackOverflowError
เมื่อใช้ตัวตรวจสอบ ให้ลองปรับขนาดสแต็กเธรดโดยระบุตัวเลือก -Xss
ให้กับ java:
java -Xss512k -cp ~/vnu.jar nu.validator.servlet.Main 8888
vnu-runtime-image/bin/java -Xss512k -m vnu/nu.validator.servlet.Main 8888
หากต้องการรันตัวตรวจสอบภายในคอนเทนเนอร์เซิร์ฟเล็ตที่มีอยู่ เช่น Apache Tomcat คุณจะต้องปรับใช้ไฟล์ vnu.war
กับเซิร์ฟเวอร์นั้นตามเอกสารประกอบ ตัวอย่างเช่น บน Apache Tomcat คุณสามารถทำได้โดยใช้แอปพลิเคชัน Manager หรือเพียงแค่คัดลอกไฟล์ไปยังไดเร็กทอรี webapps
(เนื่องจากนั่นคือการตั้งค่าเริ่มต้น appBase
) โดยทั่วไปคุณจะเห็นข้อความที่คล้ายกับข้อความต่อไปนี้ในไฟล์บันทึก catalina.out
May 7, 2014 4:42:04 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat7/webapps/vnu.war
สมมติว่าคอนเทนเนอร์เซิร์ฟเล็ตของคุณได้รับการกำหนดค่าให้รับคำขอ HTTP ที่ส่งไปยัง localhost
บนพอร์ต 80
และรูทบริบทของแอปพลิเคชันนี้คือ vnu
(บ่อยครั้งพฤติกรรมเริ่มต้นคือการใช้ชื่อไฟล์ของไฟล์ WAR เป็นรูทบริบท เว้นแต่จะมีการระบุไว้อย่างชัดเจน) คุณควรเป็น สามารถเข้าใช้งานแอพพลิเคชั่นได้โดยเชื่อมต่อกับ http://localhost/vnu/
หมายเหตุ: คุณอาจต้องการปรับแต่งไฟล์ /WEB-INF/web.xml
ภายในไฟล์ WAR (คุณสามารถใช้โปรแกรมจัดการ ZIP ใดก็ได้) เพื่อแก้ไขคอนฟิกูเรชันตัวกรองเซิร์ฟเล็ต ตัวอย่างเช่น หากคุณต้องการปิดใช้งานตัวกรองขีดจำกัดขนาดขาเข้า คุณสามารถใส่เครื่องหมายความคิดเห็นตัวกรองนั้นได้ดังนี้:
<!--
<filter>
<filter-name>inbound-size-limit-filter</filter-name>
<filter-class>nu.validator.servlet.InboundSizeLimitFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>inbound-size-limit-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
ตัวตรวจสอบถูกรวมเป็นแพ็คเกจด้วยไคลเอนต์ HTTP ที่คุณสามารถใช้จากบรรทัดคำสั่งเพื่อส่งเอกสารไปยังอินสแตนซ์ที่รันในเครื่องของบริการ HTTP ของตัวตรวจสอบ — เพื่อการตรวจสอบบรรทัดคำสั่งที่รวดเร็ว — หรือไปยังอินสแตนซ์ระยะไกลที่ใดก็ได้บนเว็บ
หากต้องการตรวจสอบเอกสารในเครื่องโดยใช้ไคลเอ็นต์ HTTP ที่ทำแพ็กเกจ ให้ทำดังนี้
เริ่มต้นตัวตรวจสอบเป็นบริการ HTTP ภายใน ตามที่อธิบายไว้ในส่วน เว็บเซิร์ฟเวอร์แบบสแตนด์อโลน
เปิดหน้าต่างเทอร์มินัลใหม่และเรียกใช้ไคลเอ็นต์ HTTP ดังนี้:
java -cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
vnu-runtime-image/bin/java nu.validator.client.HttpClient FILE.html...
หากต้องการส่งเอกสารไปยังอินสแตนซ์ของตัวตรวจสอบบนเว็บ เช่น html5.validator.nu/ ให้ใช้ตัวเลือก nu.validator.client.host และ nu.validator.client.port เช่นนี้
java -cp ~/vnu.jar -Dnu.validator.client.port=80
-Dnu.validator.client.host=html5.validator.nu
nu.validator.client.HttpClient FILE.html...
…หรือเช่นนี้:
vnu-runtime-image/bin/java -Dnu.validator.client.port=80
-Dnu.validator.client.host=html5.validator.nu
nu.validator.client.HttpClient FILE.html...
ตัวเลือกอื่นๆ มีระบุไว้ด้านล่าง
เมื่อใช้ไคลเอ็นต์ HTTP แบบแพ็กเกจเพื่อส่งเอกสารไปยังอินสแตนซ์ของบริการตรวจสอบ HTTP เพื่อตรวจสอบ คุณสามารถตั้งค่าคุณสมบัติระบบ Java เพื่อควบคุมตัวเลือกการกำหนดค่าสำหรับลักษณะการทำงานของตัวตรวจสอบได้
ตัวอย่างเช่น คุณสามารถระงับข้อความระดับคำเตือนและแสดงเฉพาะข้อความระดับข้อผิดพลาดโดยการตั้งค่าคุณสมบัติระบบ nu.validator.client.level
เป็น error
เช่นนี้:
java -Dnu.validator.client.level=error
-cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
…หรือเช่นนี้:
vnu-runtime-image/bin/java -Dnu.validator.client.level=error
-cp ~/vnu.jar nu.validator.client.HttpClient FILE.html...
คุณสมบัติส่วนใหญ่ที่แสดงด้านล่างแมปกับพารามิเตอร์อินพุตทั่วไปสำหรับบริการตรวจสอบ ดังที่บันทึกไว้ที่ github.com/validator/validator/wiki/Service-»-Common-params
Specifies the hostname of the checker for the client to connect to.
default: "127.0.0.1"
Specifies the hostname of the checker for the client to connect to.
default: "8888"
example: java -Dnu.validator.client.port=8080 -jar ~/vnu.jar FILE.html
Specifies the severity level of messages to report; to suppress
warning-level messages, and only show error-level ones, set this property to
"error".
default: [unset]
possible values: "error"
example: java -Dnu.validator.client.level=error -jar ~/vnu.jar FILE.html
Specifies which parser to use.
default: "html"; or, for *.xhtml input files, "xml"
possible values: [see information at URL below]
https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#parser
Specifies the encoding of the input document.
default: [unset]
Specifies the content-type of the input document.
default: "text/html"; or, for *.xhtml files, "application/xhtml+xml"
Specifies the output format for messages.
default: "gnu"
possible values: [see information at URL below]
https://github.com/validator/validator/wiki/Service-%C2%BB-Common-params#out
Specifies whether ASCII quotation marks are substituted for Unicode smart
quotation marks in messages.
default: "yes"
possible values: "yes" or "no"
Binds the validator service to the specified IP address.
default: 0.0.0.0 [causes the checker to listen on all interfaces]
possible values: The IP address of any network interface
example: -Dnu.validator.servlet.bind-address=127.0.0.1
Specifies the connection timeout.
default: 5000
possible values: number of milliseconds
example: -Dnu.validator.servlet.connection-timeout=5000
Specifies the socket timeout.
default: 5000
possible values: number of milliseconds
example: -Dnu.validator.servlet.socket-timeout=5000
คุณสามารถดึงอิมเมจ Docker ของตัวตรวจสอบได้จาก https://ghcr.io/validator/validator ในรีจิสทรีคอนเทนเนอร์ GitHub
หากต้องการดึงและเรียกใช้ตัวตรวจสอบเวอร์ชันล่าสุด:
docker run -it --rm -p 8888:8888 ghcr.io/validator/validator:latest
หากต้องการดึงและเรียกใช้แท็ก/เวอร์ชันเฉพาะของตัวตรวจสอบจากรีจีสทรีคอนเทนเนอร์ ตัวอย่างเช่น เวอร์ชัน 17.11.1
ให้ทำดังนี้
docker run -it --rm -p 8888:8888 ghcr.io/validator/validator:17.11.1
หากต้องการผูกตัวตรวจสอบกับที่อยู่เฉพาะ (แทนที่จะปล่อยให้มันฟังบนอินเทอร์เฟซทั้งหมด):
docker run -it --rm -p 128.30.52.73:8888:8888
ghcr.io/validator/validator:latest
หากต้องการให้ตัวตรวจสอบทำงานโดยมีการหมดเวลาการเชื่อมต่อและการหมดเวลาซ็อกเก็ตแตกต่างจากค่าเริ่มต้น 5 วินาที ให้ใช้ตัวแปรสภาพแวดล้อม CONNECTION_TIMEOUT_SECONDS
และ SOCKET_TIMEOUT_SECONDS
:
docker run -it --rm
-e CONNECTION_TIMEOUT_SECONDS=15
-e SOCKET_TIMEOUT_SECONDS=15
-p 8888:8888
validator/validator
หากต้องการให้ตัวตรวจสอบรันด้วยชุดคุณสมบัติระบบ Java เฉพาะ ให้ใช้ตัวแปรสภาพแวดล้อม JAVA_TOOL_OPTIONS
:
docker run -it --rm
-e JAVA_TOOL_OPTIONS=-Dnu.validator.client.asciiquotes=yes
-p 8888:8888
validator/validator
หากต้องการกำหนดบริการชื่อ vnu
เพื่อใช้กับ docker compose
ให้สร้างไฟล์ Compose ชื่อ docker-compose.yml
(ตัวอย่าง) โดยมีเนื้อหาดังต่อไปนี้:
version: '2' services:
vnu:
image: validator/validator ports:
- "8888:8888"
network_mode: "host" #so "localhost" refers to the host machine.
ทำตามขั้นตอนด้านล่างเพื่อสร้าง ทดสอบ และรันตัวตรวจสอบ เพื่อให้คุณสามารถเปิด http://0.0.0.0:8888/
ในเว็บเบราว์เซอร์เพื่อใช้ตัวตรวจสอบ Web UI
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง git, python และ JDK 8 ขึ้นไปแล้ว
ตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME
:
ส่งออก JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 <-- Ubuntu ฯลฯ
ส่งออก JAVA_HOME=$(/usr/libexec/java_home) <-- MacOS
สร้างไดเร็กทอรีการทำงาน:
โคลนคอมไพล์ https://github.com/validator/validator.git
เปลี่ยนเป็นไดเร็กทอรีการทำงานของคุณ:
เครื่องมือตรวจสอบซีดี
เริ่มสคริปต์ตรวจสอบ Python:
หลาม ./checker.py ทั้งหมด
ครั้งแรกที่คุณเรียกใช้สคริปต์ตรวจสอบ Python คุณจะต้องออนไลน์และบิลด์จะต้องใช้เวลาในการดาวน์โหลดการอ้างอิงหลายเมกะไบต์
ขั้นตอนข้างต้นจะสร้าง ทดสอบ และรันตัวตรวจสอบ เพื่อให้คุณสามารถเปิด http://0.0.0.0:8888/
ในเว็บเบราว์เซอร์เพื่อใช้ตัวตรวจสอบ Web UI
คำเตือน: ตัวตรวจสอบในอนาคตจะผูกเข้ากับที่อยู่โดยค่าเริ่มต้น 127.0.0.1
การใช้งานตัวตรวจสอบของคุณอาจไม่สามารถเข้าถึงได้เว้นแต่คุณจะใช้ตัวเลือก --bind-address
เพื่อผูกตัวตรวจสอบกับที่อยู่อื่น:
python ./checker.py --bind-address=128.30.52.73 all
ใช้ python ./checker.py --help
เพื่อดูตัวเลือกบรรทัดคำสั่งสำหรับควบคุมการทำงานของสคริปต์ รวมถึงชื่อ build-target ที่คุณสามารถเรียกแยกกันได้ เช่น:
python ./checker.py build # เพื่อสร้างเท่านั้น
python ./checker.py build test # เพื่อสร้างและทดสอบ
python ./checker.py run # เพื่อรันเท่านั้น
python ./checker.py jar # เพื่อคอมไพล์ vnu.jar
หลาม ./checker.py อัปเดตตื้น &&
หลาม ./checker.py dldeps &&
python ./checker.py jar # เพื่อคอมไพล์ vnu.jar เร็วขึ้น