Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/btskinner/btskinner.github.io
My website
https://github.com/btskinner/btskinner.github.io
code cv personal-site presentations publications
Last synced: 6 days ago
JSON representation
My website
- Host: GitHub
- URL: https://github.com/btskinner/btskinner.github.io
- Owner: btskinner
- License: mit
- Created: 2015-06-08T22:05:45.000Z (over 9 years ago)
- Default Branch: source
- Last Pushed: 2024-11-06T15:43:27.000Z (3 months ago)
- Last Synced: 2024-11-06T16:41:42.803Z (3 months ago)
- Topics: code, cv, personal-site, presentations, publications
- Language: HTML
- Homepage: https://www.btskinner.io
- Size: 17.6 MB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Personal website
Code for my personal website at [btskinner.io](https://btskinner.io).
## Steps to update / publish site
Below are the steps I use to update and publish my site. Since I want
a dynamic site that incorporates, for example, javascript
visualizations, it's a little more complicated than just pushing to
the master branch. This is the solution I cobbled together using tips
from others who've had the same issues. I started this site a few
years ago and it's possible that there are better solutions now, but
this works for me.1. Have two branches: *source* and *master*
- *source* holds the core files used to build the site
- *master* holds the built website files / serves the site
2. When updating, make local changes on my machine in the *source*
branch
- use `./_fixbib.sh ./bibliography/.bib` to clean up
personal `bib` file so that it plays more nicely with
[`jekyll-scholar`](https://github.com/inukshuk/jekyll-scholar). *This
may no longer be necessary, but I had trouble in the past with
Jekyll not properly parsing braces when building citations*.
3. Build and test the site locally using `bundle exec jekyll serve` in
the command line
- **NB** Some links to external repos may not work locally
- The built site, which is dynamic, now lives in `_site` in the
*source* branch.
4. Once happy with changes, `add`, `commit`, and `push` changes to remote
*source* branch at GitHub
5. Run `./_publishwebsite.sh` script
- Script is mostly these commands [from
here](https://github.com/randymorris/randymorris.github.com) with a
few changes:
```shell
#!/bin/bash
git branch -D master
git checkout -b master
git filter-branch --subdirectory-filter _site/ -f
git reflog expire --expire=now --all
git gc --prune=now
git checkout source
git push --all origin
```
- The gist is that the *master* branch is fully deleted and only
files from `_site` are placed in it. Since GitHub isn't coverting
`.md` files but instead reads `.html` and other files directly, all
dynamic features coming from javascript should work (that is, they
aren't scrubbed during a conversion process).Over time, the process to rebuild the *master* branch can take a while
since you are filtering through all the changes in *source*. If you
don't need a full record of your website changes over time, it may
make sense to prune or make a shallow clone of your source code every
now and again to speed up `./_publishwebsite`.