Files
bqkc/assets/data/timelinejs.json
Nasir Anthony Montalvo 526096840e Initial commit
2025-11-13 14:48:58 -06:00

43 lines
2.1 KiB
JSON

---
# generate time-focused json data suitable for TimelineJS, https://timeline.knightlab.com/docs/json-format.html
# includes all items in metadata that have a "date" field filled.
# current using relative_url due to jekyll bug, should be absolute_url in production!
# to just feature parent objects of compound objects, you will want to change the where_exp below to "where_exp: 'item','item.parentid == nil'"
---
{%- assign items = site.data[site.metadata] | where_exp: 'item','item.objectid' | where_exp: 'item', 'item.date' -%}
{
"title": {
"media": {
"url": "{{ site.data.featured_item.src | relative_url }}",
"alt": {{ site.data.featured_item.alt | jsonify }},
"caption": {{ site.data.featured_item.title | jsonify }},
"credit": {{ site.title | jsonify }}
},
"text": {
"headline": {{ site.title | append: ' Timeline' | jsonify }},
"text": {{ site.description | jsonify }}
}
},
"events": [
{% for item in items %}{
"media": {
"url": "{{ item.image_small | default: item.image_thumb | default: item.object_location | relative_url }}",
"alt": {{ item.image_alt_text | default: item.description | default: item.title | jsonify }},
"caption": {{ item.title | jsonify }},
"link": "{{ '/items/' | relative_url }}{% if item.parentid %}{{ item.parentid }}.html#{{ item.objectid }}{% else %}{{ item.objectid }}.html{% endif %}"
},
"start_date": {
{% if item.date contains '-' %}{% assign dates = item.date | strip | split: '-' %}
"month": "{{ dates[1] }}",
"day": "{{ dates[2] }}",
"year": "{{ dates[0] }}"{% elsif item.date contains '/' %}"year": "{{ item.date | strip | split: '/' | last }}"{% else %}
"year": "{{ item.date }}"{% endif %}
},
"text": {
"headline": {{ item.title | jsonify }}{% if item.description %},
"text": {{ item.description | jsonify }}{% endif %}
}
}{% unless forloop.last %},{% endunless %}{% endfor %}
]
}