Internal documentation for the Technology Outreach Hawaii nonprofit website development team.
You'll need these installed on your development machine:
- Ruby (version 2.7 or higher)
- Bundler gem (
gem install bundler) - Git
-
Clone the repository
git clone https://github.com/technology-outreach-hawaii/technology-outreach-hawaii.github.io.git cd technology-outreach-hawaii.github.io -
Install Ruby dependencies
bundle install
-
Start the development server
bundle exec jekyll serve --host=0.0.0.0 --port=4000 -
View the site Open your browser to
http://localhost:4000
The site will automatically rebuild when you make changes to files.
βββ _config.yml # Jekyll configuration
βββ _data/
β βββ members.yml # Team member information
βββ _includes/ # Reusable template components
β βββ banner.html
β βββ calendar.html
β βββ navigation.html
β βββ sponsor.html # Sponsor acknowledgments
βββ _layouts/ # Page templates
βββ _posts/ # Blog posts (YYYY-MM-DD-title.md format)
βββ _localResources/ # Local Hawaii resources
βββ _onlineResources/ # Online learning resources
βββ _sass/ # SCSS stylesheets
βββ assets/ # Static assets (images, CSS, JS)
βββ fullcalendar/ # Calendar library
- Jekyll 3.x - Static site generator
- GitHub Pages - Automatic hosting and deployment
- Bootstrap - CSS framework for responsive design
- FullCalendar - Interactive event calendar
- SCSS - CSS preprocessing
The site automatically deploys when changes are pushed to the main branch:
- GitHub Actions workflow (
pages-build-deployment) triggers automatically - Jekyll build processes using the
github-pagesgem configuration - Deployment to GitHub Pages hosting
- Live site updates at both:
- Primary:
https://techoutreachhi.org/ - GitHub Pages:
https://technology-outreach-hawaii.github.io/
- Primary:
The site uses Jekyll's GitHub Pages integration with these key dependencies:
jekyll~> 3.0github-pagesgem (handles GitHub Pages compatibility)jekyll-sitemappluginwebrickandthinfor local development
Create files in _posts/ with format YYYY-MM-DD-title.md:
---
layout: post
title: "Your Post Title"
date: 2024-01-01
tags: [update, event]
---
Your post content here...Edit _data/members.yml:
- name: "Name"
role: "Role"
image: "assets/images/profiles/filename.jpg"
bio: "Bio information"Sponsor information is in _includes/sponsor.html. To update:
- Add new sponsor logo to
assets/images/sponsor/ - Update the HTML in the sponsor include file
- Remove old sponsor assets if no longer needed
Local Resources (_localResources/): Hawaii-specific programs and organizations
Online Resources (_onlineResources/): Online learning platforms and tools
Each resource needs frontmatter:
---
layout: resource
title: "Resource Name"
description: "Brief description"
website: "https://example.com"
---_sass/1-helpers/- Variables, mixins, utilities_sass/2-base/- Base styles, resets_sass/3-layout/- Header, footer, navigation, layout components_sass/5-templates/- Page-specific styles_sass/bootstrap/- Bootstrap framework files
Store images in organized folders under assets/images/:
profiles/- Team member photossponsor/- Sponsor logosblog/- Blog post imagescarousel/- Homepage carousel images
- Test locally:
bundle exec jekyll serve --host=0.0.0.0 --port=4000 - Check all pages load without errors
- Verify mobile responsiveness
- Test any new functionality
Bundle install fails:
gem update bundler
bundle updateSite not reflecting changes:
bundle exec jekyll clean
bundle exec jekyll serve --host=0.0.0.0 --port=4000SCSS compilation errors:
- Check syntax in
_sass/files - Verify imports in
assets/css/styles.scss
- Create feature branches for significant changes
- Test thoroughly on your local development environment
- Submit pull requests for team review when appropriate
- Direct commits to main are acceptable for small updates (content, typos, etc.)
feature/description- New featuresfix/description- Bug fixescontent/description- Content updatesdocumentation/description- Documentation
For technical questions or site issues:
- Repository issues: Use GitHub issues for tracking
- Development questions: Contact the tech team
- Content updates: Coordinate with content managers
Technology Outreach Hawaii - Internal Development Documentation