Files
bqkc/docs/cloud.md
Nasir Anthony Montalvo 526096840e Initial commit
2025-11-13 14:48:58 -06:00

70 lines
3.0 KiB
Markdown

# Create Cloud Visualizations
## Built-in clouds
For simplicity, the default CB theme has two pre-configured cloud visualization pages pre-configured named "Subjects" and "Locations".
These can be configured using variables in the "_data/theme.yml" to generate clouds from any field(s) in your metadata (not necessarily just a "subject" or "location" field).
The theme options look like:
```
# Subject page
subjects-fields: subject;creator # set of fields separated by ; to be featured in the cloud
subjects-min: 1 # min size for subject cloud, too many terms = slow load time!
subjects-stopwords: # set of subjects separated by ; that will be removed from display, e.g. boxers;boxing
# Locations page
locations-fields: location # set of fields separated by ; to be featured in the cloud
locations-min: 1 # min size for subject cloud, too many terms = slow load time!
locations-stopwords: # set of subjects separated by ; that will be removed from display, e.g. boxers;boxing
```
The files "pages/subjects.md" and "pages/locations.md" pull in these values to create the default cloud pages.
The settings also create matching data outputs in the "/assets/data/" folder.
If `subjects-fields` or `locations-fields` is blank or commented out, the template will not build out the related cloud page or data, which saves build time.
If you are developing a particularly large collection, you can comment out these options to make rebuild much quicker.
Keep in mind these page stubs (`/subjects.html`, `/locations.html`) will also have to be present in "config-nav.csv" to show up in your navigation, and to have the data files to show up in data download options.
## Cloud Layout and Front matter
Custom cloud pages can be easily created using the cloud layout and page front matter.
Create a new page stub with standard front matter, and add these cloud values:
- `cloud-fields:`, with a value of a set of fields separated by `;` to be featured in the cloud.
- `cloud-min:` (optional), with a integer value such as `2`.
- `cloud-stopwords:` (optional), with a set of terms separated by `;` that will be removed from display.
For example, to create an "Authors" cloud page, create a file named "authors.md" in the "pages" folder.
Edit the "authors.md" with this front matter and content:
```
---
title: Authors
layout: cloud
permalink: /authors.html
cloud-fields: creator
cloud-min:
cloud-stopwords:
---
## Browse Authors
Example custom cloud page.
```
## Cloud include
Clouds can also be directly added to any page using the "_include/js/cloud-js.html" include in the page stub content.
This makes it possible to embed a cloud anywhere in other interpretive content pages.
First, add a div with `id="cloud"` where you want the cloud to display.
Then below the div add the cloud-js include and provide the variable `fields`, and optionally variables `min` and `stopwords`.
For example:
```
<div id="cloud" class="text-center my-4 bg-light border rounded p-2"></div>
{% include js/cloud-js.html fields="creator;publisher" min=2 stopwords="example;another" %}
```