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