100 Commits
Author SHA1 Message Date
Martin FischerandMarkus Heiser bb71ebc394 [docs] move own-instance.rst out of docs/user 2022-03-07 08:29:00 +01:00
Martin FischerandMarkus Heiser 579334a7d8 [help] move about.md to searx/help/en/ 2022-03-07 08:29:00 +01:00
Martin Fischer 91527fbd6b [enh] avoid /about redirect in template links 2022-02-05 04:53:21 +01:00
Martin Fischer 07936060d1 preferences: Set autocomplete=off for form
Otherwise you can change the value of a select,
refresh the page and the preferences stay changed,
leaving the wrong impression that they were saved.
2022-02-04 21:11:29 +01:00
Martin Fischer 14338e2c3b [enh] generate navigation for help pages 2022-02-01 06:29:22 +01:00
Martin Fischer c53c295573 [enh] make searx.user_help use an explicit TOC
When we have multiple help pages we want them
to be displayed in a specific order.
2022-02-01 06:29:22 +01:00
Martin Fischer 0f7bcd17b2 [build] /static 2022-02-01 06:29:19 +01:00
Martin Fischer 5012d06e72 [simple] allow .tabs to be used for help pages 2022-02-01 06:28:26 +01:00
Martin Fischer fb9eedbf40 [enh] introduce /help route
Translation will be implemented in the future.
For now the "en" in /help/en/<pagename> is hardcoded.
2022-02-01 06:28:26 +01:00
Martin Fischer b93711b45d [help] remove link from about.md title
Now that about.html extends page_with_header.html
it already has a link to the start page and removing
the link makes it easier to extract the page title
from the Markdown for the following commit.
2022-02-01 06:28:26 +01:00
Martin Fischer 08bb3a5f3a [pyright:basic] searx.user_help 2022-02-01 06:28:26 +01:00
Martin FischerandGitHub 8ae05f6ea5 Merge pull request #847 from not-my-profile/simple-preferences-link
[simple] preferences link
2022-02-01 06:27:13 +01:00
Martin Fischer e931590312 [build] /static 2022-02-01 06:22:44 +01:00
Martin FischerandPaul Braeuning b6200563ba [simple] improve margin of #linkto_preferences
Co-authored-by: Paul Braeuning <paul@paulgo.io>
2022-02-01 06:22:29 +01:00
Martin Fischer 743353dd09 [simple] add aria-label to preferences link 2022-01-31 12:00:11 +01:00
Martin Fischer e7c0f4e877 [simple] link preferences on /about and /stats
We want to link the preferences from every page
(except of course the preferences page).
2022-01-31 11:57:24 +01:00
Martin FischerandGitHub c82b9c68d2 Merge pull request #843 from not-my-profile/simple-page-with-header 2022-01-31 11:14:48 +01:00
Martin Fischer 79dbbd4d99 [build] /static 2022-01-30 17:29:21 +01:00
Martin Fischer 6f0ec7e58f [simple] introduce page_with_header.html template
Previously the preferences & stats templates contained the markup:

<a href="{{ url_for('index') }}"><h1><span>SearXNG</span></h1></a>

There are many things wrong with this:

1. the markup was duplicated

2. the CSS needed to be changed whenever a new page wanted to use this
   header (since the CSS used page-specific selectors)

3. h1 should be reserved for the actual page title
   (e.g. Preferences or Engine stats)

4. the image was set via CSS which also set:

       span { visibility: hidden; }

   which however removes the alternative text from the accessibility
   tree (meaning screen readers will ignore it).

This commit fixes all these problems.
2022-01-30 17:29:21 +01:00
Martin FischerandGitHub 6a366c9807 Merge pull request #838 from dalf/remove_deprecated_code
[mod] remove deprecate code
2022-01-29 10:13:56 +01:00
Martin Fischer 506169f312 [pyright] remove no longer needed assertion
The pyright bug[1] for which the assertion was added has been fixed.

