Это простая, но мощная функция, которая дает вам доступ к нескольким поисковым системам с помощью простых ключевых слов. Например, вы можете найти в Википедии информацию об обезьянах, набрав w monkeys в адресной строке.
Следующие поиски включены в набор по умолчанию:
а: amazon.com
д: Duckduckgo.com
вниз: downforeveryoneorjustme.com
е: ebay.com
г: google.ru
гм: maps.google.com
imdb: imdb.com
так: stackoverflow.com
w: en.wikipedia.org
wa: wolframalpha.com
у: youtube.com
Вы также можете добавить свои собственные поиски в приложении. Ключевое слово поиска может быть помещено до (w monkeys) или после (monkeys w) строки поиска.
Если вы хотите внести свой вклад в PR, не стесняйтесь. Позвольте мне предупредить вас, что у вас нет опыта разработки AppKit и macOS, исходный код очень похож на мусорный костер на фабрике по производству спагетти.
Странные детали/ограничения и т. д.
Вот как работает расширение:
Прослушивание события beforeNavigate
Проверка URL-адреса, чтобы увидеть, соответствует ли домен одному из поисковых доменов по умолчанию в Safari (Google, Bing, Yahoo, DuckDuckGo или Ecosia).
Извлечение строки поиска из URL
Проверка наличия в строке поиска одного из ключевых слов
Быстрая замена URL-адреса вкладки новым URL-адресом поиска
Анализ URL-адреса для получения строки поиска не является оптимальным, но это единственный способ с текущими API. Эти крайние случаи/ошибки могут возникнуть:
Если у вас есть более одного ключевого слова, расширение может срабатывать несколько раз (например, если вы введете ddg g w monkey)
В редких случаях поисковая система по умолчанию загружается на вкладке до запуска расширения (я видел это всего пару раз).
В предыдущем предыдущем Safari Extension API было событие beforeSearch, которое было намного удобнее. Всем разработчикам Safari, которые могут читать это: привет!