diff options
author | Adam Chlipala <adam@chlipala.net> | 2012-05-06 16:08:48 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2012-05-06 16:08:48 -0400 |
commit | b9634e3475a851640db7ddf93bb29e7778bc9e34 (patch) | |
tree | a956507879ff7df344774dc30dabdc5438d4cb63 /lib | |
parent | e1ea17cb21e3193a99cfd93d7e264ba0176f66f5 (diff) |
Run-time CSS style validation
Diffstat (limited to 'lib')
-rw-r--r-- | lib/js/urweb.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js index 4f6a5f22..85d10d4a 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -1748,6 +1748,46 @@ function bless(s) { } +// CSS validation + +function atom(s) { + for (var i = 0; i < s.length; ++i) { + var c = s[i]; + if (!isAlnum(c) && c != '+' && c != '-' && c != '.' && c != '%' && c != '#') + er("Disallowed character in CSS atom"); + } + + return s; +} + +function css_url(s) { + for (var i = 0; i < s.length; ++i) { + var c = s[i]; + if (!isAlnum(c) && c != ':' && c != '/' && c != '.' && c != '_' && c != '+' + && c != '-' && c != '%' && c != '?' && c != '&' && c != '=' && c != '#') + er("Disallowed character in CSS URL"); + } + + return s; +} + +function property(s) { + if (s.length <= 0) + er("Empty CSS property"); + + if (!isLower(s[0]) && s[0] != '_') + er("Bad initial character in CSS property"); + + for (var i = 0; i < s.length; ++i) { + var c = s[i]; + if (!isLower(c) && !isDigit(c) && c != '_' && c != '-') + er("Disallowed character in CSS property"); + } + + return s; +} + + // ID generation var nextId = 0; |