mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2024-11-23 07:47:54 +00:00
button: refine target parameter handling #351
This commit is contained in:
parent
16716ff1db
commit
3b020b0cb9
3 changed files with 17 additions and 4 deletions
|
@ -16,6 +16,8 @@ This document shows you what's new in the latest release. For a detailed list of
|
||||||
|
|
||||||
## 5.4.0
|
## 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**: 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).
|
- **New**: Translation for Finnish (Suomi).
|
||||||
|
|
|
@ -51,8 +51,8 @@ Once the button is clicked, it opens another browser tab for the given URL.
|
||||||
| **style** | `transparent` | The color scheme used to paint the button.<br><br>- by severity: `info`, `note`, `tip`, `warning`<br>- by brand color: `primary`, `secondary`<br>- by color: `blue`, `green`, `grey`, `orange`, `red`<br>- by special color: `default`, `transparent` |
|
| **style** | `transparent` | The color scheme used to paint the button.<br><br>- by severity: `info`, `note`, `tip`, `warning`<br>- by brand color: `primary`, `secondary`<br>- by color: `blue`, `green`, `grey`, `orange`, `red`<br>- 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.<br><br>- for severity styles: a nice matching icon for the severity<br>- for all other colors: _<empty>_<br><br>If you want no icon for a severity style, you have to set this parameter to `" "` (a non empty string filled with spaces) |
|
| **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.<br><br>- for severity styles: a nice matching icon for the severity<br>- for all other colors: _<empty>_<br><br>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. |
|
| **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:<br><br>- `_blank` for any address starting with `http://` or `https://`<br>- 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.<br><br>- for severity styles: the matching title for the severity<br>- for all other colors: _<empty>_<br><br>If you want no title for a severity style, you have to set this parameter to `" "` (a non empty string filled with spaces) |
|
| _**<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.<br><br>- for severity styles: the matching title for the severity<br>- for all other colors: _<empty>_<br><br>If you want no title for a severity style, you have to set this parameter to `" "` (a non empty string filled with spaces) |
|
||||||
| **target** | _blank | The destination frame/window for the URL. |
|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -153,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 href="https://gohugo.io/" style="tip" %}}{{% /button %}}
|
||||||
|
|
||||||
|
#### Button to internal page
|
||||||
|
|
||||||
|
````go
|
||||||
|
{{%/* button href="/" %}}Home{{% /button */%}}
|
||||||
|
````
|
||||||
|
|
||||||
|
{{% button href="/" %}}Home{{% /button %}}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{{- $context := .context }}
|
{{- $context := .context }}
|
||||||
{{- $content := .content }}
|
{{- $content := .content }}
|
||||||
{{- $href := .href }}
|
{{- $href := .href | default "" }}
|
||||||
{{- $style := .style | default "transparent" }}
|
{{- $style := .style | default "transparent" }}
|
||||||
{{- $target := .target | default "_blank" }}
|
{{- $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) }}
|
{{- $title := .title | default ($content) | default ($style | T) }}
|
||||||
{{- $icon := .icon | default "" }}
|
{{- $icon := .icon | default "" }}
|
||||||
{{- if and (not $icon) (eq (len $icon) 0) }}
|
{{- if and (not $icon) (eq (len $icon) 0) }}
|
||||||
|
@ -18,7 +21,7 @@
|
||||||
{{- $iconposition := .iconposition | default "left" }}
|
{{- $iconposition := .iconposition | default "left" }}
|
||||||
{{- with $context }}
|
{{- with $context }}
|
||||||
<span class="btn cstyle {{ $style }}">
|
<span class="btn cstyle {{ $style }}">
|
||||||
<a{{ if $href }} href="{{ $href }}" target="{{ $target }}"{{ end }}>
|
<a{{ if $href }} href="{{ $href }}"{{ if gt (len $target) 0 }} target="{{ $target }}" rel="noopener"{{ end }}{{ end }}>
|
||||||
{{- if and $icon (eq $iconposition "left") }}
|
{{- if and $icon (eq $iconposition "left") }}
|
||||||
<i class="{{ $icon }}"></i>
|
<i class="{{ $icon }}"></i>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
Loading…
Reference in a new issue