Commit Graph

78 Commits

Author SHA1 Message Date
Wilson Lin cefdc8fdd9 Wire up new generated code 2020-06-19 17:58:16 +10:00
Wilson Lin 26157908a6 Add friendlier Rust functions; improve examples 2020-05-12 17:12:29 +10:00
Wilson Lin aaf57a9c22 Improve performance through inlining and direct arrays 2020-01-31 23:15:35 +11:00
Wilson Lin 2ebfb9d017 Remove comments 2020-01-26 23:26:47 +13:00
Wilson Lin 3aa752e46b Restructure enums and matching for performance 2020-01-26 22:32:06 +13:00
Wilson Lin 212e4257d1 Fix bugs relating to entities decoding and encoding 2020-01-26 18:38:23 +13:00
Wilson Lin 71a3e3927b Create through matching condition; show code context on error when using CLI 2020-01-26 03:25:07 +13:00
Wilson Lin 0a094dfed0 Implement more effective `>` encoding; restructure internal APIs 2020-01-26 01:05:07 +13:00
Wilson Lin 24c1639a82 Remove unused errors; order imports 2020-01-25 20:07:52 +13:00
Wilson Lin 8988ff1e3a Create simplified unified matching API 2020-01-25 20:04:02 +13:00
Wilson 6ec509945a Minify area[shape] attr; simplify NS code 2020-01-24 15:17:46 +13:00
Wilson 54b65bbd0c Minify SVG attributes; minor QoL improvements 2020-01-24 03:53:09 +13:00
Wilson Lin 6b2b8cf552 Handle comments correctly 2020-01-19 11:44:11 +11:00
Wilson Lin 9f93a5d6de Fix content whitespace trimming 2020-01-19 11:32:38 +11:00
Wilson Lin 3c4b71612e Fix text minification 2020-01-18 22:39:33 +11:00
Wilson Lin b88e96e97e Significantly clarify code; handle whitespace minification and tag omission at root 2020-01-18 22:19:06 +11:00
Wilson Lin b4f8a041b2 Mention attr with default value removal in README; add <style> default attr values 2020-01-18 11:47:38 +11:00
Wilson Lin 27af2368ff Remove attrs with default values; create minified comparison script; remove `=` from boolean attrs; fix closing tag writing before collapsed whitespace; rebuild hyperbuild only in bench build script instead of all dependencies; conservatively collapse whitespace for html-minifier to match hyperbuild behaviour; update bench results 2020-01-18 11:42:01 +11:00
Wilson Lin ba5fbc68f7 Simplify and improve performance of whitespace minification strategy config 2020-01-17 19:27:34 +11:00
Wilson Lin 5b78526230 Handle edge case in attribute value minification 2020-01-17 00:05:48 +11:00
Wilson Lin 4eeb70639a Rename classname attr; update bench results; mention decoding to U+FFFD 2020-01-15 22:57:47 +11:00
Wilson Lin f8b0bbe3e0 Fix various parsing bugs 2020-01-15 22:09:16 +11:00
Wilson Lin 7dcd7442e8 Remove redundant attributes with empty values 2020-01-15 00:58:33 +11:00
Wilson Lin 37115fef7a Allow more whitespace w.r.t. attributes; do not format bench test pages 2020-01-14 21:10:49 +11:00
Wilson Lin ba3e1917ce Support unquoted attribute values 2020-01-14 20:47:42 +11:00
Wilson Lin 8a92d4281a Remove incorrect comment and unused function 2020-01-14 17:56:13 +11:00
Wilson Lin 0fa6d660e6 Handle malformed entities 2020-01-14 17:55:27 +11:00
Wilson Lin 20c59769fe Do not handle extremely rare escaped states in <script>; simplify graph to show single average 2020-01-12 17:39:23 +11:00
Wilson Lin 52592997fb Use fastrie 2020-01-12 16:29:41 +11:00
Wilson Lin 03b230cea7 Fix typos 2020-01-10 18:45:06 +11:00
Wilson Lin e966f9a23b Remove unused code; handle escaped and double-escaped script data; allow using buffer instead of string source for bench; enforce matching tags 2020-01-10 18:30:49 +11:00
Wilson Lin 8553b09eb3 Fix handling of <script> and <style>; do not minify JS and CSS code 2020-01-10 00:12:21 +11:00
Wilson Lin 1cb9bf9817 Improve closing tag minification; update bench results 2020-01-09 20:45:14 +11:00
Wilson Lin 8b4ec884b6 Handle ++/-- better 2020-01-09 00:57:14 +11:00
Wilson Lin 204bd950a4 Improve handling of JS 2020-01-09 00:42:03 +11:00
Wilson Lin 407acf01a6 Improve parsing attributes reliability 2020-01-09 00:34:59 +11:00
Wilson Lin a9eab38d88 Ensure JS RegExp does not contain line terminators 2020-01-09 00:34:35 +11:00
Wilson Lin da830939d7 Handle processing instructions 2020-01-08 23:00:23 +11:00
Wilson Lin 11adb24f00 Refactor JS parsing 2020-01-08 22:34:04 +11:00
Wilson Lin 3744e13a4d Attempt to handle RegExp literals in JS 2020-01-08 22:19:16 +11:00
Wilson Lin a9bb4c924f Minify JS/CSS comments; faster removal of boolean attr values; sorted generated JSON objects 2020-01-08 11:40:06 +11:00
Wilson Lin 9a9b543b26 Remove boolean attribute values 2020-01-08 00:38:42 +11:00
Wilson Lin e63f8734b4 More minification 2020-01-07 20:56:37 +11:00
Wilson Lin bab73243d7 Erase JS MIME types 2020-01-07 00:28:35 +11:00
Wilson Lin 3c90daa644 Implement closing tag omission 2020-01-06 23:36:05 +11:00
Wilson Lin 3ecfe2b41f Fix discarding significant characters 2020-01-06 19:53:46 +11:00
Wilson Lin 11017c7fcd Use general trie leaf node 2020-01-06 18:28:01 +11:00
Wilson Lin 886db3ea42 Fix entities decoding to longer sequence 2020-01-06 18:13:24 +11:00
Wilson Lin 058a6954e8 Build faster trie 2020-01-06 00:57:07 +11:00
Wilson Lin 5e05cbcff8 Improve Node.js install script 2020-01-05 13:55:20 +11:00
Wilson Lin 74e6352900 Use faster manual matching for content 2020-01-05 13:28:34 +11:00
Wilson Lin 9695d6a990 Fix empty attribute processing 2020-01-04 17:50:39 +11:00
Wilson Lin 94eec0d9af Fix whitespace text content and attribute value processing 2020-01-04 17:39:37 +11:00
Wilson Lin 9764f27dda Fix attribute parsing 2020-01-03 17:16:51 +11:00
Wilson Lin 05b6c20861 Fix attribute processing 2020-01-03 16:57:32 +11:00
Wilson Lin 6939ec17a2 Improve pattern matching 2020-01-02 14:14:40 +11:00
Wilson Lin aea733ba51 Remove comment 2019-12-30 16:54:08 +11:00
Wilson Lin 4570c647a9 Fix invalid entity decoding 2019-12-30 16:52:59 +11:00
Wilson Lin 90fca89160 Update README; expect on debug only 2019-12-30 11:33:49 +11:00
Wilson Lin 7349b15ab8 Reformatting 2019-12-29 21:53:49 +11:00
Wilson Lin 126c719d23 Merge entity code; simplify build IO 2019-12-29 21:51:25 +11:00
Wilson Lin 7f56cff39e Remove date in comment 2019-12-29 21:42:03 +11:00
Wilson Lin 2149d20ae5 Generate patterns at compile time; update comment on entities; fix unused code 2019-12-29 21:39:29 +11:00
Wilson Lin 53904f1956 Build entities trie at compile time; support entities without semicolon 2019-12-29 21:00:20 +11:00
Wilson Lin 95be64d868 Fix entity decoding in attribute; create fuzzer project; simplify code 2019-12-28 23:06:04 +11:00
Wilson Lin 492eb64e4f Update README to describe whitespace minification; do not destroy whole whitespace in content-first elements 2019-12-28 17:15:23 +11:00
Wilson Lin 1db8f4aa13 Enforce no whitespace between attribute name and value 2019-12-28 11:21:44 +11:00
Wilson Lin 0b3e662d63 Update README; fix entity decoding in content 2019-12-27 22:32:04 +11:00
Wilson Lin a14def709f Update README; cleanup comments 2019-12-27 22:14:03 +11:00
Wilson Lin e15381c1cb Handle text script content 2019-12-27 21:52:49 +11:00
Wilson Lin a76c1f3cd5 Fix entity decoding in attribute value; enforce valid Unicode Scalar Value numeric entity refs; update named entities; error messages for CLI; support post-minification empty attributes 2019-12-27 00:23:33 +11:00
Wilson Lin 4ef7574487 Update README; clear old files; fix long lived ranges 2019-12-26 17:16:13 +11:00
Wilson Lin 4ddcb36e42 Faster non-sequence matching; improved attribute value minification 2019-12-26 16:17:57 +11:00
Wilson Lin da796a5839 Refactoring; fix whitespace minification in content 2019-12-26 13:47:18 +11:00
Wilson Lin 85a388d7c8 Develop basic CLI and get working 2019-12-25 23:29:18 +11:00
Wilson Lin 806560dd94 Complete initial migration to Rust 2019-12-25 20:44:51 +11:00
Wilson Lin d75d62883b Migrate mostly to Rust with significant optimisations and refactoring 2019-12-23 22:48:41 +11:00
Wilson Lin 2f24d2e618 Remove C infrastructure 2019-12-15 19:48:44 +11:00