54 lines
3.0 KiB
HTML
54 lines
3.0 KiB
HTML
{% comment %}
|
|
|
|
Featured Terms button-links.
|
|
This include creates a card with btn links to the Browse page from a set of automatically generated or manually selected terms. Either use the "field" option to auto generate *or* the "featured" option to manually create list of terms.
|
|
|
|
E.G. --> {% include index/featured-terms.html field="subject" title="Top Subjects" btn-color="outline-info" max=8 %}
|
|
|
|
E.G. --> {% include index/featured-terms.html featured="Example term; Another; One more" title="Topic Areas" btn-color="success" %}
|
|
|
|
Options:
|
|
|
|
- "field" - a field from your metadata that will be used to auto generate top terms (required to auto generate)
|
|
- "featured" - a manually created list of featured terms, separated by ; semicolon (required if not auto generating from a field)
|
|
- "title" - card title text inside card content area (optional)
|
|
- "header" = card header text in bar above card content (optional)
|
|
- "heading_level" = customize the level of the heading if necessary for accessibility, choose "h1", "h2", "h3", etc (optional, default "h2")
|
|
- "max" - max number of terms to display if auto generating (optional, default 5)
|
|
- "btn-color" - a bootstrap color class to theme the buttons. Can be any bootstrap template color (e.g. info, success) or outline (e.g. outline-info, outline-success), including colors created in config-theme-colors. (optional, default "primary")
|
|
|
|
Requires CB's "array_count_uniq.rb" plugin!
|
|
|
|
{%- endcomment -%}
|
|
|
|
{% if include.featured %}
|
|
{% assign topTerms = include.featured | split: ";" %}
|
|
{%- else -%}
|
|
|
|
|
|
{% comment %}
|
|
Use termsField and termsMax to customize feature
|
|
{% endcomment %}
|
|
{% assign termsField = include.field | default: "subject" %}
|
|
{% assign termsMax = include.max | default: 5 %}
|
|
{% if site.data.theme.browse-child-objects == true %}
|
|
{%- assign terms = site.data[site.metadata] | where_exp: 'item','item.objectid' | map: termsField | join: ";" -%}
|
|
{% else %}
|
|
{%- assign terms = site.data[site.metadata] | where_exp: 'item','item.parentid == nil' | map: termsField | join: ";" -%}
|
|
{%- endif -%}
|
|
{%- assign uniqTerms = terms | downcase | split: ";" | array_count_uniq -%}
|
|
{% capture topTerms %}
|
|
{% for i in uniqTerms limit: termsMax %}{{ i[0] }};{% endfor %}{% endcapture %}
|
|
{% assign topTerms = topTerms | split: ";" %}
|
|
{%- endif -%}
|
|
<div class="card mb-3">
|
|
{% if include.header %}<{{ include.heading_level | default: 'h2' | strip }} class="card-header h5">{{ include.header }}</{{ include.heading_level | default: 'h2' | strip }}>{% endif %}
|
|
<div class="card-body">
|
|
{% if include.title %}<{{ include.heading_level | default: 'h2' | strip }} class="card-title h5">{{ include.title }}</{{ include.heading_level | default: 'h2' | strip }}>{% endif %}
|
|
<p class="card-text">
|
|
{% for s in topTerms %}
|
|
<a class="btn btn-sm btn-{{ include.btn-color | default: 'primary' }} m-1" href="{{ s | strip | url_param_escape | prepend: ':' | prepend: termsField | prepend: '/browse/#' | relative_url }}">{{ s | strip }}</a>{% endfor %}
|
|
</p>
|
|
</div>
|
|
</div>
|