Omphaloskepsis-2/layouts/partials/util/get_licence_link.html

46 lines
1.7 KiB
HTML

{{- /*
Returns the URL for a given licence, either from the site data or from a defined URL.
@params licences_data Site data of licences, indexed by SPDX IDs.
@params licence Licence identifier.
@params licence_link Manually-defined licence URL. Optional.
*/
-}}
<!-- Validation -->
{{- if ( not ( isset . "licences_data" ) ) -}}
{{- errorf "No licence data passed to partial" -}}
{{- end -}}
{{- if ( not ( isset . "licence" ) ) -}}
{{- errorf "No licence requested in partial" -}}
{{- end -}}
<!-- Variable assignment -->
{{- $licences_data := .licences_data -}}
{{- $licence := .licence -}}
{{- $licence_link := .licence_link -}}
{{- $final_licence_link := "" -}}
<!-- Rendering -->
{{- if ( index $licences_data $licence ) -}}
{{- if eq ( index $licences_data $licence ) $licence_link -}}
{{- warnf "Redundant license link '%s' defined, it already exists in the site data" ( index $licences_data $licence ) -}}
{{- $final_licence_link = ( index $licences_data $licence ) -}}
{{- else -}}
{{- if ( and ( $licence_link ) ( not ( eq ( index $licences_data $licence ) $licence_link ) ) ) -}}
{{- warnf "Licence '%s' has a different link ('%s') defined in the site data, using '%s' instead" $licence ( index $licences_data $licence ) $licence_link -}}
{{- end -}}
{{- $final_licence_link = $licence_link -}}
{{- end -}}
{{- else if $licence_link -}}
{{- warnidf "licence-link-not-in-site-data" "License link '%s' for licence '%s' should be in the site data, unless it's rarely used" $licence_link $licence -}}
{{- $final_licence_link = $licence_link -}}
{{- end -}}
{{- return $final_licence_link -}}