Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[conditional-text] Avoid linebreaks when using the shortcode inline #1220

Merged
merged 1 commit into from
Sep 5, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions layouts/shortcodes/conditional-text.html
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
<!-- Get the current buildcondition from the config and lowercase it -->
{{ $condition := lower $.Site.Params.buildCondition }}
{{- $condition := lower $.Site.Params.buildCondition -}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for cleaning up the whitespace issues in this shortcode @fekete-robert.

For next time, it is best to only add the - marker where it is needed. As a general rule of thumb, I favor the end tag -}}. More rarely do we need - on an opening tag, and certainly not in the case where two directives follow each other like this:

{{ if ... -}}
  {{ $var := val -}}
  {{ $var := val2 -}}
...

/cc @LisaFC


{{ if ne $condition "" }}
{{- if ne $condition "" -}}

<!-- Get the parameters from the shortcode invocation and lowercase them.
TODO: to enable multiple conditions, we could accept comma-separated lists and split them -->
{{ $include_if := lower (.Get "include-if") }}
{{ $exclude_if := lower (.Get "exclude-if") }}
{{- $include_if := lower (.Get "include-if") -}}
{{- $exclude_if := lower (.Get "exclude-if") -}}

{{ if and (in $include_if $condition) (in $exclude_if $condition) }}
{{- if and (in $include_if $condition) (in $exclude_if $condition) -}}
<!-- condition appears in both parameters -->
{{- errorf "Build condition %q appears in both include-if and exclude-if parameters of conditional-txt shortcode on page %s" $condition .Position -}}
{{ end }}
{{- end -}}

{{ if isset $.Params "include-if" }}
{{- if isset $.Params "include-if" -}}
<!-- WARNING substring matches are matches as well! That means, if include-if="foobar", and buildcondition is "foo", you have a match!-->
{{ if in $include_if $condition }}
{{- if in $include_if $condition -}}
<!-- Do not indent the next Inner line, because the inner becomes a blockquote if the conditional-text is nested in another shortcode -->
{{ .Inner }}
{{ else }}
{{ end }}
{{ else }}
{{- .Inner -}}
{{- else -}}
{{- end -}}
{{- else -}}

{{ if isset $.Params "exclude-if" }}
{{- if isset $.Params "exclude-if" -}}
<!-- WARNING substring matches are matches as well! That means, if exclude-if="foobar", and buildcondition is "foo", you have a match!-->
{{ if in $exclude_if $condition }}
{{ else }}
{{- if in $exclude_if $condition -}}
{{- else -}}
<!-- Do not indent the next Inner line, because the inner becomes a blockquote if the conditional-text is nested in another shortcode -->
{{ .Inner }}
{{ end }}
{{ end }}
{{- .Inner -}}
{{- end -}}
{{- end -}}

{{ end }}
{{- end -}}

{{ end }}
{{- end -}}