@hesburgh-wse/gatsby-theme-marble v0.5.0
Marble's Gatsby Website
This repository is currently under active development and is not ready for production.
About the Project
The Hesburgh Libraries and Snite Museum of Art at the University of Notre Dame received a grant from The Andrew W. Mellon Foundation in December 2017 to develop a unified online collections platform to encourage comparative research, innovative joint exhibitions, and deeper integration of artwork, rare books, archival resources, and cultural artifacts into University teaching.
For more information about Marble visit https://innovation.library.nd.edu/marble.
Development
Prerequisites:
To build and test locally, you will need the following development tools installed:
- Node ≥10.16 - Installing via
nvmis recommended for development.curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash nvm install 10 nvm alias default 10 - yarn
npm install -g yarn - gatsby-cli
yarn global add gatsby-cli
Installing:
yarn installRun unit tests:
yarn workspace @ndlib/gatsby-theme-marble watchRunning locally for development:
Main Marble Website:
Download the iiif manifests and create pages for them:
./scripts/local.shStart the development server:
yarn workspace site developYour site is now running at http://localhost:8000.
Note: You'll also see a second link: http://localhost:8000/___graphql. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the Gatsby tutorial.
Marble Starter:
yarn workspace @ndlib/gatsby-starter-marble developAlternatively, if you would like to run site and gatsby-starter-marble at the same time, you may open a second terminal window and specify a port after the development command:
yarn workspace @ndlib/gatsby-starter-marble develop -p 8001The starter will then be available at http://localhost:8000 and it's graphql tool at http://localhost:8000/___graphql.
Project Structure:
marble-website-starter
↳ @ndlib // Directory scope for publishing to npm
↳ gatsby-theme-marble // The npm module for the Gatsby Theme for a Marble website
↳ gatsby-starter-marble // A stand alone Gatsby Starter that consumes `gatsby-theme-marble`
↳ site // The Gatsby site for Marble that consumes `gatsby-theme-marble`
↳ content // This is where the site content for the Marble site lives
↳ gatsby-config.js // This file is required by Gatsby to configure the site and use the theme
↳ scripts
↳ codebuild // AWS Codebuild orchestration scripts
↳ gatsby-source-iiif // Get IIIF manifest files and generate .md and .json files for `site`Notes on development:
Occasionally, the .cache files my get confused if you are making large or frequent changes. To clean it up, stop the development task and run:
yarn workspace site cleanLocal build:
To build a local production version of the site run:
yarn workspace site buildCreating a new site:
Add it to the yarn workspace
Edit the root package.json and add the name NEW_SITE_NAME to the list of workspaces.
Use the Starter:
From within the project root run:
gatsby new [NEW_SITE_NAME] @ndlib/gatsby-starter-marbleNote: Gatsby Starters need to live in their own repository, so the code will eventually be split out to make the starter more accessible.
Deployment
This project is deployed to AWS using a Code Pipeline. The build scripts are located in ./scripts/codebuild. The blueprints for deployment are available on Github at Marble Blueprints.
Publishing the node modules
Increment Version
Be sure to increment the package to the appropriate version using one of the following:
yarn workspace @ndlib/gatsby-theme-marble version --patchyarn workspace @ndlib/gatsby-theme-marble version --minoryarn workspace @ndlib/gatsby-theme-marble version --majorPublish to NPM
cd @ndlib/gatsby-theme-marble
npm publish --access public6 years ago