Personal portfolio + blog powered by Jekyll.
Blog content is maintained in a separate repository and pulled in via Git submodule.
- Install Ruby (>= 3.1), Bundler, and Git.
- Clone repo:
git clone https://github.com/GrayRice/GrayRice.git cd GrayRice - Add/update submodules:
git submodule update --init --recursive
- Install gems:
bundle install
- Sync blog posts from submodule:
./scripts/sync_blog.sh
- Run locally:
bundle exec jekyll serve - Open:
http://127.0.0.1:4000/GrayRice/
- Blog posts are authored in
gray-rice-blogs. - This repo includes that repo as a submodule at
external/blog-content. - During the Pages build, posts are copied into this repo’s root
_posts/via./scripts/sync_blog.sh.
When you push new blog content to the blog repository, a GitHub Actions workflow automatically triggers this repository to:
- Update the
external/blog-contentsubmodule pointer to the latest blog commit, and - Open (or update) a pull request (PR) on this repo with that submodule bump.
After merging that PR, GitHub Pages rebuilds and publishes the new posts.
Note: Auto-merge is not enabled yet. For now, you still need to manually merge the generated PR.
- Main site deploys on push to
main(including merges). - GitHub Actions builds and deploys to GitHub Pages automatically.