Revised the filters to use an independent JS resource, which is an annoying separation of logic but necessary as a proper resolution of #39 and #41.