Mercurial > urweb
comparison lib/js/urweb.js @ 1755:e9587120831a
Run-time CSS style validation
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 06 May 2012 16:08:48 -0400 |
parents | acadf9d1214a |
children | 22858505bb2d |
comparison
equal
deleted
inserted
replaced
1754:a1380fc15cb5 | 1755:e9587120831a |
---|---|
1746 er("Disallowed URL: " + s); | 1746 er("Disallowed URL: " + s); |
1747 return u; | 1747 return u; |
1748 } | 1748 } |
1749 | 1749 |
1750 | 1750 |
1751 // CSS validation | |
1752 | |
1753 function atom(s) { | |
1754 for (var i = 0; i < s.length; ++i) { | |
1755 var c = s[i]; | |
1756 if (!isAlnum(c) && c != '+' && c != '-' && c != '.' && c != '%' && c != '#') | |
1757 er("Disallowed character in CSS atom"); | |
1758 } | |
1759 | |
1760 return s; | |
1761 } | |
1762 | |
1763 function css_url(s) { | |
1764 for (var i = 0; i < s.length; ++i) { | |
1765 var c = s[i]; | |
1766 if (!isAlnum(c) && c != ':' && c != '/' && c != '.' && c != '_' && c != '+' | |
1767 && c != '-' && c != '%' && c != '?' && c != '&' && c != '=' && c != '#') | |
1768 er("Disallowed character in CSS URL"); | |
1769 } | |
1770 | |
1771 return s; | |
1772 } | |
1773 | |
1774 function property(s) { | |
1775 if (s.length <= 0) | |
1776 er("Empty CSS property"); | |
1777 | |
1778 if (!isLower(s[0]) && s[0] != '_') | |
1779 er("Bad initial character in CSS property"); | |
1780 | |
1781 for (var i = 0; i < s.length; ++i) { | |
1782 var c = s[i]; | |
1783 if (!isLower(c) && !isDigit(c) && c != '_' && c != '-') | |
1784 er("Disallowed character in CSS property"); | |
1785 } | |
1786 | |
1787 return s; | |
1788 } | |
1789 | |
1790 | |
1751 // ID generation | 1791 // ID generation |
1752 | 1792 |
1753 var nextId = 0; | 1793 var nextId = 0; |
1754 | 1794 |
1755 function fresh() { | 1795 function fresh() { |