Add target property on bookmarks widget

This commit is contained in:
Svilen Markov
2025-01-07 10:45:54 +00:00
parent 94ec286de6
commit 491bc65a38
3 changed files with 26 additions and 6 deletions

View File

@@ -13,7 +13,7 @@
<img class="bookmarks-icon{{ if .Icon.IsFlatIcon }} flat-icon{{ end }}" src="{{ .Icon.URL }}" alt="" loading="lazy">
</div>
{{ end }}
<a href="{{ .URL | safeURL }}" class="bookmarks-link {{ if .HideArrow }}bookmarks-link-no-arrow {{ end }}color-highlight size-h4" {{ if not .SameTab }}target="_blank"{{ end }} rel="noreferrer">{{ .Title }}</a>
<a href="{{ .URL | safeURL }}" class="bookmarks-link {{ if .HideArrow }}bookmarks-link-no-arrow {{ end }}color-highlight size-h4" {{ if .Target }}target="{{ .Target }}"{{ end }} rel="noreferrer">{{ .Title }}</a>
</li>
{{ end }}
</ul>

View File

@@ -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"
}
}
}
}
}