mathiasbynens / mothereff.in Goto Github PK
View Code? Open in Web Editor NEWWeb developer tools
Home Page: https://mothereff.in/
License: GNU General Public License v2.0
Web developer tools
Home Page: https://mothereff.in/
License: GNU General Public License v2.0
Any chance we can get a more aggressive minifier? Say, using (loadstring or load)(("codestr"):gsub("%u",{A="whatever",B="etc",C="so on"}))
, creating local functions for commonly used code (e.g. if you have a lot of print()
s in your code, it might be worth it to local function p(...) return print(...) end
)
Or should I just hire someone to do that for me?
E.g. http://mothereff.in/js-escapes#1a%5C%0Ab should return 'ab'
.
Was looking at 1 ? 2 : 3 ? 4 : 5
and your tool couldn't help me. raises pitchfork
Rather than blacklist all characters that are known to require escaping in CSS identifiers, why not just keep it generic and only escape characters that don’t match the grammar for CSS identifiers?
// JavaScript regex that matches any valid CSS identifier
/^(?!--|-\d|\d)[a-zA-Z\d\xa0-\uffff_-]+$/
(Note that since JavaScript uses UCS-2 internally, code points higher than U+FFFF
won’t ever be encountered — instead the surrogate halves will be matched separately (and those are all in the \xa0-\uffff
range anyway.)
So, we could handle it so that if the unescaped identifier starts with either two hyphen-minus characters, one hyphen-minus character followed by a digit (0-9
only; no other crazy Unicode digits), or a digit, those would get escaped. For the rest of the string, only characters not matching [a-zA-Z\d\xa0-\uffff_-]
would require escaping.
Could you make an npm package for the twitalics eff.js part? I would love to use the bold feature when posting tweets on behalf of users. I'm looking into making this an npm package now, but figured you might be able to do it faster.
js-escapes: Should we escape </script>
as per http://mths.be/etago (and <!--
as per http://mathiasbynens.be/notes/etago#comment-8) in this tool?
Perhaps I could add a "for use in inline <script>
” checkbox that escaped these as well.
/cc @tomvangoethem
so my domain just renewed.. so it'll have one more year of forwarding to yours
but put in rel=canonical so hopefully my domain is out of the SERPs by then?
at least i think that's how it works.. :)
This bug is for the lua minifier
An example of a self-executing function would be:
(function() return true; end)()
This makes an immedately executing function that is usually used to execute something with an isolated scope.
The problem is that the minifier will remove the containing parens which will result in this:
function()return true end()
Because the function itself is no longer contained in parens the lua will no longer be parsable.
This is wrong as can be verified here. The 0 escape may not be followed by a decimal digit.
I'm moving from Chromium to Firefox because I need to work with the tools that ships with Firefox and it suites more with the things that I do, but something that I've found is that this website doesn't complain with OpenSearch protocol, so I can't use this in Firefox via URL.
My idea is adding support for the OpenSearch protocol to add support for Firefox's URLs.
('%-16s'):format(text)
is being minified to '%-16s':format(text)
causing code to no longer execute.
Link to http://webcomponents.github.io/ once it goes live fo’ real™.
hi, in the search of a variable name validator i came around your project but when I saw the amount of code used I thought that this might has a simpler solution, so I wrote the following:
var varlidator;
varlidator = function(name) {
try {
return (new Function('{ return ' + name + ' = true; }')).call();
} catch (err) {
return false;
}
};
which returns true if a variable name is valid and false if not, and everything in its own es5/es6 whenever a browser or node version is ahead or not.
what do you think of that implementation? do you think im missing something here?
Not sure I want to add support for all of these, but digits would be nice.
At the moment we only show error messages. We could show warnings for valid element names that:
Any other ideas? cc @addyosmani @sindresorhus @zenorocha et al.
I got warned about consecutive non-alpha characters but I don't understand why it's a best practice to avoid them.
It appears that after changing the code at
it cannot be "reset" back the the default, I tried
Hi!
I encountered an issue with http://mothereff.in/byte-counter.
I pasted a string containing a simple Windows line feeds (CR LF).
I expected the byte value to be 2 but the website displayed 1.
I then ran
$("textarea").value.charCodeAt(0)
This returned "10".
I expected it to return the same thing as
"\r\n".charCodeAt(0)
which is "13".
I am using Chrome Version 33.0.1750.146 m on Windows.
I had copied the text from Notepad++.
At https://mothereff.in/regexpu , regexpu.min.js is throwing exceptions like «.dotAllFlag must be false (default) or 'transform'.»
Digging in a little bit, it looks like there's a function trying to validate a { dotAllFlag, unicodePropertyEscape, useUnicodeFlag } object as { dotAllFlag?, unicodeFlag?, unicodePropertyEscapes?, namedGroups?, unicodeSetsFlag?, onNamedGroup? }, which fails because of such property value mismatches and also because of property name mismatches like singular "unicodePropertyEscape" vs. plural "unicodePropertyEscapes" and "useUnicodeFlag" vs. "unicodeFlag". Did related aspect(s) of the interface have a backwards-incompatible change, perhaps as part of supporting the "v" flag?
Hello,
It would be really helpful to learn about the exact conditions at which your code can be reused or and/or called.
Many thanks!
Steffen
In that big ass regex you have two character sets, to identify any valid character, the problem is that a variable with a single character don't match with that regex, I tested it with node so my guess is javascript regex. So I basically remove the last character set and now it detects single variables as well and the size of the regex was greatly reduced.
// Regex for js variable with a single character set
\^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|null|this|true|void|with|break|catch|class|const|false|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[\x24A-Z\x5Fa-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]+$/
Could you tell me why are you using two character sets ? If no reason in particular, I could do a pull request fixing this issue, if there's anything to be fixed of course.
This is problematic.
There are people posting on stack overflow and being generally confused by what UTF-8 is.
In part, thanks to the complete lack of clarification on the page https://mothereff.in/utf-8
Input is the result of passing https://raw.githubusercontent.com/whiskers75/soontm/bde19769bd252dbb6e08bc76ba251bb47a28fb01/index.js through https://xem.github.io/obfuscatweet/ (for fun). Interestingly enough, if I paste the input here then copy from here, I can't reproduce the issue.
OS: Windows 8.1 Update
Browser: Firefox 31.0
We could use the clipboard API for this (where available).
https://mothereff.in/ does not include a link for the following first-level directories in this project:
This would be fairly easy to add/generate but I doubt it’s worth it.
curl -O http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
python parse.py UnicodeData-3.0.0.txt
Result after post-processing through http://mothereff.in/js-escapes:
// start:
$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u021f\u0222-\u0233\u0250-\u02ad\u02b0-\u02b8\u02bb-\u02c1\u02d0-\u02d1\u02e0-\u02e4\u02ee\u037a\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d7\u03da-\u03f3\u0400-\u0481\u048c-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0640-\u064a\u0671-\u06d3\u06d5\u06e5-\u06e6\u06fa-\u06fc\u0710\u0712-\u072c\u0780-\u07a5\u0905-\u0939\u093d\u0950\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b36-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029-\u102a\u1050-\u1055\u10a0-\u10c5\u10d0-\u10f6\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1206\u1208-\u1246\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1286\u1288\u128a-\u128d\u1290-\u12ae\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12ce\u12d0-\u12d6\u12d8-\u12ee\u12f0-\u130e\u1310\u1312-\u1315\u1318-\u131e\u1320-\u1346\u1348-\u135a\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1780-\u17b3\u1820-\u1877\u1880-\u18a8\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u207f\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133-\u2139\u2160-\u2183\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303a\u3041-\u3094\u309d-\u309e\u30a1-\u30fa\u30fc-\u30fe\u3105-\u312c\u3131-\u318e\u31a0-\u31b7\u3400-\u4db5\u4e00-\u9fa5\ua000-\ua48c\uac00-\ud7a3\uf900-\ufa2d\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe72\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc
// part, exclusive:
0-9\u0300-\u034e\u0360-\u0362\u0483-\u0486\u0591-\u05a1\u05a3-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u064b-\u0655\u0660-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u0901-\u0903\u093c\u093e-\u094d\u0951-\u0954\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u09e6-\u09ef\u0a02\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a66-\u0a71\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b66-\u0b6f\u0b82-\u0b83\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be7-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c66-\u0c6f\u0c82-\u0c83\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0ce6-\u0cef\u0d02-\u0d03\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d66-\u0d6f\u0d82-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2-\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f3f\u0f71-\u0f84\u0f86-\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102c-\u1032\u1036-\u1039\u1040-\u1049\u1056-\u1059\u1369-\u1371\u17b4-\u17d3\u17e0-\u17e9\u1810-\u1819\u18a9\u200c-\u200d\u203f-\u2040\u20d0-\u20dc\u20e1\u302a-\u302f\u3099-\u309a\u30fb\ufb1e\ufe20-\ufe23\ufe33-\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65
Is it by design that '&ersand' is conveter to '&ersand'? If my intuition is correct, it should not.
https://mothereff.in/unquoted-attributes#-
A CSS identifier cannot be exactly a single hyphen. See http://stackoverflow.com/questions/34771373/unquoted-hyphen-in-attribute-selector.
An empty ID is invalid according to spec.
The value must be unique amongst all the IDs in the element's home subtree and must contain at least one character.
IE only seems to freak out when an unescaped _
appears at the start of an identifier.
The site cannot be scrolled down after loading. Then the site seem to not respond to the mouse or trackpad. Also, the scroll bar disappears.
i.e. escape "©"
into "\a9 "
and U+1D306 into "\01D306\d834\df06 "
(non-standard)
This is basically what I do in the JS escapes tool, only with slightly different output.
Test case: http://jsfiddle.net/mathias/Hqk9T/
WebKit doesn’t support the regular syntax, e.g. "\1D306 "
or "\01D306"
. It does support "\d834\df06 "
.
Opera supports both.
Firefox only supports the regular syntax.
From the CSS 2.1 Spec:
Font family names that happen to be the same as a keyword value ('inherit', 'serif', 'sans-serif', 'monospace', 'fantasy', and 'cursive') must be quoted to prevent confusion with the keywords with the same names. The keywords 'initial' and 'default' are reserved for future use and must also be quoted when used as font names.
As it is now, a character only de-codes to hex-format. However, decimal-format is always <= to hex-format. Also, name-format is often <= to both. It'd be convenient to output all formats, rather than having to search for them.
It will be great if you add support of manual global variables and table indexing.
I mean additional optional list of names/indexes by user which will be replaced with a,b,c,d etc.
For example:
Code: arr={p=1,q=2} function f() x = arr.p end
List: p, q
Result: arr={a=1,b=2} function f() x = arr.a end
Example 2:
Code is the same.
List: arr, f, x
Result: a={p=1,q=2} function b() c = arr.p end
It is very useful when using deep structure of tables inside a script, i.e. you don't access those tables outside the script.
CSS escapes: http://jsfiddle.net/mathias/CRP7r/
Unquoted attribute values: http://jsfiddle.net/mathias/cYKrV/
Hi. It would be awesome to have another option "Remove line breaks" here: https://mothereff.in/html-entities. Thanks for considering!
I would love it if newlines were preserved in the output (when going from encoded->decoded), I don't know whether this is possible.
Thoughts?
If you think it is possible, I will implement it and send you a PR.
Thanks,
David
In the Mathematical Alphanumeric Symbols ( 1D400—1D7FF ) there are a few holes which are filled in Letterlike Symbols (2100—214F), for compatibility...
So the current translation of unicode "anyletter" fails for double-struck C ( logically it should be at 1D53A but it is at 2102) and for a few other math symbols in this range (which is a mess of letters and non letters and ??? (is "turned F" a letter, "rotated capital Q" ?).
do
if
in
for
int
new
try
var
byte
case
char
else
enum
goto
long
this
void
with
break
catch
class
const
final
float
short
super
throw
while
delete
double
export
import
native
public
return
static
switch
throws
typeof
boolean
default
extends
finally
package
private
abstract
continue
debugger
function
volatile
interface
protected
transient
implements
instanceof
synchronized
Suggested by @jdalton.
Try in IE6, for example:
http://jsfiddle.net/2VEHJ/show/
http://jsfiddle.net/2VEHJ/1/show/
Note: IE8 does this correctly, so qSA is not affected.
-abc
is a valid identifier, so there’s no need to escape the -
. It only needs escaping when it’s at the start of the identifier and when it’s followed by a digit or another hyphen-minus character.
http://mothereff.in/css-escapes#0-abc
(This is described correctly in the article.)
Like http://mathiasbynens.be/demo/quoted-printable, only better.
You should probably normalize for inconsistencies between browsers. E.g. Gecko and WebKit make like endings as "\n"
which counts as one symbol, but Presto inserts "\r\n"
which makes 2. I usually use .replace(/r\n\/g, '\n')
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.