From 0d9eaa2a0941e4b09b591c5ac2710da77fe48be0 Mon Sep 17 00:00:00 2001 From: lnu Date: Wed, 23 Mar 2022 09:14:21 +0100 Subject: [PATCH] fix(language): version url templates fix dotnet + node + npm + php + python url helper: returns plain text if url is empty instead of failing --- src/segments/dotnet.go | 2 +- src/segments/node.go | 2 +- src/segments/npm.go | 2 +- src/segments/php.go | 2 +- src/segments/python.go | 2 +- src/template/link.go | 4 ++++ 6 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/segments/dotnet.go b/src/segments/dotnet.go index 00261451..2bc4b829 100644 --- a/src/segments/dotnet.go +++ b/src/segments/dotnet.go @@ -29,7 +29,7 @@ func (d *Dotnet) Init(props properties.Properties, env environment.Environment) `(?:-(?P(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?))`, }, }, - versionURLTemplate: "https://github.com/dotnet/core/blob/master/release-notes/{{ .Major }}.{{ .Minor }}/{{ .Major }}.{{ .Minor }}.{{ .Patch }}/{{ .Major }}.{{ .Minor }}.{{ .Patch }}.md", // nolint: lll + versionURLTemplate: "https://github.com/dotnet/core/blob/master/release-notes/{{ .Major }}.{{ .Minor }}/{{ .Major }}.{{ .Minor }}.{{ substr 0 1 .Patch }}/{{ .Major }}.{{ .Minor }}.{{ substr 0 1 .Patch }}.md", // nolint: lll } } diff --git a/src/segments/node.go b/src/segments/node.go index abc8112a..9def1cf7 100644 --- a/src/segments/node.go +++ b/src/segments/node.go @@ -38,7 +38,7 @@ func (n *Node) Init(props properties.Properties, env environment.Environment) { regex: `(?:v(?P((?P[0-9]+).(?P[0-9]+).(?P[0-9]+))))`, }, }, - versionURLTemplate: "[%[1]s](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V%[2]s.md#%[1]s)", + versionURLTemplate: "https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V{{ .Major }}.md#{{ .Full }}", matchesVersionFile: n.matchesVersionFile, loadContext: n.loadContext, } diff --git a/src/segments/npm.go b/src/segments/npm.go index ab55f84e..ced904e8 100644 --- a/src/segments/npm.go +++ b/src/segments/npm.go @@ -29,6 +29,6 @@ func (n *Npm) Init(props properties.Properties, env environment.Environment) { regex: `(?P((?P[0-9]+).(?P[0-9]+).(?P[0-9]+)))`, }, }, - versionURLTemplate: "https://github.com/npm/npm/releases/tag/v{{ .Full }}", + versionURLTemplate: "https://github.com/npm/cli/releases/tag/v{{ .Full }}", } } diff --git a/src/segments/php.go b/src/segments/php.go index e4f2daab..536595da 100644 --- a/src/segments/php.go +++ b/src/segments/php.go @@ -25,7 +25,7 @@ func (p *Php) Init(props properties.Properties, env environment.Environment) { regex: `(?:PHP (?P((?P[0-9]+).(?P[0-9]+).(?P[0-9]+))))`, }, }, - versionURLTemplate: "[%[1]s](https://www.php.net/ChangeLog-%[2]s.php#PHP_%[2]s_%[3]s)", + versionURLTemplate: "https://www.php.net/ChangeLog-{{ .Major }}.php#PHP_{{ .Major }}_{{ .Minor }}", } } diff --git a/src/segments/python.go b/src/segments/python.go index 589c25f6..96f8a67c 100644 --- a/src/segments/python.go +++ b/src/segments/python.go @@ -39,7 +39,7 @@ func (p *Python) Init(props properties.Properties, env environment.Environment) regex: `(?:Python (?P((?P[0-9]+).(?P[0-9]+).(?P[0-9]+))))`, }, }, - versionURLTemplate: "[%s](https://www.python.org/downloads/release/python-%s%s%s/)", + versionURLTemplate: "https://docs.python.org/release/{{ .Major }}.{{ .Minor }}.{{ .Patch }}/whatsnew/changelog.html#python-{{ .Major }}-{{ .Minor }}-{{ .Patch }}", displayMode: props.GetString(DisplayMode, DisplayModeEnvironment), homeEnabled: props.GetBool(HomeEnabled, true), } diff --git a/src/template/link.go b/src/template/link.go index ab159880..8d7ac391 100644 --- a/src/template/link.go +++ b/src/template/link.go @@ -5,7 +5,11 @@ import ( link "net/url" ) +// url builds an hyperlink if url is not empty, otherwise returns the text only func url(text, url string) (string, error) { + if url == "" { + return text, nil + } _, err := link.ParseRequestURI(url) if err != nil { return "", err