• This repository has been archived on 03/Apr/2023
  • Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language
    Java
  • License
    Other
  • Created about 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unicorn - W3C's Unified Validator

Unicorn

Status

Note: Due to lack of resources to maintain the Unicorn project, W3C stopped providing this on-line service as of 31 March 2023. (See 2023-02-15 W3C Homepage news)

Since there is no resources from W3C nor the community supporting this project at present, we encourage people to fork.

Summary

Unicorn is W3C's unified validator, which helps people improve the quality of their Web pages by performing a variety of checks. Unicorn gathers the results of the popular HTML and CSS validators, as well as other useful services.

This site addresses these audiences:

  • Users, those who want to check their Web pages and understand how to fix them based on Unicorn results.
  • Developers, those who wish to add new services, work on existing services, or help develop the underlying Unicorn framework.
  • Server Managers, those who wish to run their own Unicorn service locally.

How to compile and deploy Unicorn:

1. The first thing you have to do in order to make Unicorn work is to add a unicorn.home parameter to your JVM parameters, pointing to the unicorn root directory.

example :

Dunicorn.home=/var/lib/tomcat6/webapps/unicorn/ or Dunicorn.home=/C:/Program%20Files/Tomcat/webapps/unicorn/ (read your servlet engine documentation to know how to add this parameter)

2. You will find all the configuration files that Unicorn uses in WEB-INF/conf.
  • The main one is unicorn properties, which contains some properties that you may want to change:
    • UNICORN_URL is the URL of your installation of Unicorn.
    • DEFAULT_LANGUAGE, the language Unicorn will use if language negotiation fails.
    • You can nest properties in this file, meaning that Unicorn will replace any ${<Property_key>} by its value.
    • There is one property that is not specify in the file but added at runtime, UNICORN_HOME, which is equal to the JVM parameter unicorn.home.
  • velocity.properties contains properties for the template engine that Unicorn uses: Apache Velocity
    • By default template caching is set to false. In a production environment you should set this property to true.
    • parser.pool.size is set to the default velocity value (20). If you have a lot of requests you may have to increase this value. In any case check the logs to see if you need to change it (Velocity will log warnings).
  • log4j.properties is the properties file for Apache Log4j. The property UNICORN_HOME is also available in this file. By default logs will be written in WEB-INF/logs and sorted by package and level.
    • If you are developing Unicorn locally you should add the appender GUI to the root logger. This will pop up a useful LogFactor5 console.
    • You can find documentation about log4j configuration here: http://logging.apache.org/log4j/1.2/manual.html
    • Note that log4j is not mandatory for Unicorn to work properly. If log4j.properties does not exist the default java.util.Logger will be used.
  • observers.list is the list of the observers contract links
3. Under WEB-INF/resources/tasklist you will find the task related files which are xml files describing tasks and rdf files containing metadata about tasks.
4. Use ant to compile the project. You can use the 'war' task to make a war file of the 'jar' task to package Unicorn in a jar. The files will be written in the dist directory. See build.xml for more info.

ex: ant war

5. As root, copy the file resources/tomcat_policy in the policy directory of tomcat (/etc/tomcat5/policy.d for Debian) and eventually edit it to fit your needs.

Note that this file is very important because it will give permissions to read and write files under Unicorn servlet dir, but also to connect to distant hosts (observers).

How to initialize Unicorn:

Once you have compiled and deploy Unicorn on your engine you must initialize it. There are a few mandatory steps that Unicorn has to do before being usable, like parsing the contract files, language files, taklists, etc...

If your engine uses the web.xml description file (which should be the case with almost any servlet engine) initialization is automated at startup.

If you want to manually initialize Unicorn you can simply execute the InitAction by connecting to http://localhost:8080/unicorn/init. This task will launch all initialization tasks which are:

  • initialize Unicorn core
  • load Unicorn observers (you can execute this task only by connecting to /init?task=observers)
  • load Unicorn tasklists (/init?task=tasklist)
  • load language files (/init?task=language)

In a production environment InitAction servlet should be protected to be accessible only from localhost (set PROTECT_INIT_ACTION to true in unicorn.properties)

How does the log work:

Under Tomcat logs files are on "webapps/unicorn/WEB-INF/logs/".

