From c1d5a801b4bc66e3866f815be00e11d1b20d3539 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 24 Jun 2023 14:44:36 +0200 Subject: Adding upstream version 5.3.0+dfsg. Signed-off-by: Daniel Baumann --- site/layouts/shortcodes/js-docs.html | 64 ++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 site/layouts/shortcodes/js-docs.html (limited to 'site/layouts/shortcodes/js-docs.html') diff --git a/site/layouts/shortcodes/js-docs.html b/site/layouts/shortcodes/js-docs.html new file mode 100644 index 0000000..4739e0a --- /dev/null +++ b/site/layouts/shortcodes/js-docs.html @@ -0,0 +1,64 @@ +{{- /* + Usage: `js-docs name="name" file="file/_location.js` + + Prints everything between `// js-docs-start "name"` and `// js-docs-end "name"` + comments in the docs. +*/ -}} + +{{- $name := .Get "name" -}} +{{- $file := .Get "file" -}} + +{{- /* 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 "// js-docs-start %s\n" $name -}} + {{- $capture_end := printf "// js-docs-end %s" $name -}} + {{- $regex := printf `%s((?:.|\n)*)%s` $capture_start $capture_end -}} + + {{- $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 "" -}} + +
+
+ + {{- $file -}} + +
+ +
+
+ + {{- $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 "js" "" -}} +
+{{- end -}} -- cgit v1.2.3