diff --git a/docs/configuration.md b/docs/configuration.md index c42b04d..daedbf7 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1205,6 +1205,7 @@ Example: - title: YouTube shortcut: "!yt" url: https://www.youtube.com/results?search_query={QUERY} + raw-query: false ``` Preview: @@ -1264,11 +1265,12 @@ What now? [Bangs](https://duckduckgo.com/bangs). They're shortcuts that allow yo  ##### Properties for each bang -| Name | Type | Required | -| ---- | ---- | -------- | -| title | string | no | -| shortcut | string | yes | -| url | string | yes | +| Name | Type | Required | Default | +| ---- | ---- | -------- | ------- | +| title | string | no | | +| shortcut | string | yes | | +| url | string | yes | | +| raw-query | boolean | no | false | ###### `title` Optional title that will appear on the right side of the search bar when the query starts with the associated shortcut. @@ -1292,6 +1294,43 @@ url: https://store.steampowered.com/search/?term={QUERY} url: https://www.amazon.com/s?k={QUERY} ``` +###### `raw-query` +Optional boolean that determines whether the query is inserted raw (without URL encoding) into the URL. + +> ```yaml +> shortcut: "!gh" +> url: https://github.com/{QUERY} +> raw-query: false +> +> shortcut: "!ghr" +> url: https://github.com/{QUERY} +> raw-query: true +>``` + +Typing + +``` +!gh glanceapp/glance +``` + +would result in + +``` +https://github.com/glanceapp%2Fglance +``` + +whereas + +``` +!ghr glanceapp/glance +``` + +would result in + +``` +https://github.com/glanceapp/glance +``` + ### Group Group multiple widgets into one using tabs. Widgets are defined using a `widgets` property exactly as you would on a page column. The only limitation is that you cannot place a group widget or a split column widget within a group widget. diff --git a/internal/glance/static/js/page.js b/internal/glance/static/js/page.js index 0212a4f..782662b 100644 --- a/internal/glance/static/js/page.js +++ b/internal/glance/static/js/page.js @@ -142,7 +142,10 @@ function setupSearchBoxes() { return; } - const url = searchUrlTemplate.replace("!QUERY!", encodeURIComponent(query)); + const url = currentBang.dataset.raw === "true" + ? searchUrlTemplate.replace("!QUERY!", query) + : searchUrlTemplate.replace("!QUERY!", encodeURIComponent(query)); + if (newTab && !event.ctrlKey || !newTab && event.ctrlKey) { window.open(url, target).focus(); diff --git a/internal/glance/templates/search.html b/internal/glance/templates/search.html index ae981c6..bf78b2d 100644 --- a/internal/glance/templates/search.html +++ b/internal/glance/templates/search.html @@ -6,7 +6,7 @@