Initial commit
This commit is contained in:
11
_layouts/about-narrow.html
Normal file
11
_layouts/about-narrow.html
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
# narrow text block "About" page layout
|
||||
# text block is centered
|
||||
layout: default
|
||||
---
|
||||
<div class="container my-4 about-narrow-contents">
|
||||
{% include feature/jumbotron.html %}
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
{% if page.credits == true %}{% include cb/credits.html %}{% endif %}
|
||||
86
_layouts/about.html
Normal file
86
_layouts/about.html
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
# default "About" page layout
|
||||
# provides a full width featured image at top
|
||||
# with an auto generated TOC nav on the left and a narrow text block
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if page.about-featured-image or page.heading or page.sub-heading %}
|
||||
|
||||
{% assign jumboId = page.about-featured-image %}
|
||||
{% if jumboId contains '/' %}
|
||||
{% assign jumboSrc = jumboId | relative_url %}
|
||||
{% else %}
|
||||
{% assign jumboItem = site.data[site.metadata] | where: "objectid", jumboId | first %}
|
||||
{% capture jumboSrc %}{{ jumboItem.object_location | default: jumboItem.image_small | relative_url }}{% endcapture %}
|
||||
{%- endif -%}
|
||||
|
||||
<style>
|
||||
#about-feature {
|
||||
padding: 4rem 0;
|
||||
margin-bottom: 1rem;
|
||||
{% if page.about-featured-image %}
|
||||
background-color: #e9ecef;
|
||||
background-image: url({{ jumboSrc }});
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: {{ page.position | default: 'center' }};{% endif %}
|
||||
}
|
||||
{% if page.padding %}
|
||||
.about-title-box {
|
||||
padding-top: {{ page.padding }};
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
{%- endif -%}
|
||||
.about-title {
|
||||
padding-left: 15% !important;
|
||||
}
|
||||
@media screen and (max-width: 576px) {
|
||||
{% if page.padding %}
|
||||
.about-title-box {
|
||||
padding-top: min({{ page.padding }}, 45vh);
|
||||
}{% endif %}
|
||||
.about-title {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div id="about-feature">
|
||||
<div class="about-title-box">
|
||||
{% if page.heading or page.sub-heading %}
|
||||
<div class="p-2 text-start text-white bg-dark bg-opacity-75 about-title">
|
||||
{% if page.heading %}<h2 class="display-1">{{ page.heading }}</h2>{% endif %}
|
||||
{% if page.sub-heading %}<h3 class="about-tagline h5">{{ page.sub-heading }}</h3>{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div id="about-wrapper">
|
||||
<div id="about-toc-wrapper">
|
||||
{% unless page.toc == false %}
|
||||
<div id="about-toc">
|
||||
<div id="about-toc-title">
|
||||
<button class="btn btn-light" data-bs-toggle="collapse" data-bs-target="#about-toc-list" aria-expanded="false" aria-controls="about-toc-list">
|
||||
Contents
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-down" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div id="about-toc-list" class="collapse" >
|
||||
{% include cb/jekyll-toc.html html=content sanitize=true h_min=1 h_max=3 skip_no_ids=true class="jekyll-toc-list" credits=page.credits %}
|
||||
</div>
|
||||
</div>
|
||||
{% endunless %}
|
||||
</div>
|
||||
<div id="about-contents-wrapper">
|
||||
{{ content }}
|
||||
</div>
|
||||
{% if page.credits == true %}
|
||||
<div id="credits-contents-wrapper">
|
||||
{% include cb/credits.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
91
_layouts/browse.html
Normal file
91
_layouts/browse.html
Normal file
@@ -0,0 +1,91 @@
|
||||
---
|
||||
# collection "Browse" page
|
||||
layout: page
|
||||
custom-foot: js/browse-js.html
|
||||
---
|
||||
{%- assign fields = site.data.config-browse -%}
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-7 col-lg-9">{{ content }}</div>
|
||||
<div class="col-5 col-lg-3 text-end text-lg-start">{% if site.data.theme.advanced-search == true %}{% include advanced-search-modal.html %}{% endif %}</div>
|
||||
</div>
|
||||
<div class="row mb-3 justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<form role="search" id="browseFilter" onsubmit="submitFilter(); return false;">
|
||||
<div class="input-group input-group-lg">
|
||||
{% if site.data.theme.faceted-search == true %}
|
||||
<select class="form-control form-select d-none d-lg-block" id="fieldSelect" style="max-width: 200px;" aria-label="select search field to filter">
|
||||
<option value="all">All Fields</option>
|
||||
<option value="title">Title</option>
|
||||
{% for f in fields %}
|
||||
{% assign cap-field = f.field | capitalize %}
|
||||
<option value="{{ f.field }}">{{ f.facet_name | default: f.display_name | default: cap-field }}</option>
|
||||
{% endfor %}
|
||||
<option value="display_template">Content Type</option>
|
||||
{% if site.data.theme.advanced-search == true %}
|
||||
<option value="" disabled>─────────────</option>
|
||||
<option value="advanced">Advanced Search...</option>{% endif %}
|
||||
</select>
|
||||
<!-- Mobile filter button - shows only on small screens -->
|
||||
<div class="{% if site.data.theme.faceted-search == true %}dropdown d-lg-none{% else %}d-none{% endif %}">
|
||||
<button class="py-3 btn btn-outline-secondary" type="button" id="mobileFilterButton" data-bs-toggle="dropdown" aria-expanded="false" title="Filter options">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-funnel" viewBox="0 0 16 16">
|
||||
<path d="M1.5 1.5A.5.5 0 0 1 2 1h12a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.128.334L10 8.692V13.5a.5.5 0 0 1-.342.474l-3 1A.5.5 0 0 1 6 14.5V8.692L1.628 3.834A.5.5 0 0 1 1.5 3.5v-2zm1 .5v1.308l4.372 4.858A.5.5 0 0 1 7 8.5v5.306l2-.666V8.5a.5.5 0 0 1 .128-.334L13.5 3.308V2h-11z"/>
|
||||
</svg>
|
||||
<span id="selectedField" class="d-none d-sm-inline ms-1">All Fields</span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<button class="dropdown-item" type="button" data-field="all">All Fields</button>
|
||||
<button class="dropdown-item" type="button" data-field="title">Title</button>
|
||||
{% for f in fields %}
|
||||
{% assign cap-field = f.field | capitalize %}
|
||||
<button class="dropdown-item" type="button" data-field="{{ f.field }}">{{ f.facet_name | default: f.display_name | default: cap-field }}</button>
|
||||
{% endfor %}
|
||||
<button class="dropdown-item" type="button" data-field="display_template">Content Type</button>
|
||||
{% if site.data.theme.advanced-search == true %}
|
||||
<div class="dropdown-divider"></div>
|
||||
<button class="dropdown-item" type="button" data-field="advanced">Advanced Search...</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>{% endif %}
|
||||
<input type="text" class="form-control" id="filterTextBox" placeholder="Filter ... " aria-label="Search">
|
||||
<!-- Update the date range inputs section -->
|
||||
<div id="dateRangeInputs" class="date-range-inputs">
|
||||
<div class="date-input-group">
|
||||
<input type="text" id="startDate" class="ms-2 form-control" placeholder="Start Date">
|
||||
<span class="date-separator">to</span>
|
||||
<input type="text" id="endDate" class="me-2 form-control" placeholder="End Date">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-success" type="submit" title="Filter items" id="filterButton" >Search</button>
|
||||
<button class="btn btn-outline-secondary filter d-none d-lg-flex" onclick="resetFilter(); return false;" data-filter="">Reset</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- Active filter indicators -->
|
||||
<div id="activeFilters" class="mt-2 text-start"></div>
|
||||
<div class="h2" id="numberOf"></div>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-secondary mt-1 dropdown-toggle" type="button" id="browseSortButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Sort by <span id="sortFilter">Random</span>
|
||||
</button>
|
||||
<div class="dropdown-menu browse-sort-menu" aria-labelledby="browseSortButton">
|
||||
<button class="dropdown-item browse-sort-item {% if site.data.theme.default-sort-field == '' %}active{% endif %}" data-filter="random">Random</button>
|
||||
<button class="dropdown-item browse-sort-item" data-filter="title">Title</button>
|
||||
{% assign sort_options = site.data.config-browse | where_exp: 'i','i.sort_name != nil' %}
|
||||
{% for o in sort_options %}
|
||||
<button class="dropdown-item browse-sort-item" data-filter="{{ o.field | escape }}">{{ o.sort_name }}</button>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<button class="btn btn-outline-secondary filter p-1 d-lg-none float-end" onclick="resetFilter(); return false;" data-filter="">Reset</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="loadingIcon" class="text-center">
|
||||
<div class="spinner-border text-dark" role="status"><span class="visually-hidden">Loading...</span></div>
|
||||
</div>
|
||||
|
||||
<div class="row" id="browseItems"></div>
|
||||
32
_layouts/cloud.html
Normal file
32
_layouts/cloud.html
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
# Term cloud layout
|
||||
# used by default subjects and location page
|
||||
# can be used for any metadata field cloud
|
||||
layout: page
|
||||
---
|
||||
|
||||
{{ content }}
|
||||
|
||||
{%- comment -%}
|
||||
|
||||
Figure out default "Subjects" and "Locations" page cloud values as configured in in "theme.yml",
|
||||
and set default values for cloud include.
|
||||
|
||||
{%- endcomment -%}
|
||||
{%- if page.cloud-fields == "site.data.theme.subjects-fields" -%}
|
||||
{% assign fields = site.data.theme.subjects-fields %}
|
||||
{% assign min = site.data.theme.subjects-min | default: 1 %}
|
||||
{% assign stopwords = site.data.theme.subjects-stopwords %}
|
||||
{%- elsif page.cloud-fields == "site.data.theme.locations-fields" -%}
|
||||
{% assign fields = site.data.theme.locations-fields %}
|
||||
{% assign min = site.data.theme.locations-min | default: 1 %}
|
||||
{% assign stopwords = site.data.theme.locations-stopwords %}
|
||||
{%- else -%}
|
||||
{% assign fields = page.cloud-fields | default: "subjects" %}
|
||||
{% assign min = page.cloud-min | default: 1 %}
|
||||
{% assign stopwords = page.cloud-stopwords %}
|
||||
{%- endif -%}
|
||||
|
||||
{% assign cloud_id = "cloud-div-" | append: fields | slugify %}
|
||||
<div id="{{ cloud_id }}" class="text-center my-4 bg-{{ page.background | default: 'light' }} border rounded p-2"></div>
|
||||
{% include js/cloud-js.html id=cloud_id fields=fields min=min stopwords=stopwords shuffle=page.shuffle button=page.button %}
|
||||
23
_layouts/data.html
Normal file
23
_layouts/data.html
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
# "Data" page with table and data download options
|
||||
layout: page
|
||||
custom-foot: js/table-js.html
|
||||
---
|
||||
{% assign fields = site.data.config-table | map: 'display_name' %}
|
||||
{% include data-download-modal.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="table-responsive-md">
|
||||
<table id="item-table" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
{% for f in fields %}
|
||||
<th scope="col">{{ f }}</th>
|
||||
{% endfor %}
|
||||
<th>Link</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
17
_layouts/default.html
Normal file
17
_layouts/default.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="h-100">
|
||||
<head prefix="og: http://ogp.me/ns#">
|
||||
{% include head/head.html %}
|
||||
</head>
|
||||
<body class="d-flex flex-column h-100">
|
||||
<div id="skip-to-content"><a href="#maincontent">Skip to main content</a></div>
|
||||
{% include collection-banner.html %}
|
||||
{% include collection-nav.html %}
|
||||
<main id="maincontent" role="main" class="flex-shrink-0">
|
||||
{{ content }}
|
||||
</main>
|
||||
{% include footer.html %}
|
||||
{% include foot.html %}
|
||||
{% include scroll-to-top.html %}
|
||||
</body>
|
||||
</html>
|
||||
30
_layouts/home-infographic.html
Normal file
30
_layouts/home-infographic.html
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
# Default home page with boxes providing collection stats
|
||||
layout: page
|
||||
---
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
|
||||
{% include index/description.html %}
|
||||
{% include index/carousel.html title="Sample Items" %}
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
{% include index/time.html %}
|
||||
|
||||
{% include index/featured-terms.html field="subject" title="Top Subjects" btn-color="primary" %}
|
||||
|
||||
{% include index/featured-terms.html field="location" title="Locations" btn-color="outline-secondary" %}
|
||||
|
||||
{% include index/content.html %}
|
||||
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
|
||||
{% include index/data-download.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
25
_layouts/item/audio.html
Normal file
25
_layouts/item/audio.html
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
# audio item layout with audio player and thumb
|
||||
# Uses <audio> element to embed audio file from object_location as src.
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="card mb-4 text-center">
|
||||
<div class="card-body">
|
||||
|
||||
{% include item/audio-player.html %}
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
{% include item/item-thumb.html %}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
18
_layouts/item/compound_object.html
Normal file
18
_layouts/item/compound_object.html
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
# basic layout for compound object items
|
||||
# uses _includes/item/child/ includes to add multiple objects to the item page in a gallery
|
||||
# each object is represented in a modal
|
||||
layout: item/item-page-base
|
||||
gallery: true
|
||||
custom-foot: js/modal-hash-js.html
|
||||
---
|
||||
{% assign children = site.data[site.metadata] | where_exp: 'item','item.parentid == page.objectid' %}
|
||||
|
||||
<div class="mb-4 ">
|
||||
|
||||
{% include item/child/compound-item-modal-gallery.html %}
|
||||
|
||||
<div class="my-2">
|
||||
{% include item/child/compound-item-download-buttons.html %}
|
||||
</div>
|
||||
</div>
|
||||
19
_layouts/item/image.html
Normal file
19
_layouts/item/image.html
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
# basic image item layout
|
||||
# Displays image_small if available, with fall back to object_location.
|
||||
# Adds gallery view to open images full screen using object_location, with fall back to image_small.
|
||||
layout: item/item-page-base
|
||||
gallery: true
|
||||
---
|
||||
|
||||
<div class="card mb-4 text-center">
|
||||
|
||||
{% include item/image-gallery.html %}
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
46
_layouts/item/item-page-base.html
Normal file
46
_layouts/item/item-page-base.html
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
# base layout for other item display_template layouts
|
||||
# adds breadcrumbs and title at top; citation box, rights box, and browse buttons at bottom
|
||||
layout: default
|
||||
# item-meta adds rich meta markup to the page on production build
|
||||
item-meta: true
|
||||
---
|
||||
<div class="container py-3">
|
||||
|
||||
{% include item/breadcrumbs.html %}
|
||||
<div class="my-0 h5 small">{{ page.display_template | replace: "_", " " | upcase }} {% if page.display_template == "compound_object" or page.display_template == "multiple" %}{% assign children = site.data[site.metadata] | where_exp: 'item','item.parentid == page.objectid' %} ({{ children | size }} Items){% endif %}</div>
|
||||
<h2 class="mb-3">{{ page.title }}
|
||||
{% unless page.display_template == 'record' %}<a href="#metadata" class="ms-5 btn btn-sm btn-outline-dark small">Item Info
|
||||
<svg class="bi icon-sprite" role="img" aria-label="Jump to Item Info">
|
||||
<use xlink:href="{{ '/assets/css/cb-icons.svg' | relative_url }}#arrow-down"/>
|
||||
</svg>
|
||||
</a>{% endunless %}
|
||||
</h2>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-10">
|
||||
|
||||
{{ content }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-10" id="metadata">
|
||||
|
||||
{% include item/metadata.html %}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-5 py-4">
|
||||
{% include item/citation-box.html %}
|
||||
</div>
|
||||
{% if page.rights or page.rightsstatement %}
|
||||
<div class="col-md-5 py-4">
|
||||
{% include item/rights-box.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{%- if site.data.theme.browse-buttons == true -%}
|
||||
{% include item/browse-buttons.html %}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
37
_layouts/item/item-page-full-width.html
Normal file
37
_layouts/item/item-page-full-width.html
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
# base layout for full page item display_template layouts
|
||||
# adds breadcrumbs and title at top; citation box, rights box, and browse buttons at bottom
|
||||
layout: default
|
||||
# item-meta adds rich meta markup in HTML <head> element to the page on production build for better SEO
|
||||
item-meta: true
|
||||
---
|
||||
{% if page.display_template == "compound_object" %}{% assign children = site.data[site.metadata] | where_exp: 'item','item.parentid == page.objectid' %}{% endif %}
|
||||
<div class="container-fluid py-3">
|
||||
|
||||
{% include item/breadcrumbs.html %}
|
||||
<div class="my-0 h5 small">{{ page.display_template | replace: "_", " " | upcase }} {% if page.display_template == "compound_object" %} ({{ children | size }} Items){% endif %}</div>
|
||||
<h2 class="mb-3">{{ page.title }}
|
||||
{% unless page.display_template == 'record' %}<a href="#metadata" class="ms-5 btn btn-sm btn-outline-dark small">Item Info
|
||||
<svg class="bi icon-sprite" role="img" aria-label="Jump to Item Info">
|
||||
<use xlink:href="{{ '/assets/css/cb-icons.svg' | relative_url }}#arrow-down"/>
|
||||
</svg>
|
||||
</a>{% endunless %}
|
||||
</h2>
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="row justify-content-end mt-4">
|
||||
<div class="col-md-5">
|
||||
{% include item/citation-box.html %}
|
||||
</div>
|
||||
{% if page.rights or page.rightsstatement %}
|
||||
<div class="col-md-5">
|
||||
{% include item/rights-box.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{%- if site.data.theme.browse-buttons == true -%}
|
||||
{% include item/browse-buttons.html %}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
20
_layouts/item/item.html
Normal file
20
_layouts/item/item.html
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
# generic fallback item page layout
|
||||
# displays image or icon depending on "image_thumb"
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="card mb-4 text-center">
|
||||
<div class="card-body">
|
||||
|
||||
<p>
|
||||
{% include item/item-thumb.html %}
|
||||
</p>
|
||||
<div class="mt-2">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
26
_layouts/item/multiple.html
Normal file
26
_layouts/item/multiple.html
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
# layout for "multiple" display template
|
||||
# creates large images with a gallery feature
|
||||
layout: item/item-page-base
|
||||
gallery: true
|
||||
---
|
||||
{% assign children = site.data[site.metadata] | where_exp: 'item','item.parentid == page.objectid' %}
|
||||
|
||||
<div class="mb-4 text-center">
|
||||
|
||||
{% for child in children %}
|
||||
<div id="{{ child.objectid }}" class="mb-4">
|
||||
<a class="spotlight gallery-img" {% if child.object_location %}data-download="true"{% endif %} title="{% if page.title != child.title %}{{ child.title | escape }}{% else %}{{ page.title | escape }} [{{ forloop.index }}]{% endif %}" href="{{ child.object_location | default: child.image_small | relative_url }}">
|
||||
<img src="{{ child.image_small | relative_url }}" alt="{{ child.image_alt_text | default: child.description | default: child.title | default: page.title | escape }}" class="img-fluid mb-2">
|
||||
{% if page.title != child.title %}<div><small class="text-dark">{{ child.title }}</small></div>{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="my-2">
|
||||
|
||||
{% include item/child/compound-item-download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
17
_layouts/item/panorama.html
Normal file
17
_layouts/item/panorama.html
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
# panorama item layout
|
||||
# adds panorama viewer using Pannellum
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="mb-4 text-center">
|
||||
|
||||
{% include item/panorama.html %}
|
||||
|
||||
<div class="my-2">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
20
_layouts/item/pdf.html
Normal file
20
_layouts/item/pdf.html
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
# basic layout for PDF documents
|
||||
# Displays image_small if available, with fall back to image_thumb, or a pdf icon.
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="card mb-4 text-center">
|
||||
<div class="card-body">
|
||||
<p>
|
||||
{% include item/item-thumb.html %}
|
||||
</p>
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
17
_layouts/item/record.html
Normal file
17
_layouts/item/record.html
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
# basic layout intended for metadata only type item, designed for linking to external source
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="mb-4 text-center">
|
||||
|
||||
{% if page.image_small or page.image_thumb %}
|
||||
<p>
|
||||
{% include item/item-thumb.html %}
|
||||
</p>
|
||||
{% endif %}
|
||||
<div class="my-2">
|
||||
{% include item/download-buttons.html %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
23
_layouts/item/video.html
Normal file
23
_layouts/item/video.html
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
# basic video item layout
|
||||
# Displays a video embedded on the page with default support for video files (using <video> element with object_location as src, MP4 is most compatible format), YouTube (from full link in object_location), or Vimeo videos (from full link in object_location).
|
||||
layout: item/item-page-base
|
||||
---
|
||||
|
||||
<div class="card mb-4 text-center">
|
||||
<div class="card-body">
|
||||
|
||||
{% if page.object_location contains 'vimeo' or page.object_location contains 'youtu' %}
|
||||
{% include item/video-embed.html %}
|
||||
{% else %}
|
||||
{% include item/video-player.html %}
|
||||
{% endif %}
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
{% include item/download-buttons.html %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
7
_layouts/map.html
Normal file
7
_layouts/map.html
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# Default leaflet map page
|
||||
layout: default
|
||||
custom-foot: js/map-js.html
|
||||
---
|
||||
<h2 class="visually-hidden">Map of Collection Items</h2>
|
||||
<div id="mapContainer"></div>
|
||||
7
_layouts/page-full-width.html
Normal file
7
_layouts/page-full-width.html
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# Sets page in container-fluid to fill window with min gutter
|
||||
layout: default
|
||||
---
|
||||
<div class="container-fluid my-4">
|
||||
{{ content }}
|
||||
</div>
|
||||
10
_layouts/page-narrow.html
Normal file
10
_layouts/page-narrow.html
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# limits the content block to narrow size
|
||||
# max-width is set in _pages.scss using .page-narrow selector
|
||||
layout: default
|
||||
---
|
||||
<div class="container my-4">
|
||||
<div class="page-narrow">
|
||||
{{ content }}
|
||||
</div>
|
||||
</div>
|
||||
7
_layouts/page.html
Normal file
7
_layouts/page.html
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# generic page layout
|
||||
layout: default
|
||||
---
|
||||
<div class="container my-4">
|
||||
{{ content }}
|
||||
</div>
|
||||
47
_layouts/search.html
Normal file
47
_layouts/search.html
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
# Lunr search page
|
||||
layout: page
|
||||
custom-foot: js/lunr-js.html
|
||||
---
|
||||
{%- assign fields = site.data.config-search | where: 'index',true | map: 'field' -%}
|
||||
<!-- Button trigger modal -->
|
||||
<button type="button" class="btn btn-outline-primary float-end" data-bs-toggle="modal" data-bs-target="#operators">Search Options</button>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="operators" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalLabel">Lunr Search Options</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>These advanced options can be added to your query in the search box to refine your results:</p>
|
||||
<ul>
|
||||
<li>Search a specific field: use the field name, colon, then your query, e.g. <code>title:foo</code>, <code>date:1911</code>, <code>subject:tree</code>. In this collection you can use {{ fields | join: ", " }}.</li>
|
||||
<li>Wildcards: add <code>*</code> to match any character(s), e.g. <code>foo*</code>, <code>*oo</code>. This is helpful for using a root to find words with all related endings.</li>
|
||||
<li>Fuzzy match: add <code>~</code> plus a number at the end of your query to specify a higher level of fuzziness in search, e.g. <code>foo~1</code>. This can help with misspellings.</li>
|
||||
<li>Boost term: add <code>^</code> plus a number to boost the relevance of a term in your query, e.g. <code>foo^10</code>. This can help reduce clutter of unrelated results if one of your terms is most important.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="ms-3 mt-3">
|
||||
<form class="" role="search" id="lunrSearch" onsubmit="lunr_search(); return false;">
|
||||
<div class="input-group input-group-lg">
|
||||
<input id="lunrSearchBox" class="form-control " type="text" placeholder="Enter your search term..." >
|
||||
<button class="btn btn-success" type="submit">
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<table id="lunrResults" class="table table-responsive"></table>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<p class="text-muted">Fuzzy search powered by <a href="https://lunrjs.com/">Lunr.js</a>. <em>May take a second to load large collections!</em></p>
|
||||
</div>
|
||||
74
_layouts/timeline.html
Normal file
74
_layouts/timeline.html
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
# "Timeline" page
|
||||
layout: page
|
||||
custom-foot: js/timeline-js.html
|
||||
---
|
||||
{%- assign field = site.data.theme.timeline-field | default: page.timeline-field | default: "date" -%}
|
||||
{% if site.data.theme.timeline-child-objects == true %}
|
||||
{%- assign items = site.data[site.metadata] | where_exp: 'item','item.objectid' -%}
|
||||
{% else %}
|
||||
{%- assign items = site.data[site.metadata] | where_exp: 'item','item.objectid and item.parentid == nil' -%}
|
||||
{% endif %}
|
||||
{%- assign items = items | where_exp: 'item','item[field]' | sort: field -%}
|
||||
{%- assign raw-dates = items | map: field | compact | uniq -%}
|
||||
{%- capture clean-years -%}{% for date in raw-dates %}{% if date contains "-" %}{{ date | strip | split: "-" | first }}{% elsif date contains "/" %}{{ date | strip | split: "/" | last }}{% else %}{{ date | strip }}{% endif %}{% unless forloop.last %};{% endunless %}{%- endfor -%}{%- endcapture -%}
|
||||
{%- assign uniqueYears = clean-years | replace: ";;",";" | split: ";" | compact | uniq | sort -%}
|
||||
{%- if site.data.theme.year-navigation -%}
|
||||
{%- assign navYears = site.data.theme.year-navigation | split: ";" -%}
|
||||
{%- elsif site.data.theme.year-nav-increment -%}
|
||||
{%- capture navYears -%}
|
||||
{%- for i in uniqueYears -%}{%- assign t = i | modulo: site.data.theme.year-nav-increment -%}
|
||||
{%- if t == 0 -%}{{ i }}{% unless forloop.last %};{% endunless %}{% endif %}{% endfor %}{%- endcapture -%}
|
||||
{%- assign navYears = navYears | split: ";" -%}
|
||||
{%- endif -%}
|
||||
{%- if navYears -%}
|
||||
<div class="dropdown float-end" id="year-nav">
|
||||
<button class="btn btn-primary dropdown-toggle" type="button" id="yearButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Year
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="yearButton">
|
||||
{% for y in navYears %}
|
||||
<a class="dropdown-item" href="#y{{ y }}">{{ y }}</a>{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
||||
{{ content }}
|
||||
|
||||
<h3><a href="#y{{ uniqueYears | first }}">{{ uniqueYears | first }}</a> to <a href="#y{{ uniqueYears | last }}">{{ uniqueYears | last }}</a></h3>
|
||||
|
||||
<table id="timeline" class="table table-striped">
|
||||
<tbody>
|
||||
{% for year in uniqueYears %}
|
||||
<tr id="y{{ year }}">
|
||||
<th>
|
||||
<h3>{{ year }}</h3>
|
||||
</th>
|
||||
<td>
|
||||
<div class="row">
|
||||
{%- assign inYear = items | where_exp: 'item', 'item[field] contains year' -%}
|
||||
{% for item in inYear %}
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<a href="{{ '/items/' | relative_url }}{% if item.parentid %}{{ item.parentid }}.html#{{ item.objectid }}{% else %}{{ item.objectid }}.html{% endif %}" >
|
||||
{% if item.image_thumb %}
|
||||
<img class="lazyload img-thumbnail timeline-thumb" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3C/svg%3E" data-src="{{ item.image_thumb | relative_url }}" alt="{{ item.image_alt_text | default: item.description | default: item.title | escape }}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{ item.title | escape }}">
|
||||
{% else %}
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<div class="h5 text-dark">{{ item.title }}</div>
|
||||
<svg class="bi timeline-thumb text-body" fill="currentColor" aria-hidden="true">
|
||||
{%- assign icon_template = item.display_template | default: item.format -%}
|
||||
<use xlink:href="{{ '/assets/css/cb-icons.svg' | relative_url }}#{% if icon_template contains 'image' %}icon-image{% elsif icon_template contains 'pdf' %}icon-pdf{% elsif icon_template contains 'audio' %}icon-audio{% elsif icon_template contains 'video' %}icon-video{% elsif icon_template contains 'panorama' %}icon-panorama{% elsif icon_template contains 'compound' %}icon-compound-object{% elsif icon_template contains 'multiple' %}icon-multiple{% else %}icon-default{% endif %}"/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
Reference in New Issue
Block a user