2024-04-30T09:42:20-05:00 - Why did we abandon CB SHEETS in favor of CSV?
CollectionBuilder-CSV is a robust and flexible "stand alone" template for creating digital collection and exhibit websites using Jekyll and a metadata CSV. Driven by your collection metadata, the template generates engaging visualizations to browse and explore your objects. The resulting static site can be hosted on any basic web server (or built automatically using GitHub Actions).
Visit the CollectionBuilder Docs for step-by-step details for getting started and building collections!
|https://grinco-my.sharepoint.com/:f:/r/personal/caveelizabeth_grinnell_edu/Documents/Black%20Library%20items?csf=1&web=1&e=7e6prh| OneDrive folder |
Link | Description |
---|---|
https://docs.google.com/spreadsheets/d/17uNXLP5aTSCfYZ8FXBqTvDd-z0F19FJeAOK5TsCr-PI/edit | The project's public metadata spreadsheet, built from https://docs.google.com/spreadsheets/d/1nN_k4JQB4LJraIzns7WcM3OXK-xxGMQhW1shMssflNM/edit#gid=1973435486 and our SHEETS predecessor. |
https://zealous-rock-08144ee10.4.azurestaticapps.net | main branch deployed to Azure Static Web Apps |
https://docs.google.com/spreadsheets/d/17uNXLP5aTSCfYZ8FXBqTvDd-z0F19FJeAOK5TsCr-PI/edit#gid=823757564 | "From the Documentation" portion of our Google Sheet |
https://grinco-my.sharepoint.com/:f:/r/personal/caveelizabeth_grinnell_edu/Documents/Black%20Library%20items?csf=1&web=1&e=7e6prh | OneDrive folder |
bundle exec jekyll serve
grinnell_<index>
denotes a legacy object imported from Digital.Grinnell.
dg_<epoch>
denotes a new object NOT imported from Digital.Grinnell. <epoch>
is a simple 10-digit UNIX epoch time generated when the object is cataloged.
Following the guidance provided in Deploy your web app...
I choose the jekyll
build option rather than Custom
and got this workflow file...
name: Azure Static Web Apps CI/CD
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- main
jobs:
build_and_deploy_job:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy Job
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: false
- name: Build And Deploy
id: builddeploy
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_<GENERATED_HOSTNAME> }}
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
action: "upload"
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: "./" # App source code path
api_location: "" # Api source code path - optional
output_location: "_site" # Built app content directory - optional
###### End of Repository/Build Configurations ######
close_pull_request_job:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request Job
steps:
- name: Close Pull Request
id: closepullrequest
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_<GENERATED_HOSTNAME> }}
action: "close"
Following the aforementioned procedure eventually produced the site https://zealous-rock-08144ee10.4.azurestaticapps.net.
This workflow uses GitHub Actions to deploy and you can see the status of deployment at https://github.com/Digital-Grinnell/black-library-CB-CSV-experiment/actions?query=workflow%3A%22Azure%20Static%20Web%20Apps%20CI%2FCD%22%20branch%3Amain.
The CollectionBuilder Docs contain detailed information about building a collection from start to finish--including installing software, using Git/GitHub, preparing digital objects, and formatting metadata. However, here is a super quick overview of the process:
- Make your own copy of this template repository by clicking the green "Use this Template" button on GitHub (see repository set up docs). This copy of the template is the starting point for your "project repository", i.e. the source code for your digital collection site!
- Prepare your collection metadata following the CB-CSV template (see our demo metadata template on Google Sheets and metadata docs). Your metadata will include links to your digital files (images, pdfs, videos, etc) and thumbnails wherever they are hosted.
- Add your metadata as a CSV to your project repository's "_data" folder (see upload metadata docs).
- Edit your project's "_config.yml" with your collection information (see site configuration docs). Additional customization is done via a theme file, configuration files, CSS tweaks, and more--however, once your "_config.yml" is edited your site is ready to be previewed.
- Generate your site using Jekyll! (see docs for how to use Jekyll locally and deploy on the web)
Please feel free to ask questions in the main CollectionBuilder discussion forum.
https://collectionbuilder.github.io/
CollectionBuilder is a project of University of Idaho Library's Digital Initiatives and the Center for Digital Inquiry and Learning (CDIL) following the Lib-Static methodology. Powered by the open source static site generator Jekyll and a modern static web stack, it puts collection metadata to work building beautiful sites.
The basic theme is created using Bootstrap. Metadata visualizations are built using open source libraries such as DataTables, Leafletjs, Spotlight gallery, lazysizes, and Lunr.js. Object metadata is exposed using Schema.org and Open Graph protocol standards.
Questions can be directed to [email protected]
CollectionBuilder documentation and general web content is licensed Creative Commons Attribution-ShareAlike 4.0 International.
This license does NOT include any objects or images used in digital collections, which may have individually applied licenses described by a "rights" field.
CollectionBuilder code is licensed MIT.
This license does not include external dependencies included in the assets/lib
directory, which are covered by their individual licenses.