blob: 9e6bbc120135b907b52264dbd6c70dcdfabac326 [file] [log] [blame]
{{/*
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 }}