summaryrefslogtreecommitdiffstats
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, 43 insertions, 0 deletions
diff --git a/site/layouts/shortcodes/scss-docs.html b/site/layouts/shortcodes/scss-docs.html
new file mode 100644
index 0000000..3d1cd09
--- /dev/null
+++ b/site/layouts/shortcodes/scss-docs.html
@@ -0,0 +1,43 @@
+{{- /*
+ Usage: `scss-docs name="name" file="file/_location.scss"`
+
+ Prints everything between `// scss-docs-start "name"` and `// scss-docs-end "name"`
+ comments in the docs.
+
+ Optional parameters:
+ * strip-default: Remove the ` !default` flag from variable assignments - default: `true`
+*/ -}}
+
+{{- $name := .Get "name" -}}
+{{- $file := .Get "file" -}}
+{{- $strip_default := .Get "strip-default" | default "true" -}}
+
+{{- /* If any parameters are missing, print an error and exit */ -}}
+{{- if or (not $name) (not $file) -}}
+ {{- 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 -}}
+ {{- $regex := printf `%s((?:.|\n)*)%s` $capture_start $capture_end -}}
+
+ {{- /*
+ TODO: figure out why we can't do the following and get the first group (the only capturing one)...
+ $regex := printf `(?:// scss-docs-start %s\n)((?:.|\n)*)(?:\n// scss-docs-end %s)` $name $name
+ */ -}}
+
+ {{- $match := findRE $regex (readFile $file) -}}
+ {{- $match = index $match 0 -}}
+
+ {{- if not $match -}}
+ {{- errorf "%s: %q: Got no matches for name=%q in file=%q!" .Position .Name $name $file -}}
+ {{- end -}}
+
+ {{- $match = replace $match $capture_start "" -}}
+ {{- $match = replace $match $capture_end "" -}}
+
+ {{- if (ne $strip_default "false") -}}
+ {{- $match = replace $match " !default" "" -}}
+ {{- end -}}
+
+ {{- highlight $match "scss" "" -}}
+{{- end -}}