Skip to content

Commit 11a9c16

Browse files
authored
Merge pull request #236 from alliomeria/1.5.0
Various Docs Updates
2 parents d20b0e4 + 83e675e commit 11a9c16

11 files changed

+200
-133
lines changed

.github/pull_request_template.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ This pull request addresses the documentation Issue# ...
22

33
The pull request includes the following changes ...
44

5+
---
56

6-
7-
8-
Please share your review and feedback @alliomeria
7+
*PR Review Process Note:*
8+
Add @alliomeria as a reviewer when submitting this PR. Thank you!

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Finally, Archipelago tries to stay humble, slim, and nimble in nature with a sma
1919
We recommend you start with the [Core Documentation Guides listed here](101_guides_list.md) as you begin your Archipelago explorations.
2020

2121
# Contributing
22-
Archipelago welcomes and appreciates any type of contribution, from use cases and needs, questions, documentation, devops and configuration and -- of course -- code, fixes, or new features. To make the process less painful, we recommend you first to read our documentation and deploy a local instance. After that please follow [this set of guidelines](docs/giveortake.md) to help you get started.
22+
Archipelago welcomes and appreciates any type of contribution, from use cases and needs, questions, documentation, devops and configuration and -- of course -- code, fixes, or new features. To make the process less painful, we recommend you first to read our documentation and deploy a local instance. After that, to contribute to Archipelago's codebase please follow [this set of guidelines](docs/giveortake.md) to help you get started. To contribute to Archipelago's documentation, please follow [this guide](docs/documentation_about.md).
2323

