reconnect
This commit is contained in:
11
.github/_layouts/about-narrow.html
vendored
Normal file
11
.github/_layouts/about-narrow.html
vendored
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 %}
|
||||
116
.github/_layouts/about.html
vendored
Normal file
116
.github/_layouts/about.html
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
---
|
||||
# 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" %}
|
||||
</div>
|
||||
</div>
|
||||
{% endunless %}
|
||||
</div>
|
||||
<div id="about-contents-wrapper">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const tocLinks = document.querySelectorAll("#about-toc-list a");
|
||||
const headings = document.querySelectorAll("h1, h2, h3");
|
||||
|
||||
let activeId = null;
|
||||
|
||||
const observer = new IntersectionObserver(
|
||||
entries => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
activeId = entry.target.id;
|
||||
|
||||
tocLinks.forEach(link => link.classList.remove("active"));
|
||||
|
||||
const activeLink = document.querySelector(
|
||||
`#about-toc-list a[href="#${activeId}"]`
|
||||
);
|
||||
|
||||
if (activeLink) {
|
||||
activeLink.classList.add("active");
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
{
|
||||
rootMargin: "-20% 0px -60% 0px",
|
||||
threshold: 0
|
||||
}
|
||||
);
|
||||
|
||||
headings.forEach(heading => observer.observe(heading));
|
||||
});
|
||||
</script>
|
||||
108
.github/_layouts/browse.html
vendored
Normal file
108
.github/_layouts/browse.html
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
---
|
||||
layout: page
|
||||
custom-foot: js/browse-js.html
|
||||
---
|
||||
{%- assign fields = site.data.config-browse -%}
|
||||
|
||||
<!-- Welcome Header and Description -->
|
||||
{%- assign fields = site.data.config-browse -%}
|
||||
|
||||
<!-- Show the Welcome Text only on the Browse page -->
|
||||
{% if page.url == '/browse/' %}
|
||||
<div class="row mb-4">
|
||||
<div class="col-lg-12 text-center">
|
||||
<h1>welcome_to_the_archive</h1>
|
||||
<p class="lead">Browse through materials from the archive by scrolling freely, or using the search bar to filter items by keywords in our archival metadata. You can use keywords like "pageant" or "Gary" to find people, events, locations, content types, or whatever you're looking for.</p>
|
||||
<p class="small text-muted"><a href="/read/soakies/">Learn more about the materials within this archive ></a></p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<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" data-bs-toggle="tooltip" title="The content type (e.g. image, video, document)">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" data-bs-toggle="tooltip" title="The content type (e.g. image, video, document)">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">
|
||||
<div id="dateRangeInputs" class="date-range-inputs">
|
||||
<div class="date-input-group">
|
||||
<input type="text" id="dateCreated" class="ms-2 form-control" placeholder="Enter Date (Text)">
|
||||
</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>
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Active filter indicators -->
|
||||
<div id="activeFilters" class="mt-2 text-start"></div>
|
||||
<div class="h2" id="numberOf"></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
.github/_layouts/cloud.html
vendored
Normal file
32
.github/_layouts/cloud.html
vendored
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 %}
|
||||
14
.github/_layouts/data.html
vendored
Normal file
14
.github/_layouts/data.html
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
# "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 }}
|
||||
|
||||
{% include data-table.html %}
|
||||
|
||||
</div>
|
||||
|
||||
17
.github/_layouts/default.html
vendored
Normal file
17
.github/_layouts/default.html
vendored
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>
|
||||
36
.github/_layouts/home-infographic.html
vendored
Normal file
36
.github/_layouts/home-infographic.html
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
# Default home page with boxes providing collection stats
|
||||
layout: page
|
||||
---
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p class="section-label">Description</p>
|
||||
{% include index/description.html %}
|
||||
|
||||
<p class="section-label mt-4">From The Archive</p>
|
||||
{% include index/carousel.html %}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
||||
<p class="section-label">Top Subjects</p>
|
||||
{% include index/featured-terms.html field="subject" btn-color="primary" %}
|
||||
|
||||
<p class="section-label mt-4">Locations</p>
|
||||
{% include index/featured-terms.html field="location" btn-color="outline-secondary" %}
|
||||
|
||||
<p class="section-label mt-4">Content</p>
|
||||
{% include index/content.html %}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 mt-4">
|
||||
|
||||
<p class="section-label">Collection as Data</p>
|
||||
{% include index/data-download.html %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
25
.github/_layouts/item/audio.html
vendored
Normal file
25
.github/_layouts/item/audio.html
vendored
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
.github/_layouts/item/compound_object.html
vendored
Normal file
18
.github/_layouts/item/compound_object.html
vendored
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
.github/_layouts/item/image.html
vendored
Normal file
19
.github/_layouts/item/image.html
vendored
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
.github/_layouts/item/item-page-base.html
vendored
Normal file
46
.github/_layouts/item/item-page-base.html
vendored
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
.github/_layouts/item/item-page-full-width.html
vendored
Normal file
37
.github/_layouts/item/item-page-full-width.html
vendored
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
.github/_layouts/item/item.html
vendored
Normal file
20
.github/_layouts/item/item.html
vendored
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
.github/_layouts/item/multiple.html
vendored
Normal file
26
.github/_layouts/item/multiple.html
vendored
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
.github/_layouts/item/panorama.html
vendored
Normal file
17
.github/_layouts/item/panorama.html
vendored
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
.github/_layouts/item/pdf.html
vendored
Normal file
20
.github/_layouts/item/pdf.html
vendored
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
.github/_layouts/item/record.html
vendored
Normal file
17
.github/_layouts/item/record.html
vendored
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
.github/_layouts/item/video.html
vendored
Normal file
23
.github/_layouts/item/video.html
vendored
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>
|
||||
20
.github/_layouts/map.html
vendored
Normal file
20
.github/_layouts/map.html
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
# Default leaflet map page
|
||||
layout: default
|
||||
custom-foot: js/map-js.html
|
||||
---
|
||||
|
||||
<div class="container map-page">
|
||||
|
||||
<header class="map-intro">
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p>
|
||||
Use this map to explore the locations of materials in the archive. Click on the markers to look at items associated with each location.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div id="map"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="mapContainer"></div>
|
||||
7
.github/_layouts/page-full-width.html
vendored
Normal file
7
.github/_layouts/page-full-width.html
vendored
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
.github/_layouts/page-narrow.html
vendored
Normal file
10
.github/_layouts/page-narrow.html
vendored
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
.github/_layouts/page.html
vendored
Normal file
7
.github/_layouts/page.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
# generic page layout
|
||||
layout: default
|
||||
---
|
||||
<div class="container my-4">
|
||||
{{ content }}
|
||||
</div>
|
||||
47
.github/_layouts/search.html
vendored
Normal file
47
.github/_layouts/search.html
vendored
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
.github/_layouts/timeline.html
vendored
Normal file
74
.github/_layouts/timeline.html
vendored
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