The categories.html template is used in three places:
1) for the tabs on the result page
2) for the default category selection in the preferences
3) for the advanced search category selection in the oscar theme
The search_on_category_select plugin only makes the checkboxes in 1)
behave like tabs. The previous commit however hides the checkboxes
in all three places when the plugin is loaded, which we don't want:
The categories in 2) and 3) always act like checkboxes, so the
checkboxes in these places should actually always be visible.
Note that we inject the CSS via JavaScript instead of using
css_dependencies because we do not wan the CSS to load
when JavaScript is disabled (since in that case the checkboxes
should be visible).
This makes it easier to separately handle search and index requests
from a web server or from a reverse proxy.
If a request to index contains a query, a permanent redirect HTTP response
is returned. This should give some level of backwards compatibility
for users that have set a searx instance in their browser's search bar.
Infinite scroll adds a `hr` tag to split up the sections loaded by it.
The vim bindings `j` and `k`, which jump to the next and previous result
respectively, search for a **direct** sibling with the class `result`.
With the `hr` between results a direct sibling cannot be found. To fix
this we remove the restriction of it having to be a direct sibling.
This improves the user experience by loading in the next entries shortly before him getting to the bottom. It makes the scrolling more smooth without a break in between.
It also fixes an error on my browser that scrolling never hits the defined number. When I debugged it I hit `.scrolltop` of 1092.5 and the `doc.height - win.height` of 1093, so the condition was never true.