| {{/* | |
| 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 }} |