Parcourir la source

feat: added property new-tab to type: search

ralphocdol il y a 1 an
Parent
commit
06b21e3d27

+ 3 - 0
docs/configuration.md

@@ -725,10 +725,13 @@ Preview:
 | <kbd>Ctrl</kbd> + <kbd>Enter</kbd> | Perform search in a new tab | Search input is focused and not empty |
 | <kbd>Escape</kbd> | Leave focus | Search input is focused |
 
+If property `new-tab` is set to `true`, keys <kbd>Enter</kbd> and <kbd>Ctrl</kbd> + <kbd>Enter</kbd> will be switched.
+
 #### Properties
 | Name | Type | Required | Default |
 | ---- | ---- | -------- | ------- |
 | search-engine | string | no | duckduckgo |
+| new-tab | boolean | no | false |
 | bangs | array | no | |
 
 ##### `search-engine`

+ 4 - 0
internal/assets/static/main.css

@@ -370,6 +370,10 @@ kbd:active {
     box-shadow: 0 0 0 0 var(--color-widget-background-highlight);
 }
 
+new-tab {
+    display: none;
+}
+
 .content-bounds {
     max-width: 1600px;
     margin-inline: auto;

+ 2 - 1
internal/assets/static/main.js

@@ -120,6 +120,7 @@ function setupSearchboxes() {
         const inputElement = widget.getElementsByClassName("search-input")[0];
         const bangElement = widget.getElementsByClassName("search-bang")[0];
         const bangs = widget.querySelectorAll(".search-bangs > input");
+        const newTab = widget.getElementsByTagName("new-tab")[0].innerHTML === "true";
         const bangsMap = {};
         const kbdElement = widget.getElementsByTagName("kbd")[0];
         let currentBang = null;
@@ -154,7 +155,7 @@ function setupSearchboxes() {
 
                 const url = searchUrlTemplate.replace("!QUERY!", encodeURIComponent(query));
 
-                if (event.ctrlKey) {
+                if (newTab && !event.ctrlKey || !newTab && event.ctrlKey) {
                     window.open(url, '_blank').focus();
                 } else {
                     window.location.href = url;

+ 1 - 0
internal/assets/templates/search.html

@@ -20,5 +20,6 @@
 
     <div class="search-bang"></div>
     <kbd class="hide-on-mobile" title="Press [S] to focus the search input">S</kbd>
+    <new-tab>{{ .NewTab }}</new-tab>
 </div>
 {{ end }}

+ 1 - 0
internal/widget/search.go

@@ -19,6 +19,7 @@ type Search struct {
 	cachedHTML   template.HTML `yaml:"-"`
 	SearchEngine string        `yaml:"search-engine"`
 	Bangs        []SearchBang  `yaml:"bangs"`
+	NewTab       bool          `yaml:"new-tab"`
 }
 
 func convertSearchUrl(url string) string {