Skip to content

paulshryock/paul-shryock

Repository files navigation

Paul Shryock

2021 reboot of my personal website.

Netlify status



Paul Shryock

I aspire to make Accessible, Secure, Performant, Inclusive, Responsive, and Ethical websites.

Websites

This repository contains source code for the following websites:

Development

Requirements

  • Git
    • Check if installed: git version
    • Install via Homebrew: brew install git
  • Node
    • Check if installed: node --version
    • Install via n: n lts
  • GitHub CLI ^1.6.0
    • Check if installed: gh --version
    • Install via Homebrew: brew install gh

Getting started

  1. Run gh repo clone paulshryock/paul-shryock to clone this repository
  2. Run npm install to install dependencies
  3. Run npm start to build and serve all websites, and watch for changes

Each site will be served to a different localhost port beginning with 8000, incremented alphabetically upwards by 1. When you're ready to commit changes, git will automatically lint and test your code before committing or pushing to remote.

Engineering workflow

  1. Run npm run latest to pull latest main branch
  2. Run git checkout -B <issue-number>/<feature-name> to start a new feature branch
  3. Run git add . && git commit -m "[#<issue-number>]: <feature-name>" && git push -u origin HEAD to commit the feature and push to remote, and a pull request link will appear
  4. Open the pull request link and squash <issue-number>/<feature-name> into develop
  5. @todo: Automate pull request creation

Versioning and release workflow

  • Run git checkout develop && git pull && git checkout -B release/v<version-number> to checkout a release branch
  • Run npm version <major|minor|patch> to kick off all versioning and release tasks, and a pre-populated pull request link will appear
  • Open the pull request link and rebase release/v<version-number> into main

npm development scripts

  • npm start: Build and serve all sites, and watch for changes.
  • npm run lint: Handle linting tasks.
  • npm test: Handle testing tasks.
  • npm run build: Build all sites.

Gulp tasks

  • gulp clean: Clean the build directory.
  • gulp finish: Clean the temp directory.
  • gulp lint: Handle linting tasks.
  • gulp html: Handle HTML tasks.
  • gulp postHtml: Handle HTML post-processing tasks.
  • gulp svg: Handle SVG tasks.
  • gulp css: Handle CSS tasks.
  • gulp javascript: Handle JavaScript tasks.
  • gulp validate: Handle validation tasks.
  • gulp test: Handle testing tasks.
  • gulp build: Handle build tasks.
  • gulp serve: Handle serve tasks.
  • gulp version: Handle version tasks.

HTTP headers and redirects

  • Set HTTP headers in src/<site-name>/content/headers.liquid
  • Set redirects in netlify.toml using [[redirects]] array tables

Content Security Policy

# Hash some JavaScript code from the command line.
echo -n "console.log('hello world')" | openssl sha256 -binary | openssl base64

Access-Control-Allow-Methods

Only GET requests are allowed on all routes. Other HTTP methods will need to opened up on specific routes as needed.

Open Source

This project is open source and the code is publicly available on GitHub.

License

This project is available under the Hippocratic License.

Contributing

If you'd like to contribute, please read the Code of Conduct and Contributing Instructions. Then fork the repository and create a new branch. Pull requests are welcome.

The type of contributions I am interested in are those that would make the website more accessible, secure, performant, inclusive, and/or ethical. Small pull requests that solve a specific problem or make a specific improvement are preferred.

You're welcome to create an Issue if there's something on my website that you would like to discuss, or to report a bug, typo, or problematic content or functionality.