* Because of the change to the internal cache, the tablesorter v2.16+ core, filter widget and pager (both plugin & widget) will only work with the same version or newer files.
* See the [full documentation](//mottie.github.io/tablesorter/docs/).
* All of the [original document pages](//tablesorter.com/docs/) have been included.
* Information from my blog post on [undocumented options](//wowmotty.blogspot.com/2011/06/jquery-tablesorter-missing-docs.html) and lots of new demos have also been included.
* Change log moved from included text file into the [wiki documentation](//github.com/Mottie/tablesorter/wiki/Changes).
* Multi-tbody sorting - see the [options](//mottie.github.io/tablesorter/docs/index.html#options) table on the main document page.
* Supports [Bootstrap v2 and 3](//mottie.github.io/tablesorter/docs/example-widget-bootstrap-theme.html)
* Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. [Add your own easily](//mottie.github.io/tablesorter/docs/example-parsers.html).
* Inline editing - see [demo](//mottie.github.io/tablesorter/docs/example-widget-editable.html)
* Big shout-out to [Nick Craver](//github.com/NickCraver) for getting rid of the `eval()` function that was previously needed for multi-column sorting.
* Big thanks to [thezoggy](//github.com/thezoggy) for helping with code, themes and providing valuable feedback.
* Big thanks to [ThsSin-](//github.com/TheSin-) for taking over for a while and also providing valuable feedback.
* Also extra thanks to [christhomas](//github.com/christhomas) and [Lynesth](//github.com/Lynesth) for help with code.
* Add extractor type which allows giving a column two parsers, one to extract content from an input/select and the second to parse the extracted text. Thanks to [TheSin-](//github.com/TheSin-)!
* Ensure custom parsed data adheres to the `ignoreCase` option.
* Add a delay to any sort if there is an update in progress. This prevents issues with a sort being applied causing duplicate rows to be added to the table, hopefully.
* The `widthFixed` option now finds both visible `th` and `td` cells within the first row of the tbody to set column width percentages.
* Ensure all rows have a set role for screen readers (`role="row"`). Fixes [issue #690](//github.com/Mottie/tablesorter/issues/690).
* Redefine `c.$headers` when building headers for new/replaced header cells (not just content). Fixes [issue #683](//github.com/Mottie/tablesorter/issues/683).
* Modify `editable_columns` type check to prevent javascript errors. See [pull #688](//github.com/Mottie/tablesorter/issues/688). Thanks [scratcher28](//github.com/scratcher28)!
* Update `$.tablesorter.addHeaderResizeEvent` function's first parameter `table` to accept table DOM elements as well as jQuery objects. Fixes [issue #687](//github.com/Mottie/tablesorter/issues/687).
* Force cache build on initial search when `delayInit` is `true`. Fixes [issue #678](//github.com/Mottie/tablesorter/issues/678).
* Make `config.filteredRows` count available within `filterInit` event. Fixes [issue #670](//github.com/Mottie/tablesorter/issues/670).
* Selects now obtain parsed data when it is set for a particular column. Fixes [issue #684](//github.com/Mottie/tablesorter/issues/684).
* Ignore change event if input value hasn't changed, otherwise it interferes with other events within the table. Fixes [issue #685](//github.com/Mottie/tablesorter/issues/685).
* Filter initialization ("filterInit") event is now delayed to prevent filterStart & filterEnd event spamming. Fixes [issue #668](//github.com/Mottie/tablesorter/issues/668).
* Filter formatter functions are now required to call a function after initialization to delay "filterInit" event. Fixes [issue #668](//github.com/Mottie/tablesorter/issues/668).
* Update download method which allows downloading files without modifying the server htaccess. Fixes [issue #681](//github.com/Mottie/tablesorter/issues/681).
* Copied the tablesorter `initialized` option from the event section into the configuration; renamed the event appropriately (`tablesorter-initialized` event)
* Added notes about how to bind to "init" events; they should be bound before initializing tablesorter because in most cases, the events fire before the binding occurs.
* Core
* Add `$.tablesorter.hasWidget(table, 'widgetId')` function. It returns a boolean value of `true` when the named widget is actively applied to the table.
* Filter
* Add `filter_searchFiltered` option to allow disabling the search of already filtered rows.
* The `filter_initialized` flag now gets set appropriately. Fixes [issue #668](//github.com/Mottie/tablesorter/issues/668).
* Include any column filter in determination of searching already filtered rows. Fixes [issue #669](//github.com/Mottie/tablesorter/issues/669).
* Add internal `config.filteredRows` variable. Provides a value of the number of currently filtered (visible) rows. Fixes [issue #670](//github.com/Mottie/tablesorter/issues/670).
* Filtered rows now equals the total rows when `ajaxProcessing` returns an array. Fixes [issue #667](//github.com/Mottie/tablesorter/issues/667).
* Update the `config.filteredRows` when using ajax to match the internal `config.pager.filteredRows`. See [issue #670](//github.com/Mottie/tablesorter/issues/670).
* Bind mousemove to document instead of table header. Makes resizable handle use consistent with other resizing libraries, as the user would expect. Fixes [issue #665](//github.com/Mottie/tablesorter/issues/665).
* Add `resizable_throttle` option to allow throttling of the mousemove/resize event. Set this option to `true` or a number between 1 and 10 to add a throttling delay. Fixes [issue #662](//github.com/Mottie/tablesorter/issues/662).