There are split in two directory :

  • "level" where log are split in one file by log level (trace, debug, info, warning and error).
  • "package" where log are split by package where they come from. There are also one file called "all.log" which contains all logs informations.

More Repositories

1

csswg-drafts

CSS Working Group Editor Drafts
Bikeshed
4,475
star
2

ServiceWorker

Service Workers
HTML
3,629
star
3

IntersectionObserver

Intersection Observer
Bikeshed
3,622
star
4

html

Deliverables of the HTML Working Group until October 2018
HTML
1,973
star
5

css-houdini-drafts

Mirror of https://hg.css-houdini.org/drafts
Bikeshed
1,837
star
6

epubcheck

The conformance checker for EPUB publications
Java
1,640
star
7

aria-practices

WAI-ARIA Authoring Practices Guide (APG)
HTML
1,075
star
8

webauthn

Web Authentication: An API for accessing Public Key Credentials
HTML
1,012
star
9

webcodecs

WebCodecs is a flexible web API for encoding and decoding audio and video.
HTML
990
star
10

wcag

Web Content Accessibility Guidelines
HTML
906
star
11

webappsec-change-password-url

A Well-Known URL for Changing Passwords
Bikeshed
899
star
12

webtransport

WebTransport is a web API for flexible data transport
Bikeshed
835
star
13

clreq

Requirements for Chinese Text Layout
HTML
727
star
14

manifest

Manifest for web apps
HTML
658
star
15

svgwg

SVG Working Group specifications
HTML
656
star
16

webdriver

Remote control interface that enables introspection and control of user agents.
HTML
652
star
17

webappsec

Web Application Security Working Group repo
HTML
603
star
18

trusted-types

A browser API to prevent DOM-Based Cross Site Scripting in modern web applications.
JavaScript
603
star
19

webextensions

Charter and administrivia for the WebExtensions Community Group (WECG)
Bikeshed
591
star
20

aria

Accessible Rich Internet Applications (WAI-ARIA)
HTML
582
star
21

chinese-ig

WebδΈ­ζ–‡ε…΄θΆ£η»„
HTML
536
star
22

musicxml

MusicXML specification
XSLT
512
star
23

payment-request

Payment Request API
HTML
489
star
24

trace-context

Trace Context
Python
434
star
25

webrtc-pc

WebRTC 1.0 API
HTML
423
star
26

did-core

W3C Decentralized Identifier Specification v1.0
HTML
399
star
27

webappsec-permissions-policy

A mechanism to selectively enable and disable browser features and APIs
Bikeshed
398
star
28

web-performance

W3C Web Performance Working Group repo
HTML
395
star
29

web-advertising

Web Advertising BG - https://www.w3.org/community/web-adv/
HTML
380
star
30

miniapp

MiniApps Standardization
JavaScript
366
star
31

web-share

Web API proposal for sharing data from a web page
HTML
353
star
32

webdriver-bidi

Bidirectional WebDriver protocol for browser automation
Bikeshed
335
star
33

Mobile-Checker

The Mobile Checker is a tool for Web developers who want to make their Web page or Web app work better on mobile devices.
JavaScript
322
star
34

web-nfc

Web NFC
HTML
313
star
35

picture-in-picture

Picture-in-Picture (PiP)
Bikeshed
311
star
36

webref

Machine-readable references of terms defined in web browser specifications
JavaScript
287
star
37

websub

WebSub Spec in Social Web Working Group
HTML
287
star
38

vc-data-model

W3C Verifiable Credentials v2.0 Specification
HTML
286
star
39

wai-tutorials

W3C WAI’s Web Accessibility Tutorials
JavaScript
284
star
40

activitystreams

Activity Streams 2.0
HTML
282
star
41

epub-specs

Shared workspace for EPUB 3 specifications.
HTML
274
star
42

EasierRDF

Making RDF easy enough for most developers
Python
267
star
43

webcrypto

The W3C Web Cryptography API
HTML
265
star
44

danmaku

Bullet Chatting Proposal
HTML
260
star
45

webpayments

The document repo for the Web Payments Working Group
HTML
257
star
46

paint-timing

Paint Timing
Bikeshed
251
star
47

media-source

Media Source Extensions
HTML
245
star
48

IndexedDB

Indexed Database API
Bikeshed
240
star
49

longtasks

Long Task API
Bikeshed
233
star
50

webidl2.js

