mirror of
https://github.com/qdrant/landing_page.git
synced 2026-10-03 09:58:30 +02:00
* shortcode for rendering code snippets from separate markdown files * formatted code * fix and readme * semi-automatically extracts snippets from markdown * extract snippets from points.md * extract snippets from vectors.md * extract snippets from payload.md * extract snippets from search.md + fixes * extract snippets from explore.md * extract snippets from hybrid-queries.md + mode query by id into search * extract snippets from filtering.md * extract snippets from storage.md + update outdated info * extract snippets from indexing.md * extract snippets from snapshots.md * extract snippets from guides/optimize.md * extract snippets from guides/multiple-partitions.md + fix aside note * extract snippets from guides/quantization.md * use auto-generated descriptions * order json snippets first --------- Co-authored-by: generall <andrey@vasnetsov.com>
85 lines
2.5 KiB
HTML
85 lines
2.5 KiB
HTML
<!-- Example usage: -->
|
|
{{/* {{< code-snippet path="/documentation/headless/snippets/points-id/" order="python http go" > */}}
|
|
<!-- Shortcode to render code snippets from a specified path -->
|
|
<!-- path : The path to the directory containing the code snippets -->
|
|
<!-- order : Optional. A space-separated list of snippet names to render first -->
|
|
<!-- The rest will be rendered in the order they are found in the directory -->
|
|
<!-- Global order of snippets is defined in the _index.md file of the section -->
|
|
|
|
{{/* {{< code-snippet path="/path/to/snippets" order="snippet1 snippet2" > */}}
|
|
|
|
|
|
<!-- Extract shortcode parameters -->
|
|
{{ $path := .Get "path" }}
|
|
{{ $order := .Get "order" }}
|
|
|
|
|
|
<!-- Convert order string to a slice if provided -->
|
|
{{ if $order }}
|
|
{{ $order = split $order " " }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- If order is not provided, try to get it from the nearest _index.md -->
|
|
{{ if not $order }}
|
|
{{ $currentPath := $path }}
|
|
{{ $foundOrder := false }}
|
|
|
|
{{ $currentPathParts := split $currentPath "/" }}
|
|
{{ $numParts := len $currentPathParts }}
|
|
|
|
|
|
<!-- Iterate from longest path to shortest -->
|
|
{{ range seq $numParts }}
|
|
{{ $index := sub $numParts . }}
|
|
{{ $currentPath = delimit (first (add $index 1) $currentPathParts) "/" }}
|
|
|
|
{{ $sectionPage := $.Site.GetPage "section" $currentPath }}
|
|
{{ if and $sectionPage $sectionPage.Params.snippetsOrder }}
|
|
{{ $order = $sectionPage.Params.snippetsOrder }}
|
|
{{ $foundOrder = true }}
|
|
{{ break }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- If no snippetsOrder found, set an empty order -->
|
|
{{ if not $foundOrder }}
|
|
{{ $order = slice }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- Read all files from the given path -->
|
|
{{ $files := slice }}
|
|
|
|
{{ range (readDir (printf "content/%s" $path)) }}
|
|
<!--- Skip files starting with `_` -->
|
|
{{ if strings.HasPrefix .Name "_" }}
|
|
{{ continue }}
|
|
{{ end }}
|
|
|
|
{{ if strings.HasSuffix .Name ".md" }}
|
|
{{ $filePath := printf "content/%s/%s" $path .Name }}
|
|
{{ $content := readFile $filePath | markdownify }}
|
|
{{ $files = $files | append (dict "name" (strings.TrimSuffix ".md" .Name) "content" $content) }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- Render snippets in the specified order first -->
|
|
{{ range $order }}
|
|
{{ $snippet := index (where $files "name" .) 0 }}
|
|
{{ if $snippet }}
|
|
{{ $snippet.content | markdownify }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
|
|
<!-- Render remaining files that were not in the order list -->
|
|
{{ range $files }}
|
|
{{ if not (in $order .name) }}
|
|
{{ .content | markdownify }}
|
|
{{ end }}
|
|
{{ end }}
|