[1]: https://github.com/microsoft/pyright/issues/2930
2022-01-27 22:17:16 +01:00
Martin Fischer b767752d0c [pyright:basic] searx.webapp 2022-01-27 22:17:16 +01:00
Martin Fischer 640c404844 [pyright:strict] searx.search.checker.background 2022-01-27 22:07:12 +01:00
Martin Fischer 8aef66b365 [enh] use typing_extensions for Python 3.7
This lets the next commit make use of TypedDict &
Literal which were only introduced in Python 3.8.
2022-01-27 22:07:12 +01:00
Martin Fischer 7f89adc5f3 [pyright:strict] searx.shared.shared_abstract 2022-01-27 22:07:12 +01:00
Martin FischerandGitHub 1b03db4c73 Merge pull request #830 from return42/fix.828
[fix] docs - don't add plugins twice
2022-01-27 08:37:38 +01:00
Martin FischerandGitHub 973a2a57a1 Merge pull request #815 from mrpaulblack/add-sec-policy
[enh] add security policy
2022-01-25 02:58:10 +01:00
Martin FischerandGitHub 7ce7625117 Merge pull request #804 from return42/minor-fix
[mod] lib_nvm.sh: minor improvements / no functional change
2022-01-24 17:58:16 +01:00
Martin FischerandGitHub 1f15d50aac Merge pull request #783 from not-my-profile/pyrightconfig.json
[enh] add pyrightconfig.json and integrate pyright into CI
2022-01-24 08:02:00 +01:00
Martin Fischer 105c5a6a98 [help] stop rendering documentation with Jinja2
To facilitate translation of the user documentation we move
the templating logic outside of the user documentation.
2022-01-23 08:01:55 +01:00
Martin Fischer 284ac8bfd8 [help] convert about.html to Markdown
To facilitate translation the new user documentation shall be written in
Markdown (which is more human-friendly than HTML and reStructuredText).
2022-01-23 08:01:55 +01:00
Martin Fischer 05149db4c1 [help] render user documentation once on startup
Currently we have two kinds of user documentation:

* the about page[1] which is written in HTML and part of the web
  application and can therefore link instance-specific pages
  (like e.g. the preferences) via Jinja variables

* the Sphinx documentation[2] which is written in reStructuredText
  and cannot link instance-specific pages since it doesn't know
  which instance the user is using

The plan is to integrate the user documentation currently in Sphinx
into the application, so that it can also link instance specific pages.
We also want to enable the user documentation to be translated.