2424
## Caring & Documenting & Coding + Fixing
2525
* [Allison Sherrick](https://github.com/alliomeria)

docs/101_guides_list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Top 10 guides we recommend you review as you get started working with Archipelag
1414

1515
2. [Strawberryfield Formatters](strawberryfield-formatters.md): overview of the general setup of an Archipelago Digital Object (ADO) page and the way your ADO JSON metadata and data are output
1616

17-
3. [Primer on Display Modes & How to Create a Webform as an Input Method](webformsasinput.md): deeper look at Display Modes and Form Modes, two ways you'll be interacting with your ADOs most frequently
17+
3. [Primer on Display Modes](primerdisplaymodes.md) & [How to Create a Webform as an Input Method](webformsasinput.md): deeper look at Display Modes and Form Modes, two ways you'll be interacting with your ADOs most frequently
1818

1919
4. [Twig Templates and Archipelago](metadatatwigs.md): a great place to dive into one of Archipelago's best loved feature areas
2020

docs/archipelago-glossary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ A Display Mode is a configureable page layout, using Formatters and other option
9090

9191
Display Mode and View Mode can be used interchangeably.
9292

93-
Related documentation: [Primer on Display Modes](webformsasinput.md).
93+
Related documentation: [Primer on Display Modes](primerdisplaymodes.md).
9494

9595
### Find and Replace
9696

docs/createdisplaymodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags:
88

99
# Creating Display/View Modes for Archipelago Digital Objects
1010

11-
We recommend checking out our [primer on Display Modes](webformsasinput.md) for a broader overview on Form Modes and View Modes for Archipelago Digital Objects (ADOs).
11+
We recommend checking out our [primer on Display Modes](primerdisplaymodes.md) for a broader overview on Display/View Modes for Archipelago Digital Objects (ADOs).
1212

1313
## Adding a new View Mode
1414

docs/creatingformmodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags:
88

99
# Creating Form Modes for Archipelago Digital Objects
1010

11-
We recommend checking out our [primer on Display Modes](webformsasinput.md) for a broader overview on Form Modes and View Modes for Archipelago Digital Objects (ADOs).
11+
We recommend checking out our related [How to Create a Webform as an Input Method for Archipelago Digital Objects (ADO) guide](webformsasinput.md) for a broader overview on Form Modes for Archipelago Digital Objects (ADOs).
1212

1313
## Adding a new Form Mode
1414

docs/documentation_workflow.md

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,41 @@ tags:
66
- Examples
77
---
88

9-
# GitHub Workflow
9+
# GitHub Workflow - Two Ways
10+
11+
### Route A - GitHub via web interface
12+
13+
1. First, either open a new Issue in the [Archipelago Documentation Github Repo](https://github.com/esmero/archipelago-documentation) describing the new documentation you would like to contribute, or reply to an existing Issue that you would like to address. Tag `@alliomeria` to request feedback. Since our team is consistently working on new and updating existing documentation, please wait for review and guidance before proceeding with creating the new documentation you described in your new Issue or comments on an existing documentation Issue.
14+
2. [Fork the documentation repo](https://github.com/esmero/archipelago-documentation). If you're not familiar with forking [see this guide](https://docs.github.com/en/get-started/quickstart/fork-a-repo).
15+
3. In your local fork of Archipelago's documentation, before proceeding with making changes to existing or adding new documentations guides, make sure you first select 'Sync Fork' and that the local fork branch you are working on is up-to-date with the same branch in the main documentation repo.
16+
4. Working in your synced, up-to-date local fork, proceed with navigating to the existing documentation guides you would like to edit, or proceed with creating a new guide as related to the Issue you followed up on in Step 1.
17+
5. Commit your changes (whether edits or new additions) and add notes describing what is part of the committed changes.
18+
6. If this is new documentation add it to the `nav` section of the `mkdocs.yml` configuration file at the root of the repo. For example:
19+
```yaml hl_lines="7"
20+
nav:
21+
- Home: index.md
22+
- About Archipelago:
23+
- Archipelago's Philosophy & Guiding Principles: ourtake.md
24+
- Strawberryfields Forever: strawberryfields.md
25+
- Software Services: devops.md
26+
- New Documentation: new_documentation.md
27+
- Code of Conduct: CODE_OF_CONDUCT.md
28+
- Instructions and Guides:
29+
- Archipelago-Deployment:
30+
- Start: archipelago-deployment-readme.md
31+
- Installing Archipelago Drupal 9 on OSX (macOS): archipelago-deployment-osx.md
32+
- Installing Archipelago Drupal 9 on Ubuntu 18.04 or 20.04: archipelago-deployment-ubuntu.md
33+
- Installing Archipelago Drupal 9 on Windows 10/11: archipelago-deployment-windows.md
34+
- Adding Demo Archipelago Digital Objects (ADOs) to your Repository: archipelago-deployment-democontent.md
35+
...
36+
```
37+
7. [Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) and link to the Issue by tagging it, e.g. `Resolves #100`.
38+
8. Please tag `@alliomeria` when you are ready for your contributed documentation to be reviewed. Our team will review and provide feedback, and let you know when your contributed documentation is merged. Thank you in advance for your time and efforts to create documentation for Archipelago's community!
39+
40+
41+
### Route B - GitHub via local desktop client with optional local build and preview
42+
43+
This pathway is not necessary for most documentation contributions.
1044

1145
1. First, either open a new Issue in the [Archipelago Documentation Github Repo](https://github.com/esmero/archipelago-documentation) describing the new documentation you would like to contribute, or reply to an existing Issue that you would like to address. Tag `@alliomeria` to request feedback. Since our team is consistently working on new and updating existing documentation, please wait for review and guidance before proceeding with creating the new documentation you described in your new Issue or comments on an existing documentation Issue.
1246
2. [Fork the documentation repo](https://github.com/esmero/archipelago-documentation). If you're not familiar with forking [see this guide](https://docs.github.com/en/get-started/quickstart/fork-a-repo).
@@ -44,12 +78,12 @@ tags:
4478
```
4579
You may need to install Python on your machine. [Download Python](https://www.python.org/downloads/) or use your favorite operating system package manager such as Homebrew.
4680

47-
8. Now you can build the site locally, e.g. for the documentation using the 1.4.0 branch:
81+
8. Now you can build the site locally, e.g. for the documentation using the 1.5.0 branch:
4882
```shell
49-
mike deploy 1.4.0
50-
mike set-default 1.4.0
83+
mike deploy 1.5.0
84+
mike set-default 1.5.0
5185
```
52-
If you create a new branch to match the issue number as in step 3, you would use your branch instead of 1.4.0. For example, a branch of ISSUE-129.
86+
If you create a new branch to match the issue number as in step 3, you would use your branch instead of 1.5.0. For example, a branch of ISSUE-129.
5387
```shell
5488
mike deploy ISSUE-129
5589
mike set-default ISSUE-129
@@ -65,7 +99,7 @@ tags:
6599
git commit -m "Create new docs with useful information."
66100
git push origin ISSUE-100
67101
```
68-
12. [Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) and link to the issue by tagging it, e.g. `Resolves #100`.
102+
12. [Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) and link to the Issue by tagging it, e.g. `Resolves #100`.
69103

70104
13. Please tag `@alliomeria` when you are ready for your contributed documentation to be reviewed. Our team will review and provide feedback, and let you know when your contributed documentation is merged. Thank you in advance for your time and efforts to create documentation for Archipelago's community!
71105

docs/embargo.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ In order to enforce the Embargo options noted above, you have multiple options f
103103

104104
### Display Mode Formatter Configuration Options
105105

106-
First, to better understand this functionality area, please first familiarize yourself with Archipelago's [Primer on Display Modes](webformsasinput.md) and [Strawberryfield Formatters](strawberryfield-formatters.md).
106+
First, to better understand this functionality area, please first familiarize yourself with Archipelago's [Primer on Display Modes](primerdisplaymodes.md) and [Strawberryfield Formatters](strawberryfield-formatters.md).
107107

108108
For every Display Mode you have configured for your Digital Objects and Digital Object Collection (Compounds/Creative Work Series), you can configure Embargo settings within the corresponding Strawberryfield Formatter.
109109

docs/primerdisplaymodes.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
title: Primer on Display Modes
3+
tags:
4+
- Webform
5+
- View Mode
6+
- Display Mode
7+
- Manage Display
8+
- Handler
9+
---
10+
11+
# Primer on Display Modes
12+
13+
Drupal provides a lot of out-of-the-box functionality to setup the way Content Entities (Nodes or in our case Archipelago Digital Objects, ADOs) are exposed to users with the proper credentials. That functionality lives under the "Display Modes" >> and can be accessed at `yoursite/admin/structure/display-modes`.
14+
15+
In a few quick words, the Display Mode Concept covers: formatting your Content Entities and their associated Fields so when a user lands on a Content Page, they are displayed in a certain, hopefully pleasing, way and also how users with proper Credentials can fill inputs/edit values for each `field` a Content Entity provides.
16+
17+
First, formatting output (basically building the front facing page for each content entity) is done by a `View Mode`. Second, defining how/what input method you are going to use to create or edit Content entities, is handled by a `Form Mode`. Both Modes, are, in Drupal Lingo, Configuration Entities, they provide things you can configure, you can name them and reuse them and those configurations can all be exported and reimported using YAML files. Also both Modes have the following in common:
18+
19+
- Drupal always provides a "default" one that can not be deleted.
20+
- You can create new ones.
21+
- You can apply permissions to them.
22+
- All Modes work on "fields", means the tiny little input/output pieces that are either part of a Content Entity or attached to them (the title, the Body, and in our case a Strawberryfield (SBF),
23+
- They Provide Config/setting options for each Field.
24+
- They are always associated to Content Types/Bundles. Means all Nodes of the same Content type will share the same modes.
25+
26+
The main difference, other than their purpose (Output v/s Input) is that, on View Modes, the settings you apply to each field are associated to "Formatters" and on Form Modes, the settings you apply to each field are connected to "Widgets".
27+
28+
Please refer to our [How to Create a Webform as an Input Method for Archipelago Digital Objects (ADO) guide](webformsasinput.md) for more information about Form Modes.
29+
30+
_Note that this guides features some older screenshots using earlier versions of Archipelago/Drupal Adminsitrative Theming. Please pardon any jumps between themes._
31+
32+
## View Mode
33+
34+
Resuming, this is what lives under the Concept of a "Display Mode" or "View Mode"...
35+
36+
![Display Modes - View Modes](images/display-modes-2024.png)
37+
38+
- Each field attached to a Content Entity can have a Formatter applied and most of them have configuration options.
39+
- Formatters do one thing right: they take the raw, stored value and make it "visible" inside Drupal.
40+
- Which formatters are available will depend on the "type" of field the Content Entity has.
41+
- E.g A Node title/Label will have a Title formatter with the option of just displaying a text or a text with a link to the entity.
42+
- More Complex and fun Fields, like the ones of type `SBF` will provide a large list of possible `Formatters`, like IIIF driven viewers, Video formatters, Metadata Display (Twig template driven) ones, etc. This is because a SBF type of field has much more than just a text value, it contains a full graph of metadata and properties, inclusive links to Files and provenance metadata.
43+
44+
### Default View Modes Bundled in Archipelago
45+
46+
* Collection listing
47+
* Digital Object and Collection Search API Rendered Item
48+
* Digital Object Collection with Mirador Viewer
49+
* Digital Object Creative Work Series with Mirador Viewer
50+
* Digital Object Image Only for Carousel
51+
* Digital Object Oral History with Multiple Media
52+
* Digital Object Full View
53+
* Digital Object with 3D Viewer
54+
* Digital Object with Audio Player
55+
* Digital Object with Book Reader
56+
* Digital Object with Mirador Viewer
57+
* Digital Object with Pannellum Panorama
58+
* Digital Object with PDF Viewer
59+
* Digital Object with WARC Replay.web Widget
60+
* Digital Object with thumbnail and abstract
61+
* Digital Object with thumbnail for Grid
62+
* Digital Object with Video Player
63+
* Search index
64+
* Search result highlighting input
65+
* _Plus Drupal default View Modes: Default, Full content, RSS, Teaser, and Token_
66+
67+
### I think I get this...but how can I use this knowledge now?
68+
69+
Good question! So, to enable, configure, and customize these Display/View Modes you have to navigate to your `Content Type` Configuration page in your running Archipelago. This is found at `/admin/structure/types`. Note: the way things are named in Drupal can be confusing to even the most deeply committed Drupal user, so bear in mind some terms will change. Feel free to read and re-read.
70+
71+
![Display Mode Management for Content Types](images/managing-display-modes-2024.png)
72+
73+
You can see that for every existent Content Type, there is a drop down menu with options:
74+
75+
- Manage Display: will lead you to configuration page where you can setup each View/Display Mode and its settings for a given Content Type
76+
- Manage Form Display: will lead you to configuration page where you can setup each Form Mode and its settings ([related documentation guide here](webformsasinput.md))
77+
78+
## Manage Display
79+
80+
For Digital Objects:
81+
![Manage Display Digital Object](images/manage-display-2024.png)
82+
83+
For Digital Object Collections and Compounds/Creative Work Series
84+
![Manage Display Digital Object Collections and Compounds/Creative Work Series](images/manage-display-coll.png)
85+
86+
When reviewing the 'Manage Display' tab for your selected Digital Object/Collection type, you will see all your configured Display/View Modes Listed, with the `Default` one selected and expanded.
87+
88+
The table that follows has one row per Field attached/part of this Content Type. Some of the fields are part of the Content Type itself. In this case Digital Object (bundled) and some other ones are common to every Content Entity derived from a Node.
89+
90+
The "Field" column contains each field name (not their type, reason why you don't see Strawberry Field there!) but we can tell you right now that there is one, named "Descriptive Metadata", that is of `SBF` type.
91+
92+
### Which are the fields in my Content Type?
93+
94+
How do we know that the field named "Descriptive Metadata" is a Strawberryfield? Well, we set-up the Digital Object Content Type for you that way, but also you can know what we know by pressing on "Manage fields" Tab on the top (don't forget to come back to "Manage display", afterwards!)
95+
96+
![Your Bundled fields](images/manage-fields.jpg)
97+
98+
*Also Surprise:* You Content Entity has really really just 2 fields! And that, friends, is one of the secret ingredients of Archipelago. All goes into a Single Field.
99+
100+
But wait: i see more fields in my Manage Display table. Why?
101+
Well. Some of them are base fields, part of what a Drupal Node is: base field means you can not remove them, they are part of the Definition itself. One obvious one is the `Title`.
102+
103+
But there are also some fields very particular to Archipelago: You can see there are also ones named "Formatter Object Metadata", "Media" and one named "Static Media"!. Where does come from? Those are also Strawberryfields. It sounds confusing but it is really simple. They are really not "fields" in the sense of having different data than "Descriptive Metadata". Those are In Memory, realtime, copies of the "Descriptive Metadata" SBF field and are there to overcome one limitation of Drupal: Each Field can have a single "Formatter" setup per field.
104+
105+
But we want to re-usue the JSON data to show a Viewer, Show Metadata as HTML directly on the ADO/NODE landing page, and we want also to, for example, format sometimes images as Thumbnails and not using a IIIF viewer only. This CopyFields (Legal term) have also a nice Performance advantage. Drupal needs to fetch only once the data from the real Field, "Descriptive Metadata", from the database. And then just makes the data available in real time to its copies. That makes all fast, very very fast! And of course flexible. As you dig more into Archipelago you will see the benefits of this approach. Finally, if you need to, you can make more CopyFields. But the reality is, there is a single, only one, SBF in each Digital Object and its named "Descriptive Metadata".
106+
107+
You can also simply not care about the type and trust the UI. It will just show Formatters that are right for each type and expose Configuration options (and a little abstract of the current ones) under the Widget Column. Operations Columns allows you to setup each Widget. Widget term here is a bit confusing. These are not really Widget in terms of Data Input, but in terms of "Configuration" Input. But D8/9 is evolving and its getting better. Those settings apply always only to the current View Mode.
108+
109+
You can play with this, experiment and change some settings to get more comfortable. We humbly propose you that you complete this info with the official Drupal 8 Documentation and also apply custom settings to your own, custom View Mode so you don't end changing base, expected functionality while you are still learning.
110+
111+
112+
___
113+
114+
Thank you for reading! Please contact us on our [Archipelago Commons Google Group](https://groups.google.com/forum/#!forum/archipelago-commons) with any questions or feedback.
115+
116+
Return to the [Archipelago Documentation main page](index.md).

0 commit comments

Comments
 (0)