WebIDL parser
JavaScript
224
star
51

smufl

Standard Music Font Layout
HTML
214
star
52

wot

Web of Things
HTML
213
star
53

browser-specs

A machine-readable list of Web specifications
JavaScript
212
star
54

web-of-things-framework

JavaScript
208
star
55

webappsec-csp

WebAppSec Content Security Policy
HTML
205
star
56

webcomponents-cg

Web Components community group
HTML
202
star
57

css-validator

W3C CSS Validation Service
Java
194
star
58

web-share-target

Web API proposal for receiving shared data
HTML
192
star
59

web-roadmaps

Framework for Web technology roadmaps
HTML
190
star
60

silver

Accessibility Guidelines "Silver"
HTML
190
star
61

process

W3C Process Document
HTML
189
star
62

editing

Specs and explainers maintained by the editing task force
HTML
181
star
63

html-aria

ARIA in HTML
HTML
180
star
64

w3c-api

The W3C API
HTML
178
star
65

encrypted-media

Encrypted Media Extensions
HTML
169
star
66

p2p-webtransport

Interface to create and manage QUIC streams
HTML
164
star
67

csvw

Documents produced by the CSV on the Web Working Group
HTML
162
star
68

sdw

Repository for the Spatial Data on the Web Working Group
HTML
150
star
69

clipboard-apis

Clipboard API and events
HTML
148
star
70

strategy

team-strat, on GitHub, working in public. Current state: DRAFT
148
star
71

uievents

UI Events
HTML
147
star
72

automotive

W3C Automotive Working Group Specifications
HTML
146
star
73

webvtt.js

WebVTT parser and validator
JavaScript
146
star
74

push-api

Push API
HTML
142
star
75

gamepad

Gamepad
HTML
142
star
76

web-annotation

Web Annotation Working Group repository, see README for links to specs
HTML
141
star
77

wcag21

Repository used during WCAG 2.1 development. New issues, Technique ideas, and comments should be filed at the WCAG repository at https://github.com/w3c/wcag.
HTML
140
star
78

elements-of-html

Elements of HTML per version
HTML
137
star
79

mnx

Music Notation CG next-generation music markup proposal.
HTML
136
star
80

libwww

Libwww is a highly modular, general-purpose client side Web API written in C for Unix and Windows (Win32). It's well suited for both small and large applications, like browser/editors, robots, batch tools, etc. Pluggable modules provided with libwww include complete HTTP/1.1 (with caching, pipelining, PUT, POST, Digest Authentication, deflate, etc), MySQL logging, FTP, HTML/4, XML (expat), RDF (SiRPAC), WebDAV, and much more. The purpose of libwww is to serve as a testbed for protocol experiments. This is a complete mirror of the libwww CVS repository
C
135
star
81

w3c.github.io

The W3C organisation
HTML
134
star
82

webrtc-stats

WebRTC Statistics
HTML
128
star
83

aria-at

Assistive Technology ARIA Experience Assessment
HTML
127
star
84

sensors

Generic Sensor API
HTML
127
star
85

ortc

ORTC Community Group specification repository (see W3C WebRTC for official standards track)
HTML
124
star
86

web-locks

Cross-tab resource coordination API
Bikeshed
124
star
87

dxwg

Data Catalog Vocabulary (DCAT)
HTML
124
star
88

sparql-dev

SPARQL dev Community Group
123
star
89

wot-thing-description

Web of Things (WoT) Thing Description
HTML
122
star
90

webrtc-encoded-transform

WebRTC Encoded Transform
Bikeshed
122
star
91

mediacapture-main

Media Capture and Streams specification (aka getUserMedia)
HTML
121
star
92

mediasession

Media Session API
Bikeshed
120
star
93

did-extensions

Decentralized Identifier Ecosystem Extensions
HTML
120
star
94

rdf-star

RDF-star specification
HTML
120
star
95

link-checker

Check links and anchors in Web pages or full Web sites.
Perl
119
star
96

markup-validator

HTML
117
star
97

resource-timing

Resource Timing
HTML
116
star
98

web-animations

🚫 Old repository for the Web Animations specification 🚫. Updated repository:
HTML
115
star
99

csswg-test

The former CSS WG test repository
114
star
100

secure-payment-confirmation

Secure Payment Confirmation (SPC)
Bikeshed
113
star