This commit implements the first step in this endeavor (see #722).

[1]: searx/templates/__common__/about.html
[2]: docs/user/ (currently served at https://docs.searxng.org/user/)
2022-01-23 08:01:55 +01:00
Martin Fischer cac0352986 [mod] remove .nvm_packages, add eslint to package.json 2022-01-23 08:00:39 +01:00
Martin Fischer 6d701d2fea [fix] ensure that test.pyright installs pyright
nodejs.ensure only sets up NVM if there isn't a system-wide
installation of Node that matches our NODE_MINIMUM_VERSION.

The ubuntu image in the CI comes with an up to date node version,
so pyright from .nvm_packages is never installed.

This commit fixes this by introducing a package.json file.
2022-01-23 08:00:39 +01:00
Martin Fischer 96450b17d4 [mod] add test.pyright to test & ci.test targets
Since we currently have many type checking errors,
we for now only test with typeCheckingMode: off
which makes pyright only check files that contain a comment:

    # pyright: basic

to enable basic type checking, or

    # pyright: strict

to enable strict type checking.
2022-01-23 08:00:39 +01:00
Martin Fischer 3cd5ce55e8 [enh] clarify why we run pyright in the pyenv 2022-01-23 08:00:39 +01:00
Martin Fischer 5ce3091837 [enh] add pyrightconfig.json
By adding this file Pyright automatically detects the
packages from our Python virtual environment.

This can be tested by using the Pyright extension
for VS Code or by running npx pyright.
2022-01-23 08:00:39 +01:00
Martin FischerandGitHub 96a1f79c6d Merge pull request #773 from not-my-profile/typing
More typing
2022-01-18 16:28:32 +01:00
Martin Fischer 96655cbd4e [typing] add type hints to webapp.py 2022-01-17 11:42:48 +01:00
Martin Fischer 193b0efd12 [typing] add results.UnresponsiveEngine 2022-01-17 11:42:48 +01:00
Martin Fischer 0c6a09cae3 [refactor] remove never used parameter 2022-01-17 11:42:48 +01:00
Martin Fischer def62c3a47 [typing] add type hints for dictionaries 2022-01-17 11:42:48 +01:00
Martin Fischer 6d43cf7952 [typing] add optional attrs to Plugin 2022-01-17 11:42:48 +01:00
Martin Fischer fdf562bc32 [typing] add results.Timing 2022-01-17 11:42:48 +01:00
Martin Fischer 1ed618222f [typing] add ExtendedRequest
webapp.py monkey-patches the Flask request global.
This commit adds a type cast so that e.g. Pyright[1]
doesn't show "Cannot access member" errors everywhere.

[1]: https://github.com/microsoft/pyright
2022-01-17 11:18:17 +01:00
Martin FischerandGitHub 599d882d0a Merge pull request #754 from return42/fix-751
[theme] /preferences: rename "Method" to "HTTP Method"
2022-01-14 18:42:49 +01:00
Martin Fischer d9709df740 [fix] make BooleanChoices only set cookies that vary from the default
The bug was inadvertently introduced by the refactor in
180d4d068b.

Fixes #746.
2022-01-13 19:43:49 +01:00
Martin Fischer cd8ce22f86 [themes] add comma before "but" in new sentence
Closes #739.
2022-01-12 08:26:23 +01:00
Martin FischerandGitHub a5643aa1ca Merge pull request #734 from not-my-profile/search-syntax-doc
Small fixes to Search syntax doc
2022-01-12 08:18:25 +01:00
Martin Fischer d22a16bc14 [doc] highlight the current page in the sidebar 2022-01-10 10:48:13 +01:00
Martin Fischer a925f87088 [doc] move Multilingual Search from user to admin docs
settings.yml snippets have no place in the user docs.
2022-01-10 10:38:15 +01:00
Martin Fischer 392e298369 [doc] fix outdated settings example 2022-01-10 10:34:14 +01:00
Martin Fischer 576e19dad1 [fix] add default for "about" engine property
Fixes #732.
2022-01-10 08:40:06 +01:00
Martin FischerandGitHub 3fbefb4d99 Merge pull request #726 from return42/fix-637
[fix] Documentation of the builtin plugins
2022-01-08 05:25:31 +01:00
Martin FischerandGitHub e12525a1fa Merge pull request #708 from not-my-profile/pref-refactor
Refactor `preferences`
2022-01-07 09:45:23 +01:00
Martin FischerandGitHub 222112bb72 Merge pull request #714 from tiekoetter/drop-microsoft-academic
Drop microsoft academic engine
2022-01-07 07:53:02 +01:00
Martin Fischer 180d4d068b [refactor] refactor SwitchableSetting
The previous implementation used two hash sets and a list.
... that's not necessary ... a single hash map suffices.

And it's also less error prone ... because the previous data structure
allowed a setting to be enabled and disabled at the same time.
2022-01-06 18:56:02 +01:00
Martin Fischer 56fbf22108 [refactor] stop SwitchableSetting from subclassing Setting
Previously the default_value was abused for the cookie name.
Having SwitchableSetting subclass Setting doesn't even make sense
in the first place since none of the Setting methods apply.
2022-01-06 18:13:13 +01:00
Martin FischerandGitHub 1196abcfce Merge pull request #706 from not-my-profile/remove-broken-quest-op
[fix] remove broken ? search operator
2022-01-06 17:44:34 +01:00
Martin Fischer a0486cf827 [fix] prevent leaflet.{css,js} from polluting git grep results
Fixes #704.
2022-01-06 14:33:19 +01:00
Martin Fischer 83f8a8fc6d [refactor] remove pointless tuple 2022-01-06 14:21:15 +01:00
Martin Fischer bb06758a7b [refactor] add type hints & remove Setting._post_init
Previously the Setting classes used a horrible _post_init
hack that prevented proper type checking.
2022-01-06 14:21:14 +01:00
Martin Fischer 61935c72ef [fix] remove broken ? search operator
The ? search operator has been broken for some time and
currently only raises the question why it's still there.

## Context ##

The query "Paris !images" searches for "Paris" in the "images" category.

Once upon a time Searx supported "Paris ?images" to search for "Paris"
in the currently enabled categories and the "images" category.

The feature makes sense ... the ? syntax does not.
We will hopefully introduce a +!images syntax in the future.

Fixes #702.
2022-01-06 14:10:58 +01:00
Martin FischerandGitHub 160f3e022e Merge pull request #683 from return42/fix-doc
Document & Pylint scripts in searxng_extra/update
2022-01-05 19:46:00 +01:00
Martin FischerandGitHub a7199bc085 Merge pull request #694 from return42/fix-c7f27404
[fix] debug console (pdb) in a session started by `make run`
2022-01-05 18:40:46 +01:00
Martin Fischer a4c2cfb837 [enh] change categories_as_tabs from a list to a dict
The tab icon names are currently hard coded in the templates.
This commit lets us introduce an icon property in the future, e.g:

categories_as_tabs:
  general:
    icon: search-outline
2022-01-05 11:03:44 +01:00
Martin Fischer b38036d519 [fix] stop setting superfluous cookies for "non tab categories" 2022-01-05 11:03:44 +01:00
Martin Fischer 3dd534e5c0 [refactor] make group_engines_in_tab more readable 2022-01-05 11:03:44 +01:00
Martin Fischer d01e8aa8cc [mod] introduce searx.engines.Engine for type hinting 2022-01-05 11:03:44 +01:00
Martin Fischer 3f76c9c96c [enh] enable English dictionaries by default
These dictionaries are no longer part of the general category,
so they're no longer queried by default -> we can enable them
by default without degrading general query performance.
2022-01-05 11:03:44 +01:00
Martin Fischer abe53946d4 [enh] display help text for "Other" engines tab in preferences 2022-01-05 11:03:44 +01:00
Martin Fischer 6f07d51b62 [mod] improve variable name 2022-01-05 11:03:44 +01:00
Martin Fischer 1e195f5b95 [mod] move group_engines_in_tab to searx.webutils 2022-01-05 11:03:44 +01:00
Martin Fischer 5d74bf3820 [enh] move dictionaries, Erowid & IMDb out of general category
The general category is the category that is searched by default.
From a privacy standpoint it doesn't make sense to send all general
queries to specialized search engines that cannot deal with those
queries anyway.
2022-01-05 11:03:44 +01:00
Martin Fischer ab90e2ac49 [enh] show categories not in any tab category in "Other" preferences tab
Previously we didn't have a good place to put search engines that don't
fit into any of the tab categories. This commit automatically puts
search engines that don't belong to any tab category in an "other"
category, that is only displayed in the user preferences (and not above
search results).
2022-01-05 11:03:44 +01:00
Martin Fischer 4ac6b5d32d [build] /static 2022-01-05 11:03:44 +01:00
Martin Fischer a12cb6a807 [simple] improve styling of subcategory table headers in preferences 2022-01-05 11:03:44 +01:00
Martin Fischer 20a5e43e35 [enh] display language of engines in preferences 2022-01-05 11:03:44 +01:00
Martin Fischer 31e206361f [enh] group engines in preference tabs 2022-01-05 11:03:44 +01:00
Martin Fischer b02f762687 [enh] add more categories 2022-01-05 11:00:11 +01:00
Martin FischerandGitHub 8eb3167fba Merge pull request #687 from dalf/fix-685
[fix] disabling all engines in a category makes the bang search in general
2022-01-03 20:42:05 +01:00
Martin Fischer 8e9ad1ccc2 [enh] introduce categories_as_tabs
Previously all categories were displayed as search engine tabs.
This commit changes that so that only the categories listed under
categories_as_tabs in settings.yml are displayed.

This lets us introduce more categories without cluttering up the UI.
Categories not displayed as tabs  can still be searched with !bangs.
2022-01-03 07:01:49 +01:00
Martin Fischer 02e9bdf755 [doc] engine tables: show engines in all categories
Previously the documentation grouped the engines by their first
category so e.g. YouTube and Invidious were only shown in the
in the videos section but not in the music section.

This commit fixes this by iterating over searx.engines.categories,
which also has the added benefit that the sections are now in the
same order as the tabs in the user interface.
2022-01-03 07:01:49 +01:00
Martin Fischer d8af94b721 [doc] engine-table: stop sorting by Disabled
It's only the default value for disabled it's not that important,
since users can easily toggle it anytime in the engine preferences.
2022-01-03 07:01:49 +01:00
Martin Fischer df34b1ddcf [enh] settings.yml: allow granular overwrites for about 2022-01-03 07:01:49 +01:00
Martin Fischer 8a0810cedc [fix] bang syntax for categories with spaces 2022-01-03 07:01:49 +01:00
Martin Fischer 19339067c6 [del] remove geektimes (redirects to habrahabr) 2021-12-22 13:20:56 +01:00
Martin Fischer fb037e7a83 [del] remove whaleslide (website is down)
Closes #639.
2021-12-22 13:19:27 +01:00
Martin Fischer ca7f1a2da6 [doc] engine-table: link module documentation if it exists 2021-12-21 21:06:17 +01:00
Martin Fischer 42d70e15ad [doc] engine-table: rename Engine column to Module & link 2021-12-21 15:46:43 +01:00
Martin Fischer 33983809e4 [doc] say how many engines are supported / enabled 2021-12-21 13:00:31 +01:00
Martin Fischer e28c6bda35 [doc] introduce about.language and sort engines by it 2021-12-21 09:58:51 +01:00
Martin Fischer df0d0ecaab [doc] engine-table: sort by Disabled and Name 2021-12-20 23:57:06 +01:00
Martin Fischer 1fb1cca519 [doc] fix about.website for hoogle 2021-12-20 12:12:09 +01:00
Martin Fischer 1615ec4a2b [doc] engine-table: group engines by first category 2021-12-20 11:17:52 +01:00
Martin Fischer 26b0ecddcf [doc] engine-table: merge Engine type column 2021-12-20 11:06:42 +01:00
Martin Fischer 292faf213c [doc] engine-table: remove Display errors column (always true) 2021-12-20 10:52:21 +01:00
Martin Fischer 0d5a356f23 [doc] engine-table: format shortcut as inline code 2021-12-20 10:49:32 +01:00
Martin Fischer 625ebf9cef [doc] engine-table: group columns logically 2021-12-20 10:49:29 +01:00
Martin Fischer 966296b866 [doc] engine-table: expand cryptic abbreviations 2021-12-20 10:07:39 +01:00