{{/* A Hugo shortcode to include the content generated from the IP description Hjson Usage: {{< incGenFromIpDesc hjsonPath contentType >}} hjsonPath: Path to an IP description file in Hjson (ip_name.hjson) Relative paths are resolved relative to the directory using the shortcode. Absolute paths are resolved relative to REPO_TOP. This path could also be a testplan described in Hjson (ip_name_testplan.hjson). Testplans may additionally be suffixed with "tags" separated with ":" colon delimiter, such as "ip_name_testplan.hjson:foo:bar". The tags are extracted from the path and appended at the end to construct the path of the generated content, for example: "ip_name_testplan.hjson.foo_bar_testplan" contentType: Type of generated content to include. Valid options: testplan, hwcfg, registers The actual content is rendered as HTML by the util/build_docs.py script and only included by the shortcode here. */}} {{ $hjsonPath := .Get 0 }} {{ $contentType := .Get 1 }} {{ $ipDescFile := (printf "%s.%s" $hjsonPath $contentType) }} {{ if eq $contentType "testplan" }} {{ $splitTags := split $hjsonPath ":" }} {{ $tags := (cond (gt (len $splitTags) 1) (delimit (after 1 $splitTags) "_") "") }} {{ $ipDescFile = (printf "%s.%s_%s" (index $splitTags 0) $tags $contentType) }} {{ end }} {{ $path := "UNDEF" }} {{ if (hasPrefix $ipDescFile "/") }} {{ $path = path.Join .Site.Params.generatedRoot $ipDescFile }} {{ else }} {{ $path = path.Join .Site.Params.generatedRoot .Page.File.Dir $ipDescFile }} {{ end }} {{ if not (fileExists $path) }} {{ errorf "HTML for %s has not been generated for %s (looked at %s)" $contentType $hjsonPath $path }} {{ end }} {{ readFile $path | safeHTML }}