diff --git a/docs/configuration.md b/docs/configuration.md index f4f96f5..949452a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1520,10 +1520,11 @@ An array of groups which can optionally have a title and a custom color. | links | array | yes | | | same-tab | boolean | no | false | | hide-arrow | boolean | no | false | +| target | string | no | | > [!TIP] > -> You can set `same-tab` and `hide-arrow` either on the group which will apply them to all links in that group, or on each individual link which will override the value set on the group. +> You can set `same-tab`, `hide-arrow` and `target` either on the group which will apply them to all links in that group, or on each individual link which will override the value set on the group. ###### Properties for each link | Name | Type | Required | Default | @@ -1533,6 +1534,7 @@ An array of groups which can optionally have a title and a custom color. | icon | string | no | | | same-tab | boolean | no | false | | hide-arrow | boolean | no | false | +| target | string | no | | `icon` @@ -1556,6 +1558,10 @@ Whether to open the link in the same tab or a new one. Whether to hide the colored arrow on each link. +`target` + +Set a custom value for the link's `target` attribute. Possible values are `_blank`, `_self`, `_parent` and `_top`, you can read more about what they do [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). This property has precedence over `same-tab`. + ### ChangeDetection.io Display a list watches from changedetection.io. diff --git a/internal/glance/templates/bookmarks.html b/internal/glance/templates/bookmarks.html index 1e8bfc7..f247bdb 100644 --- a/internal/glance/templates/bookmarks.html +++ b/internal/glance/templates/bookmarks.html @@ -13,7 +13,7 @@ {{ end }} - {{ .Title }} + {{ .Title }} {{ end }} diff --git a/internal/glance/widget-bookmarks.go b/internal/glance/widget-bookmarks.go index d55b818..4f3d26e 100644 --- a/internal/glance/widget-bookmarks.go +++ b/internal/glance/widget-bookmarks.go @@ -14,6 +14,7 @@ type bookmarksWidget struct { Color *hslColorField `yaml:"color"` SameTab bool `yaml:"same-tab"` HideArrow bool `yaml:"hide-arrow"` + Target string `yaml:"target"` Links []struct { Title string `yaml:"title"` URL string `yaml:"url"` @@ -23,10 +24,11 @@ type bookmarksWidget struct { // {{ if not .SameTab }} would return true for any non-nil pointer // which leaves us with no way of checking if the value is true or // false, hence the duplicated fields below - SameTabRaw *bool `yaml:"same-tab"` - SameTab bool `yaml:"-"` - HideArrowRaw *bool `yaml:"hide-arrow"` - HideArrow bool `yaml:"-"` + SameTabRaw *bool `yaml:"same-tab"` + SameTab bool `yaml:"-"` + HideArrowRaw *bool `yaml:"hide-arrow"` + HideArrow bool `yaml:"-"` + Target string `yaml:"target"` } `yaml:"links"` } `yaml:"groups"` } @@ -49,6 +51,18 @@ func (widget *bookmarksWidget) initialize() error { } else { link.HideArrow = *link.HideArrowRaw } + + if link.Target == "" { + if group.Target != "" { + link.Target = group.Target + } else { + if link.SameTab { + link.Target = "" + } else { + link.Target = "_blank" + } + } + } } }