Bong, 검색 단축어로 외부 검색엔진을 연결하는 셀프호스팅 도구
Bong은 브라우저 검색창의 단축어와 검색어를 YAML에 지정한 외부 검색 주소로 전달하는 셀프호스팅 도구입니다. 검색 주소와 자동완성 제공자는 따로 설정하며, 예시에서는 공통 자동완성 주소가 Google이고 단축어별 주소를 지정할 수도 있습니다.
GitHub 계정 npmania가 공개한 Bong은 검색어를 YAML에 정한 외부 검색 주소로 전달하는 셀프호스팅 리디렉터입니다. 검색 결과 페이지를 만드는 대신 사용자가 자기 서버에서 Bong을 실행하고, 브라우저에 Bong의 OpenSearch 검색엔진을 등록해 씁니다. 검색창에 입력한 내용은 Bong을 거쳐 설정에 맞는 외부 사이트로 넘어갑니다.
기본 접두어는 마침표입니다. .gh rust처럼 입력하면 Bong이 gh 단축어를 찾아 지정된 GitHub 검색 주소에 rust를 넣어 전달합니다. 공개 예제에서 gh는 GitHub 검색으로 연결되고 git도 별칭으로 쓸 수 있습니다. 접두어 없이 입력한 검색어에는 기본 단축어 g가 적용됩니다. 단축어만 입력했을 때 열 페이지도 main_url로 검색 주소와 별도로 지정할 수 있습니다.
각 단축어의 search_url에는 %s, {q}, {searchTerms} 같은 자리표시자를 두어 검색어를 URL에 넣습니다. 설정 파일은 include로 다른 YAML 파일을 불러올 수 있습니다. 포함 순서가 뒤인 파일과 이를 불러오는 파일이 앞선 설정을 덮어씁니다. 별도 저장소 glendalab/bongs는 검색·AI·참고자료, 개발 도구, 미디어, 한국 지역 서비스 항목을 파일별로 제공합니다. 사용자는 필요한 파일을 포함한 뒤 자기 설정에서 항목을 재정의할 수 있습니다.
자동완성은 검색 결과를 보낼 주소와 별도로 설정합니다. .gh rust에서 gh에 suggest_url이 있으면 Bong은 그 주소로 요청하고, 없으면 공통 suggest_url을 사용합니다. 접두어 없이 입력한 검색어는 공통 주소만 이용합니다. Bong 서버가 자동완성 제공자에 요청을 보내고 제안 목록을 브라우저에 돌려줍니다. README의 설정 예시에서 공통 주소는 Google Suggest이며, gh에는 GitHub 저장소 검색, ddg에는 DuckDuckGo의 자동완성 주소가 지정돼 있습니다. 따라서 자동완성 제안은 검색 주소가 아니라 해당 질의에 적용된 suggest_url에 따라 달라집니다.
공개 데모에는 61개 단축어가 표시됩니다. 저장소는 go install로 설치한 뒤 설정 파일을 복사해 실행하는 방법을 안내하며 Apache-2.0 라이선스를 표시합니다.