diff --git a/exampleSite/content/basics/migration/_index.en.md b/exampleSite/content/basics/migration/_index.en.md index 6945e86489..a3d8751a78 100644 --- a/exampleSite/content/basics/migration/_index.en.md +++ b/exampleSite/content/basics/migration/_index.en.md @@ -16,6 +16,8 @@ This document shows you what's new in the latest release. For a detailed list of ## 5.4.0 +- **Change**: The [`button` shortcode]({{% relref "shortcodes/button" %}}) has a new parameter `target` to set the destination frame/window for the URL to open. If not given, it defaults to a new window/tab for external URLs or is not set at all for internal URLs. Previously even internal URLs where opened in a new window/tab. + - **New**: The [`math` shortcode]({{% relref "shortcodes/math" %}}) and [`mermaid` shortcode]({{% relref "shortcodes/mermaid" %}}) now support alignment parameter also if codefence syntax is used. - **New**: Translation for Finnish (Suomi). diff --git a/exampleSite/content/shortcodes/button.en.md b/exampleSite/content/shortcodes/button.en.md index 0e1c89fb29..66844c8794 100644 --- a/exampleSite/content/shortcodes/button.en.md +++ b/exampleSite/content/shortcodes/button.en.md @@ -51,6 +51,7 @@ Once the button is clicked, it opens another browser tab for the given URL. | **style** | `transparent` | The color scheme used to paint the button.

- by severity: `info`, `note`, `tip`, `warning`
- by brand color: `primary`, `secondary`
- by color: `blue`, `green`, `grey`, `orange`, `red`
- by special color: `default`, `transparent` | | **icon** | see notes | [Font Awesome icon name]({{%relref "cont/icons#finding-an-icon" %}}) set to the left of the title. Depending on the **style** there may be a default icon. Any given value will overwrite the default.

- for severity styles: a nice matching icon for the severity
- for all other colors: _<empty>_

If you want no icon for a severity style, you have to set this parameter to `" "` (a non empty string filled with spaces) | | **iconposition** | `left` | Places the icon to the `left` or `right` of the title. | +| **target** | see notes | The destination frame/window for the URL. This behaves similar to normal links. If the parameter is not given it defaults to:

- `_blank` for any address starting with `http://` or `https://`
- no specific value for all other links | | _**<content>**_ | see notes | Arbitrary text for the button title. Depending on the **style** there may be a default title. Any given value will overwrite the default.

- for severity styles: the matching title for the severity
- for all other colors: _<empty>_

If you want no title for a severity style, you have to set this parameter to `" "` (a non empty string filled with spaces) | ## Examples @@ -134,6 +135,15 @@ Once the button is clicked, it opens another browser tab for the given URL. {{% button href="https://gohugo.io/" icon="dragon" style="warning" %}}Get Hugo{{% /button %}} +### Target + +````go +{{%/* button href="https://gohugo.io/" target="_self" %}}Get Hugo in same window{{% /button */%}} +{{%/* button href="https://gohugo.io/" %}}Get Hugo in new Window/Frame (default){{% /button */%}} +```` +{{% button href="https://gohugo.io/" target="_self" %}}Get Hugo in same Window/Frame{{% /button %}} +{{% button href="https://gohugo.io/" %}}Get Hugo in new Window/Frame (default){{% /button %}} + ### Other #### Severity Style with all Defaults @@ -143,3 +153,11 @@ Once the button is clicked, it opens another browser tab for the given URL. ```` {{% button href="https://gohugo.io/" style="tip" %}}{{% /button %}} + +#### Button to internal page + +````go +{{%/* button href="/" %}}Home{{% /button */%}} +```` + +{{% button href="/" %}}Home{{% /button %}} diff --git a/layouts/partials/shortcodes/button.html b/layouts/partials/shortcodes/button.html index a536640d91..31747bbdbf 100644 --- a/layouts/partials/shortcodes/button.html +++ b/layouts/partials/shortcodes/button.html @@ -1,7 +1,11 @@ {{- $context := .context }} {{- $content := .content }} -{{- $href := .href }} +{{- $href := .href | default "" }} {{- $style := .style | default "transparent" }} +{{- $target := .target | default "" }} +{{- if and (eq (len $target) 0) (or (strings.HasPrefix $href "http://") (strings.HasPrefix $href "https://") ) }} + {{- $target = "_blank" }} +{{- end }} {{- $title := .title | default ($content) | default ($style | T) }} {{- $icon := .icon | default "" }} {{- if and (not $icon) (eq (len $icon) 0) }} @@ -17,7 +21,7 @@ {{- $iconposition := .iconposition | default "left" }} {{- with $context }} - + {{- if and $icon (eq $iconposition "left") }} {{- end }} diff --git a/layouts/shortcodes/button.html b/layouts/shortcodes/button.html index 20125fb500..b39e2c097e 100644 --- a/layouts/shortcodes/button.html +++ b/layouts/shortcodes/button.html @@ -7,4 +7,5 @@ "iconposition" ((.Get "iconposition") | default (.Get "icon-position")) "style" (.Get "style") "title" (.Get "title") + "target" (.Get "target") ) }} \ No newline at end of file