spotlight-frontend 5.2.4 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,7 +3,7 @@ spotlight
3
3
 
4
4
  ![CI](https://github.com/projectblacklight/spotlight/workflows/CI/badge.svg) | [![Gem Version](https://badge.fury.io/rb/blacklight-spotlight.png)](http://badge.fury.io/rb/blacklight-spotlight) | [Release Notes](https://github.com/projectblacklight/spotlight/releases) | [Design Documents](https://github.com/projectblacklight/spotlight/releases/tag/v0.0.0)
5
5
 
6
- Spotlight is open source software that enables librarians, curators, and other content experts to easily build feature-rich websites that showcase collections and objects from a digital repository, uploaded items, or a combination of the two. Spotlight is a plug-in for [Blacklight](https://github.com/projectblacklight/blacklight), an open source, Ruby on Rails Engine that provides a basic discovery interface for searching an Apache Solr index.
6
+ Spotlight is open source software that enables librarians, curators, and other content experts to easily build feature-rich websites that showcase collections and objects from a digital repository, uploaded items, or a combination of the two. Spotlight is a Ruby on Rails engine that extends [Blacklight](https://github.com/projectblacklight/blacklight), which provides a basic discovery interface for searching an Apache Solr index.
7
7
 
8
8
  In addition to the information found below, you can read more about what Spotlight is, our motivations for creating it, and how to configure it in the [wiki pages](https://github.com/projectblacklight/spotlight/wiki). You might also want to take a look at our demo videos, especially the [tour of a completed Spotlight exhibit](https://www.youtube.com/watch?v=_A7vTbbiF4g) and the walkthrough of [building an exhibit with Spotlight](https://www.youtube.com/watch?v=qPJtgajJ4ic).
9
9
 
@@ -11,10 +11,13 @@ If you have questions or are interested in contributing, please reach out to the
11
11
 
12
12
  ## Requirements
13
13
 
14
- 1. [Ruby](https://www.ruby-lang.org/) 3.2+
15
- 2. [Ruby on Rails](https://rubyonrails.org/) 7.1+
16
- 3. Java (11 or greater) *for Solr*
17
- 4. ImageMagick (http://www.imagemagick.org/script/index.php) due to [carrierwave](https://github.com/carrierwaveuploader/carrierwave#adding-versions)
14
+ - [Ruby](https://www.ruby-lang.org/) 3.2+
15
+ - [Ruby on Rails](https://rubyonrails.org/) 7.1+
16
+ - Java (11 or greater) *for Solr*
17
+ - [ImageMagick](http://www.imagemagick.org/script/index.php) if using riiif (current default for `config.iiif_service`)
18
+ - See [riiif](https://github.com/sul-dlss/riiif) configuration instructions for alternatives to ImageMagick (ex. libvips)
19
+ - May also be needed if adding custom [carrierwave](https://github.com/carrierwaveuploader/carrierwave) uploaders to Spotlight
20
+
18
21
 
19
22
  ## Installation
20
23
 
@@ -245,6 +248,23 @@ From the project root, delete the test app (if you want to regenerate from scrat
245
248
  ```
246
249
  $ rake engine_cart:clean
247
250
  ```
251
+
252
+ ### Core Architecture
253
+
254
+ A brief orientation to this codebase
255
+
256
+ #### Key Concepts & Models
257
+ - **Exhibits (`Spotlight::Exhibit`):** The primary organizational container for exhibits.
258
+ - **Pages (`Spotlight::Page` / `Spotlight::HomePage`):** Curated pages inside an exhibit. It uses Sir Trevor for rich text block editing.
259
+ - **Custom Fields (`Spotlight::CustomField`):** Admin-defined fields added to exhibit items (e.g., multivalued text fields, read-only metadata fields).
260
+ - **Sidecars (`Spotlight::SolrDocumentSidecar`):** Database-backed extensions to Solr documents, allowing exhibit-specific metadata to persist locally.
261
+ - **Resources (`Spotlight::Resource`):** External or uploaded content that gets converted into Solr documents.
262
+
263
+ #### Frontend Asset Structure
264
+ - **Source JavaScript:** Resides in `app/javascript/spotlight/` (e.g., admin widgets, custom field behaviors).
265
+ - **Core Orchestration:** `app/javascript/spotlight/index.js` listens to page loads and instantiates class components (e.g., `new AddAnother().connect()`).
266
+ - **Standard:** Spotlight prefers standard, modern JavaScript (ES6+) and is migrating away from jQuery dependencies.
267
+
248
268
  ## Spotlight Community
249
269
 
250
270
  See [Contributing to Spotlight](/CONTRIBUTING.md) for general information about participation in the Spotlight community.