├── .gitignore ├── livenavigate ├── .gitignore ├── example │ ├── link2.html │ ├── link1.html │ └── index.html ├── CHANGELOG ├── jquery.livenavigate.js ├── README.hashlisten.md ├── jquery.hashlisten.js └── README.md ├── History.md ├── instance ├── jquery.instance.js └── README.md ├── bower.json ├── package.json ├── selecttrap ├── selecttrap.css └── jquery.selecttrap.js ├── unorphan ├── jquery.unorphan.js └── README.md ├── console-shim └── console-shim.js ├── ensurevisible ├── README.md ├── jquery.ensurevisible.coffee └── jquery.ensurevisible.js ├── sort ├── README.md └── jquery.sort.js ├── ajaxsubmit └── jquery.ajaxsubmit.js ├── nomobilescroll └── jquery.nomobilescroll.js ├── scrollmonitor ├── scrollmonitor.coffee └── scrollmonitor.js ├── cycler ├── sample-1.md ├── README.md └── cycler.js ├── placeholder_polyfill └── jquery.placeholder_polyfill.js ├── ellipsify └── jquery.ellipsify.js ├── test ├── setup.js ├── selecttrap.js └── vendor │ └── jquery-1.5.2.js ├── fadeonload └── jquery.fadeonload.js ├── smartquotes └── jquery.smartquotes.js ├── micro_amd └── microalmond.js ├── pseudoinput └── jquery.pseudoinput.js ├── tabs └── jquery.tabs.js ├── hidpi └── jquery.hidpi.js ├── timer └── timer.js ├── buttonloading └── jquery.buttonloading.js ├── anchorjump └── jquery.anchorjump.js ├── scrollagent └── jquery.scrollagent.js ├── toggleable └── jquery.toggleable.js ├── scrope └── jquery.scrope.coffee ├── growl └── jquery.growl.js ├── preventoverscroll └── jquery.prevent_overscroll.js ├── size_responder └── size_responder.js ├── mailcheckhint └── jquery.mailcheckhint.js ├── fillsize └── jquery.fillsize.js ├── uiscreen └── jquery.uiscreen.js ├── README.textile ├── scrollstick └── jquery.scrollstick.js ├── autoexpand └── jquery.autoexpand.js └── paymentform └── jquery.paymentform.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /livenavigate/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.sw? 3 | .DS_Store 4 | Thumbs.db 5 | -------------------------------------------------------------------------------- /History.md: -------------------------------------------------------------------------------- 1 | ## v0.1.1 - October 20, 2014 2 | 3 | * Selecttrap: add support for hover. 4 | -------------------------------------------------------------------------------- /livenavigate/example/link2.html: -------------------------------------------------------------------------------- 1 |
| Number | 16 |Name | 17 |
|---|---|
| 48 | 21 |Rico | 22 |
| 2 | 26 |Michael | 27 |
| 52 | 31 |Ace | 32 |
Apples, bananas and oranges.
22 | ``` 23 | 24 | Into: 25 | 26 | ``` html 27 |Apples, bananas and oranges.
28 | ``` 29 | 30 | ### Comparison to other utilities 31 | 32 | Other similar utilities include: 33 | 34 | * [jQWidont](http://davecardwell.co.uk/javascript/jquery/plugins/jquery-widont/jqwidont-uncompressed.js) 35 | * [Widow Fix](http://plugins.jquery.com/project/widowfix) 36 | * [Widont for WordPress](http://www.shauninman.com/archive/2007/01/03/widont_2_1_wordpress_plugin) 37 | 38 | As of time of writing, *Unorphan* works better than these because: 39 | 40 | * It does not mangle HTML at all (it operates on text nodes), you can be sure that your HTML 41 | tags will always be intact. 42 | 43 | * It does not rewrite `innerHTML`, causing your elements to unneededly reinitialize, and possibly 44 | losing events and data in the elements. 45 | 46 | * It's extremely small. (400 bytes) 47 | 48 | * It does the manipulation on the client side, making no impact to your in-page SEO efforts. 49 | 50 | ### Acknowledgements 51 | 52 | Original idea and implementation by [Shawn 53 | Inman](http://www.shauninman.com/archive/2007/01/03/widont_2_1_wordpress_plugin). 54 | 55 | -------------------------------------------------------------------------------- /smartquotes/jquery.smartquotes.js: -------------------------------------------------------------------------------- 1 | /*! Smartquotes (c) 2012, Rico Sta. Cruz. MIT License. 2 | * http://github.com/rstacruz/jquery-stuff/tree/master/smartquotes */ 3 | 4 | // Translates plain ASCII punctuation characters into typographic punctuation 5 | // HTML entities. Inspired by Smartypants. 6 | // 7 | // $(function() { 8 | // $("body").smartquotes(); 9 | // }); 10 | // 11 | (function($) { 12 | // http://www.leancrew.com/all-this/2010/11/smart-quotes-in-javascript/ 13 | $.smartquotes = function(a) { 14 | a = a.replace(/(^|[-\u2014\s(\["])'/g, "$1\u2018"); // opening singles 15 | a = a.replace(/'/g, "\u2019"); // closing singles & apostrophes 16 | a = a.replace(/(^|[-\u2014/\[(\u2018\s])"/g, "$1\u201c"); // opening doubles 17 | a = a.replace(/"/g, "\u201d"); // closing doubles 18 | a = a.replace(/\.\.\./g, "\u2026"); // ellipses 19 | a = a.replace(/--/g, "\u2014"); // em-dashes 20 | return a; 21 | }; 22 | 23 | // http://stackoverflow.com/questions/298750/how-do-i-select-text-nodes-with-jquery 24 | function getTextNodesIn(el) { 25 | var exclude = 'iframe,pre,code'; 26 | return $(el).find(':not('+exclude+')').andSelf().contents().filter(function() { 27 | return this.nodeType == 3 && $(this).closest(exclude).length === 0; 28 | }); 29 | } 30 | 31 | $.fn.smartquotes = function(fn) { 32 | if (!fn) fn = $.smartquotes; 33 | 34 | var nodes = getTextNodesIn(this), len = nodes.length; 35 | for (var i=0; i