aboutsummaryrefslogtreecommitdiff
path: root/site/layouts/shortcodes/scss-docs.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/layouts/shortcodes/scss-docs.html')
-rw-r--r--site/layouts/shortcodes/scss-docs.html43
1 files changed, 41 insertions, 2 deletions
diff --git a/site/layouts/shortcodes/scss-docs.html b/site/layouts/shortcodes/scss-docs.html
index 3d1cd09a5..6e7c129f4 100644
--- a/site/layouts/shortcodes/scss-docs.html
+++ b/site/layouts/shortcodes/scss-docs.html
@@ -17,8 +17,9 @@
{{- errorf "%s: %q: Missing required parameters! Got: name=%q file=%q!" .Position .Name $name $file -}}
{{- else -}}
{{- $capture_start := printf "// scss-docs-start %s\n" $name -}}
- {{- $capture_end := printf "// scss-docs-end %s" $name -}}
+ {{- $capture_end := printf "// scss-docs-end %s\n" $name -}}
{{- $regex := printf `%s((?:.|\n)*)%s` $capture_start $capture_end -}}
+ {{- $regex_nested := printf `// scss-docs-.*\n` -}}
{{- /*
TODO: figure out why we can't do the following and get the first group (the only capturing one)...
@@ -35,9 +36,47 @@
{{- $match = replace $match $capture_start "" -}}
{{- $match = replace $match $capture_end "" -}}
+ {{- $match_nested := findRE $regex_nested $match -}}
+ {{- range $to_remove := $match_nested -}}
+ {{- $match = replace $match $to_remove "" -}}
+ {{- end -}}
+
{{- if (ne $strip_default "false") -}}
{{- $match = replace $match " !default" "" -}}
{{- end -}}
- {{- highlight $match "scss" "" -}}
+ <div class="bd-example-snippet bd-code-snippet bd-file-ref">
+ <div class="d-flex align-items-center highlight-toolbar ps-3 pe-2 py-1 border-bottom">
+ <a class="font-monospace link-secondary link-underline-secondary link-underline-opacity-0 link-underline-opacity-100-hover small" href="{{ .Site.Params.repo }}/blob/v{{ .Site.Params.current_version }}/{{ $file | replaceRE `\\` "/" }}">
+ {{- $file -}}
+ </a>
+ <div class="d-flex ms-auto">
+ <button type="button" class="btn-clipboard mt-0 me-0" title="Copy to clipboard">
+ <svg class="bi" aria-hidden="true"><use xlink:href="#clipboard"/></svg>
+ </button>
+ </div>
+ </div>
+ {{- $unindent := 0 -}}
+ {{- $found := false -}}
+ {{- $first_line:= index (split $match "\n") 0 -}}
+ {{- range $char := split $first_line "" -}}
+ {{- if and (eq $char " ") (not $found) -}}
+ {{- $unindent = add $unindent 1 -}}
+ {{- else -}}
+ {{- $found = true -}}
+ {{- end -}}
+ {{- end -}}
+ {{- $output := "" -}}
+ {{- if (gt $unindent 0) -}}
+ {{- $prefix := (strings.Repeat $unindent " ") -}}
+ {{- range $line := split $match "\n" -}}
+ {{- $line = strings.TrimPrefix $prefix $line -}}
+ {{ $output = printf "%s%s\n" $output $line }}
+ {{- end -}}
+ {{- $output = chomp $output -}}
+ {{- else -}}
+ {{- $output = $match -}}
+ {{- end -}}
+ {{- highlight $output "scss" "" -}}
+ </div>
{{- end -}}